From 3a34d186ec4dbbf082ab108894b64bf0b3c0a14e Mon Sep 17 00:00:00 2001 From: sapetti9 <74717970+sapetti9@users.noreply.github.com> Date: Thu, 21 Nov 2024 15:53:23 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20site=20from=20@=20frictionless?= =?UTF-8?q?data/frictionlessdata.io@38b7966e44c8f0472c2d9f4c84174d1e386349?= =?UTF-8?q?ca=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 6 +++--- adoption/index.html | 6 +++--- ...les.82f86bd4.css => 0.styles.ef20a3e7.css} | 2 +- assets/js/{10.f7c1e786.js => 10.0e8811e8.js} | 2 +- .../js/{101.2d12633f.js => 101.7e1d6df4.js} | 2 +- .../js/{102.869d7cbc.js => 102.0e0446fa.js} | 2 +- .../js/{103.cd533066.js => 103.3bcdbc40.js} | 2 +- .../js/{104.fe7e63b7.js => 104.a3c278c0.js} | 2 +- .../js/{105.80399967.js => 105.47d55397.js} | 2 +- .../js/{106.71490774.js => 106.b974b400.js} | 2 +- .../js/{112.b9d7b395.js => 112.d1d4b6fc.js} | 2 +- .../js/{113.115ad30f.js => 113.2e34c2f6.js} | 2 +- .../js/{114.8f9f4c29.js => 114.7a312779.js} | 2 +- .../js/{115.24c7eaf7.js => 115.6bee2741.js} | 2 +- .../js/{118.dfd2fa17.js => 118.b068e983.js} | 2 +- .../js/{119.4464f1f2.js => 119.fb8a4883.js} | 2 +- assets/js/{12.d9fb47fc.js => 12.83daa0b2.js} | 2 +- .../js/{121.20a5c074.js => 121.1bb95626.js} | 2 +- .../js/{123.1505aef8.js => 123.3cc6b810.js} | 2 +- .../js/{128.a70d3d89.js => 128.6825e92c.js} | 2 +- .../js/{129.5711da8c.js => 129.b87476ad.js} | 2 +- .../js/{130.283489b6.js => 130.ad033a1a.js} | 2 +- .../js/{131.46e9f4e2.js => 131.b9e59486.js} | 2 +- .../js/{132.96c23259.js => 132.de22cc97.js} | 2 +- .../js/{133.0c2743f6.js => 133.e77f594f.js} | 2 +- .../js/{134.0de7dba0.js => 134.f2523058.js} | 2 +- .../js/{135.59599e99.js => 135.ba0f9f60.js} | 2 +- .../js/{136.4d1fafd7.js => 136.6442c6b9.js} | 2 +- .../js/{137.aa63e6f2.js => 137.36d45931.js} | 2 +- .../js/{138.ad482374.js => 138.90a2498b.js} | 2 +- .../js/{139.703a6fba.js => 139.5863c0da.js} | 2 +- assets/js/{14.0962b179.js => 14.b66cad77.js} | 2 +- .../js/{140.d5db7070.js => 140.5e6ae68a.js} | 2 +- .../js/{141.b4624c5c.js => 141.c3c7f0da.js} | 2 +- .../js/{143.c25563e2.js => 143.6495e26e.js} | 2 +- .../js/{144.ec36c430.js => 144.4c70106f.js} | 2 +- .../js/{146.e3253dea.js => 146.6e7c9a8b.js} | 2 +- .../js/{148.f186d227.js => 148.b72ccf39.js} | 2 +- assets/js/{15.c5a64268.js => 15.10b9d46b.js} | 2 +- .../js/{150.fdc13174.js => 150.d8afa583.js} | 2 +- .../js/{151.0bba1436.js => 151.99fc6a01.js} | 2 +- .../js/{152.ff415a3b.js => 152.f2ecd916.js} | 2 +- .../js/{153.7b25b3e7.js => 153.53c6673a.js} | 2 +- .../js/{154.f147514e.js => 154.63d3df53.js} | 2 +- .../js/{155.42825827.js => 155.f236890f.js} | 2 +- .../js/{156.8334f792.js => 156.5c3dc938.js} | 2 +- .../js/{157.bf973c85.js => 157.d3eac80a.js} | 2 +- .../js/{158.49452f10.js => 158.8106bdaf.js} | 2 +- .../js/{159.3f041c20.js => 159.6f580678.js} | 2 +- .../js/{161.0c948627.js => 161.49e34383.js} | 2 +- .../js/{162.c239e347.js => 162.9db603ef.js} | 2 +- .../js/{163.eb2e4458.js => 163.9cdaa5d1.js} | 2 +- .../js/{164.a5e79699.js => 164.731d26ae.js} | 2 +- .../js/{165.98cc2fc2.js => 165.56161c6a.js} | 2 +- .../js/{166.7552b535.js => 166.47347e73.js} | 2 +- .../js/{167.bbe687fa.js => 167.e71c3cb9.js} | 2 +- .../js/{169.75839ea7.js => 169.4cd6dd92.js} | 2 +- .../js/{170.e11e2e40.js => 170.8724c2c6.js} | 2 +- .../js/{175.33e4d10e.js => 175.7478e44c.js} | 2 +- .../js/{176.74021178.js => 176.920f2d07.js} | 2 +- .../js/{177.dac08e7c.js => 177.6c30d8b5.js} | 2 +- .../js/{178.285273f4.js => 178.c332415e.js} | 2 +- assets/js/{18.e6422f2f.js => 18.bb9f8bad.js} | 2 +- .../js/{180.a8dcd504.js => 180.6275d8bc.js} | 2 +- .../js/{181.c47d7742.js => 181.349dbd6e.js} | 2 +- .../js/{182.c72b4037.js => 182.a686d2a7.js} | 2 +- .../js/{183.8c389a09.js => 183.fdd418cf.js} | 2 +- .../js/{184.4d77c158.js => 184.5b45daec.js} | 2 +- .../js/{186.e4651f0c.js => 186.0ae99c59.js} | 2 +- .../js/{187.b5a60410.js => 187.cc42df04.js} | 2 +- .../js/{188.43b51928.js => 188.5abd431f.js} | 2 +- .../js/{189.652020c0.js => 189.54e20e17.js} | 2 +- assets/js/{19.e318a14d.js => 19.7e84e393.js} | 2 +- .../js/{190.fa5c60b6.js => 190.e85429fb.js} | 2 +- .../js/{191.f7eb3789.js => 191.665cc8b3.js} | 2 +- .../js/{192.5d34a6d0.js => 192.3eafaa75.js} | 2 +- .../js/{194.61f7bad5.js => 194.510cc9d4.js} | 2 +- .../js/{195.0f259543.js => 195.1d228321.js} | 2 +- .../js/{196.5c8d4189.js => 196.347e5695.js} | 2 +- .../js/{197.858e8a32.js => 197.3dce5459.js} | 2 +- .../js/{198.ad7a4064.js => 198.53fba7f4.js} | 2 +- assets/js/{20.a5fbf886.js => 20.0b4e11bf.js} | 2 +- assets/js/{22.7697693e.js => 22.81131f41.js} | 2 +- assets/js/{23.895e9b8a.js => 23.2dcf8244.js} | 2 +- assets/js/{24.c39cdc0b.js => 24.6b19fc75.js} | 2 +- assets/js/{27.49f94834.js => 27.c41f5d1a.js} | 2 +- assets/js/{28.0b998858.js => 28.46cf6b02.js} | 2 +- assets/js/{33.cc73c525.js => 33.ed9301b7.js} | 2 +- assets/js/{34.006c3ade.js => 34.979bfc4d.js} | 2 +- assets/js/{35.6c3d0480.js => 35.8381e3cb.js} | 2 +- assets/js/{37.f28f2173.js => 37.f702daa6.js} | 2 +- assets/js/{41.e22b5b4c.js => 41.c220c8df.js} | 2 +- assets/js/{45.41ae7b03.js => 45.98ef683b.js} | 2 +- assets/js/{46.b7a06152.js => 46.61d51c30.js} | 2 +- assets/js/{47.fdb535f5.js => 47.852889fe.js} | 2 +- assets/js/{48.8ca4767a.js => 48.387c88fd.js} | 2 +- assets/js/{49.63bda42d.js => 49.4362187e.js} | 2 +- assets/js/{5.7bd12aaf.js => 5.c86ab2e9.js} | 2 +- assets/js/{50.6eaad3c7.js => 50.db9ab2c9.js} | 2 +- assets/js/{51.d03929e6.js => 51.82ea6b76.js} | 2 +- assets/js/{54.7b23f7cc.js => 54.9e9cbb98.js} | 2 +- assets/js/{67.c668ed43.js => 67.3e7762b2.js} | 2 +- assets/js/{69.dab71250.js => 69.46efc422.js} | 2 +- assets/js/{70.70153266.js => 70.542e1289.js} | 2 +- assets/js/{72.c80b57c7.js => 72.58029e7d.js} | 2 +- assets/js/{73.6e3cac69.js => 73.bff5f5c0.js} | 2 +- assets/js/{75.ec5d7d14.js => 75.3d03a31b.js} | 2 +- assets/js/{76.8fa5c677.js => 76.bd9f095a.js} | 2 +- assets/js/{77.1e8f9c2d.js => 77.ad0bf117.js} | 2 +- assets/js/{78.c51dc60c.js => 78.cb9a2564.js} | 2 +- assets/js/{79.df9ef6ef.js => 79.641a180c.js} | 2 +- assets/js/{8.215bd622.js => 8.4d18202d.js} | 2 +- assets/js/{80.b4a05a86.js => 80.ec49c7bb.js} | 2 +- assets/js/{81.119cea57.js => 81.f80c9b50.js} | 2 +- assets/js/{86.4af2a063.js => 86.8b13068a.js} | 2 +- assets/js/{87.00a63b75.js => 87.69707213.js} | 2 +- assets/js/{88.993fe8bc.js => 88.151550eb.js} | 2 +- assets/js/{89.e52e45f9.js => 89.757a6bde.js} | 2 +- assets/js/{92.04d2ff06.js => 92.a2f28577.js} | 2 +- assets/js/{93.f0fa6979.js => 93.73197f75.js} | 2 +- assets/js/{97.6b145136.js => 97.38257cb2.js} | 2 +- .../js/{app.177713a1.js => app.fbe67fe3.js} | 6 +++--- blog/2016/04/20/publish-faq/index.html | 6 +++--- blog/2016/04/30/publish-geo/index.html | 6 +++--- .../index.html | 6 +++--- blog/2016/07/21/publish-any/index.html | 6 +++--- blog/2016/07/21/publish-tabular/index.html | 6 +++--- blog/2016/08/29/publish-online/index.html | 6 +++--- .../using-data-packages-in-python/index.html | 6 +++--- blog/2016/08/30/publish/index.html | 6 +++--- blog/2016/11/15/dataship/index.html | 6 +++--- .../11/15/open-power-system-data/index.html | 6 +++--- blog/2016/11/15/tesera/index.html | 6 +++--- blog/2017/03/28/john-snow-labs/index.html | 6 +++--- .../31/data-package-views-proposal/index.html | 6 +++--- blog/2017/04/11/dataworld/index.html | 6 +++--- blog/2017/05/23/cmso/index.html | 6 +++--- blog/2017/05/24/the-data-retriever/index.html | 6 +++--- .../index.html | 6 +++--- .../2017/08/09/collections-as-data/index.html | 6 +++--- blog/2017/08/09/tutorial-template/index.html | 6 +++--- .../15/causa-natura-pescando-datos/index.html | 6 +++--- .../index.html | 6 +++--- .../08/15/university-of-cambridge/index.html | 6 +++--- blog/2017/09/28/zegami/index.html | 6 +++--- blog/2017/10/24/elife/index.html | 6 +++--- blog/2017/10/24/georges-labreche/index.html | 6 +++--- blog/2017/10/26/matt-thompson/index.html | 6 +++--- .../10/27/open-knowledge-greece/index.html | 6 +++--- blog/2017/11/01/daniel-fireman/index.html | 6 +++--- blog/2017/12/04/openml/index.html | 6 +++--- blog/2017/12/12/ukds/index.html | 6 +++--- .../12/15/university-of-pittsburgh/index.html | 6 +++--- blog/2017/12/19/dm4t/index.html | 6 +++--- .../index.html | 6 +++--- .../02/14/using-data-packages-in-r/index.html | 6 +++--- .../16/using-data-packages-in-go/index.html | 6 +++--- .../03/07/well-packaged-datasets/index.html | 6 +++--- .../index.html | 6 +++--- .../index.html | 6 +++--- blog/2018/03/27/applying-licenses/index.html | 6 +++--- .../index.html | 6 +++--- .../joining-tabular-data-in-python/index.html | 6 +++--- .../04/06/joining-data-in-python/index.html | 6 +++--- .../28/using-data-packages-in-java/index.html | 6 +++--- .../using-data-packages-in-clojure/index.html | 6 +++--- blog/2018/07/09/csv/index.html | 6 +++--- blog/2018/07/09/developer-guide/index.html | 6 +++--- blog/2018/07/09/validating-data/index.html | 6 +++--- blog/2018/07/16/oleg-lavrovsky/index.html | 6 +++--- blog/2018/07/16/ori-hoch/index.html | 6 +++--- .../2018/07/16/point-location-data/index.html | 6 +++--- .../publish-data-as-data-packages/index.html | 6 +++--- .../07/16/validated-tabular-data/index.html | 6 +++--- .../index.html | 6 +++--- blog/2018/07/20/nimblelearn/index.html | 6 +++--- blog/2019/03/01/datacurator/index.html | 6 +++--- .../05/20/used-and-useful-data/index.html | 6 +++--- blog/2019/07/02/stephan-max/index.html | 6 +++--- blog/2019/07/03/nes/index.html | 6 +++--- blog/2019/07/09/open-referral/index.html | 6 +++--- blog/2019/07/22/nimblelearn-dpc/index.html | 6 +++--- .../welcome-frictionless-fellows/index.html | 6 +++--- blog/2019/09/12/andre-heughebaert/index.html | 6 +++--- .../index.html | 6 +++--- .../01/22/frictionless-darwincore/index.html | 6 +++--- blog/2020/01/22/open-referral-tool/index.html | 6 +++--- blog/2020/01/23/nes-tool/index.html | 6 +++--- .../index.html | 6 +++--- .../frictionless-data-pilot-study/index.html | 6 +++--- .../index.html | 6 +++--- .../index.html | 6 +++--- .../04/23/table-schema-catalog/index.html | 6 +++--- .../index.html | 6 +++--- .../30/frictionless-data-workshop/index.html | 6 +++--- .../05/01/announcing-new-website/index.html | 6 +++--- .../frictionless-data-may-hangout/index.html | 6 +++--- .../index.html | 6 +++--- .../06/05/june-virtual-hangout/index.html | 6 +++--- .../26/csvconf-frictionless-recap/index.html | 6 +++--- .../2020/07/10/tool-fund-intermine/index.html | 6 +++--- .../16/tool-fund-polar-institute/index.html | 6 +++--- .../2020/07/21/data-matrices-pilot/index.html | 6 +++--- .../03/tool-fund-cambridge-neuro/index.html | 6 +++--- blog/2020/08/17/frictionless-wheat/index.html | 6 +++--- .../08/27/august-virtual-hangout/index.html | 6 +++--- .../09/01/hello-fellows-cohort2/index.html | 6 +++--- blog/2020/09/16/goodtables-bcodmo/index.html | 6 +++--- blog/2020/09/17/tool-fund-metrics/index.html | 6 +++--- .../10/08/frictionless-framework/index.html | 6 +++--- .../index.html | 6 +++--- .../10/28/october-virtual-hangout/index.html | 6 +++--- blog/2020/11/18/dryad-pilot/index.html | 6 +++--- .../11/19/november-virtual-hangout/index.html | 6 +++--- blog/2020/11/26/fellows-packaging/index.html | 6 +++--- .../12/17/december-virtual-hangout/index.html | 6 +++--- .../2021/01/13/partnering-with-odi/index.html | 6 +++--- .../01/18/schema-collaboration/index.html | 6 +++--- blog/2021/01/26/sara-petti/index.html | 6 +++--- blog/2021/01/30/fellows-validation/index.html | 6 +++--- .../02/03/january-virtual-hangout/index.html | 6 +++--- .../02/04/tableschema-to-template/index.html | 6 +++--- blog/2021/02/26/halfway-odi/index.html | 6 +++--- .../03/01/february-virtual-hangout/index.html | 6 +++--- .../05/frictionless-data-for-wheat/index.html | 6 +++--- .../2021/03/10/fellows-reproducing/index.html | 6 +++--- .../03/29/february-virtual-hangout/index.html | 6 +++--- .../13/data-package-for-intermine/index.html | 6 +++--- .../new-data-documentation-portal/index.html | 6 +++--- .../05/03/april-virtual-hangout/index.html | 6 +++--- .../2021/06/01/may-virtual-hangout/index.html | 6 +++--- .../16/new-changes-to-the-website/index.html | 6 +++--- blog/2021/06/22/livemark/index.html | 6 +++--- .../06/25/june-virtual-hangout/index.html | 6 +++--- .../index.html | 6 +++--- blog/2021/07/02/farewell-fellows/index.html | 6 +++--- blog/2021/07/12/open-data-blend/index.html | 6 +++--- .../07/21/frictionless-repository/index.html | 6 +++--- blog/2021/08/02/apply-fellows/index.html | 6 +++--- .../08/06/recap-community-calls/index.html | 6 +++--- blog/2021/08/09/dryad-pilot/index.html | 6 +++--- blog/2021/08/16/august-12-call/index.html | 6 +++--- .../08/31/august-26-community-call/index.html | 6 +++--- blog/2021/09/30/hackathon-preview/index.html | 6 +++--- .../10/06/september-community-call/index.html | 6 +++--- blog/2021/10/13/hackathon-wrap/index.html | 6 +++--- .../11/03/october-community-call/index.html | 6 +++--- .../11/23/november-community-call/index.html | 6 +++--- .../2021/12/07/_3rd-cohort-fellows/index.html | 6 +++--- .../12/17/december-community-call/index.html | 6 +++--- .../index.html | 6 +++--- .../2022/01/18/frictionless-planet/index.html | 6 +++--- .../02/02/january-community-call/index.html | 6 +++--- blog/2022/02/07/libraries-hacked/index.html | 6 +++--- .../10/nasa-earth-mission-science/index.html | 6 +++--- .../03/03/community-call-february/index.html | 6 +++--- .../2022/03/05/fellows-datapackage/index.html | 6 +++--- blog/2022/03/09/save-our-planet/index.html | 6 +++--- .../04/13/march-community-call/index.html | 6 +++--- .../05/05/april-community-call/index.html | 6 +++--- .../index.html | 6 +++--- blog/2022/05/24/tu-delft-training/index.html | 6 +++--- blog/2022/06/01/deploy-solutions/index.html | 6 +++--- .../2022/07/04/june-community-call/index.html | 6 +++--- .../index.html | 6 +++--- blog/2022/07/14/flatterer/index.html | 6 +++--- .../20/lilly-message-to-community/index.html | 6 +++--- .../community-call-july-flatterer/index.html | 6 +++--- .../frictionless-framework-release/index.html | 6 +++--- .../index.html | 6 +++--- blog/2022/09/15/deploy-solutions/index.html | 6 +++--- blog/2022/09/20/mysociety-workflow/index.html | 6 +++--- blog/2022/11/02/october-call/index.html | 6 +++--- blog/2022/12/07/community-call/index.html | 6 +++--- .../01/06/datapackage-as-a-service/index.html | 6 +++--- .../01/31/frictionless-at-fosdem/index.html | 6 +++--- blog/2023/02/06/community-call/index.html | 6 +++--- .../03/01/february-community-call/index.html | 6 +++--- .../04/06/march-community-call/index.html | 6 +++--- .../05/08/april-community-call/index.html | 6 +++--- blog/2023/05/12/csv-conf/index.html | 6 +++--- .../06/05/community-call-fastetl/index.html | 6 +++--- blog/2023/07/05/community-call/index.html | 6 +++--- blog/2023/10/02/community-call/index.html | 6 +++--- blog/2023/11/06/community-call/index.html | 6 +++--- .../15/frictionless-specs-update/index.html | 6 +++--- blog/2023/12/05/community-call/index.html | 6 +++--- blog/2024/02/07/community-call/index.html | 6 +++--- blog/2024/03/01/community-call/index.html | 6 +++--- .../index.html | 6 +++--- .../index.html | 6 +++--- blog/2024/06/09/community-call/index.html | 6 +++--- .../06/26/datapackage-v2-release/index.html | 6 +++--- .../10/08/monthly-community-call/index.html | 6 +++--- blog/index.html | 6 +++--- blog/page/10/index.html | 6 +++--- blog/page/11/index.html | 20 +++++++++--------- blog/page/12/index.html | 6 +++--- blog/page/13/index.html | 6 +++--- blog/page/14/index.html | 6 +++--- blog/page/15/index.html | 6 +++--- blog/page/16/index.html | 6 +++--- blog/page/17/index.html | 6 +++--- blog/page/18/index.html | 6 +++--- blog/page/2/index.html | 6 +++--- blog/page/3/index.html | 6 +++--- blog/page/4/index.html | 6 +++--- blog/page/5/index.html | 6 +++--- blog/page/6/index.html | 6 +++--- blog/page/7/index.html | 6 +++--- blog/page/8/index.html | 6 +++--- blog/page/9/index.html | 6 +++--- design/index.html | 6 +++--- development/architecture/index.html | 6 +++--- development/process/index.html | 6 +++--- development/roadmap/index.html | 6 +++--- feed.atom | 2 +- hackathon/README(pt-br).html | 6 +++--- hackathon/index.html | 6 +++--- img/community-call-october-2024.png | Bin 0 -> 181242 bytes index.html | 6 +++--- introduction/index.html | 6 +++--- people/index.html | 6 +++--- projects/index.html | 6 +++--- rss.xml | 2 +- tag/Clojure/index.html | 6 +++--- tag/Command-line/index.html | 6 +++--- tag/Data CLI/index.html | 6 +++--- tag/Data Package Creator/index.html | 6 +++--- tag/Data Package/index.html | 6 +++--- tag/Go/index.html | 6 +++--- tag/Goodtables CLI/index.html | 6 +++--- tag/Goodtables/index.html | 6 +++--- tag/Java/index.html | 6 +++--- tag/JavaScript/index.html | 6 +++--- tag/Python/index.html | 6 +++--- tag/R/index.html | 6 +++--- tag/case-studies/index.html | 6 +++--- tag/case-studies/page/2/index.html | 6 +++--- tag/case-studies/page/3/index.html | 6 +++--- tag/community-hangout/index.html | 6 +++--- tag/community-hangout/page/2/index.html | 6 +++--- tag/community-hangout/page/3/index.html | 6 +++--- tag/community-hangout/page/4/index.html | 6 +++--- tag/community-hangout/page/5/index.html | 6 +++--- tag/csv/index.html | 6 +++--- tag/datapackage/index.html | 6 +++--- tag/events/index.html | 6 +++--- tag/events/page/2/index.html | 6 +++--- tag/events/page/3/index.html | 6 +++--- tag/events/page/4/index.html | 6 +++--- tag/events/page/5/index.html | 6 +++--- tag/events/page/6/index.html | 6 +++--- tag/fellows/index.html | 6 +++--- tag/fellows/page/2/index.html | 6 +++--- tag/field-guide/index.html | 6 +++--- tag/goodtables.io/index.html | 6 +++--- tag/grantee-profiles/index.html | 6 +++--- tag/index.html | 8 +++---- tag/licenses/index.html | 6 +++--- tag/news/index.html | 6 +++--- tag/news/page/2/index.html | 6 +++--- tag/pilot/index.html | 6 +++--- tag/pilot/page/2/index.html | 6 +++--- tag/specifications/index.html | 6 +++--- tag/specs/index.html | 6 +++--- tag/table-schema/index.html | 6 +++--- tag/tabular-data/index.html | 6 +++--- tag/team/index.html | 6 +++--- tag/tool-fund/index.html | 14 ++++++------ tag/tool-fund/page/2/index.html | 14 ++++++------ tag/try.goodtables.io/index.html | 6 +++--- tag/validator/index.html | 6 +++--- tag/views/index.html | 6 +++--- universe/index.html | 6 +++--- work-with-us/code-of-conduct/index.html | 6 +++--- work-with-us/contribute/index.html | 6 +++--- work-with-us/events/index.html | 6 +++--- work-with-us/get-help/index.html | 6 +++--- 379 files changed, 908 insertions(+), 908 deletions(-) rename assets/css/{0.styles.82f86bd4.css => 0.styles.ef20a3e7.css} (99%) rename assets/js/{10.f7c1e786.js => 10.0e8811e8.js} (99%) rename assets/js/{101.2d12633f.js => 101.7e1d6df4.js} (98%) rename assets/js/{102.869d7cbc.js => 102.0e0446fa.js} (98%) rename assets/js/{103.cd533066.js => 103.3bcdbc40.js} (98%) rename assets/js/{104.fe7e63b7.js => 104.a3c278c0.js} (98%) rename assets/js/{105.80399967.js => 105.47d55397.js} (99%) rename assets/js/{106.71490774.js => 106.b974b400.js} (98%) rename assets/js/{112.b9d7b395.js => 112.d1d4b6fc.js} (96%) rename assets/js/{113.115ad30f.js => 113.2e34c2f6.js} (98%) rename assets/js/{114.8f9f4c29.js => 114.7a312779.js} (99%) rename assets/js/{115.24c7eaf7.js => 115.6bee2741.js} (98%) rename assets/js/{118.dfd2fa17.js => 118.b068e983.js} (98%) rename assets/js/{119.4464f1f2.js => 119.fb8a4883.js} (99%) rename assets/js/{12.d9fb47fc.js => 12.83daa0b2.js} (99%) rename assets/js/{121.20a5c074.js => 121.1bb95626.js} (97%) rename assets/js/{123.1505aef8.js => 123.3cc6b810.js} (98%) rename assets/js/{128.a70d3d89.js => 128.6825e92c.js} (99%) rename assets/js/{129.5711da8c.js => 129.b87476ad.js} (99%) rename assets/js/{130.283489b6.js => 130.ad033a1a.js} (98%) rename assets/js/{131.46e9f4e2.js => 131.b9e59486.js} (98%) rename assets/js/{132.96c23259.js => 132.de22cc97.js} (97%) rename assets/js/{133.0c2743f6.js => 133.e77f594f.js} (99%) rename assets/js/{134.0de7dba0.js => 134.f2523058.js} (98%) rename assets/js/{135.59599e99.js => 135.ba0f9f60.js} (98%) rename assets/js/{136.4d1fafd7.js => 136.6442c6b9.js} (99%) rename assets/js/{137.aa63e6f2.js => 137.36d45931.js} (98%) rename assets/js/{138.ad482374.js => 138.90a2498b.js} (99%) rename assets/js/{139.703a6fba.js => 139.5863c0da.js} (99%) rename assets/js/{14.0962b179.js => 14.b66cad77.js} (99%) rename assets/js/{140.d5db7070.js => 140.5e6ae68a.js} (98%) rename assets/js/{141.b4624c5c.js => 141.c3c7f0da.js} (98%) rename assets/js/{143.c25563e2.js => 143.6495e26e.js} (98%) rename assets/js/{144.ec36c430.js => 144.4c70106f.js} (98%) rename assets/js/{146.e3253dea.js => 146.6e7c9a8b.js} (98%) rename assets/js/{148.f186d227.js => 148.b72ccf39.js} (99%) rename assets/js/{15.c5a64268.js => 15.10b9d46b.js} (99%) rename assets/js/{150.fdc13174.js => 150.d8afa583.js} (98%) rename assets/js/{151.0bba1436.js => 151.99fc6a01.js} (98%) rename assets/js/{152.ff415a3b.js => 152.f2ecd916.js} (99%) rename assets/js/{153.7b25b3e7.js => 153.53c6673a.js} (98%) rename assets/js/{154.f147514e.js => 154.63d3df53.js} (98%) rename assets/js/{155.42825827.js => 155.f236890f.js} (99%) rename assets/js/{156.8334f792.js => 156.5c3dc938.js} (98%) rename assets/js/{157.bf973c85.js => 157.d3eac80a.js} (98%) rename assets/js/{158.49452f10.js => 158.8106bdaf.js} (99%) rename assets/js/{159.3f041c20.js => 159.6f580678.js} (98%) rename assets/js/{161.0c948627.js => 161.49e34383.js} (98%) rename assets/js/{162.c239e347.js => 162.9db603ef.js} (99%) rename assets/js/{163.eb2e4458.js => 163.9cdaa5d1.js} (98%) rename assets/js/{164.a5e79699.js => 164.731d26ae.js} (98%) rename assets/js/{165.98cc2fc2.js => 165.56161c6a.js} (99%) rename assets/js/{166.7552b535.js => 166.47347e73.js} (98%) rename assets/js/{167.bbe687fa.js => 167.e71c3cb9.js} (99%) rename assets/js/{169.75839ea7.js => 169.4cd6dd92.js} (99%) rename assets/js/{170.e11e2e40.js => 170.8724c2c6.js} (98%) rename assets/js/{175.33e4d10e.js => 175.7478e44c.js} (98%) rename assets/js/{176.74021178.js => 176.920f2d07.js} (98%) rename assets/js/{177.dac08e7c.js => 177.6c30d8b5.js} (98%) rename assets/js/{178.285273f4.js => 178.c332415e.js} (98%) rename assets/js/{18.e6422f2f.js => 18.bb9f8bad.js} (99%) rename assets/js/{180.a8dcd504.js => 180.6275d8bc.js} (99%) rename assets/js/{181.c47d7742.js => 181.349dbd6e.js} (99%) rename assets/js/{182.c72b4037.js => 182.a686d2a7.js} (99%) rename assets/js/{183.8c389a09.js => 183.fdd418cf.js} (98%) rename assets/js/{184.4d77c158.js => 184.5b45daec.js} (99%) rename assets/js/{186.e4651f0c.js => 186.0ae99c59.js} (99%) rename assets/js/{187.b5a60410.js => 187.cc42df04.js} (99%) rename assets/js/{188.43b51928.js => 188.5abd431f.js} (88%) rename assets/js/{189.652020c0.js => 189.54e20e17.js} (99%) rename assets/js/{19.e318a14d.js => 19.7e84e393.js} (98%) rename assets/js/{190.fa5c60b6.js => 190.e85429fb.js} (98%) rename assets/js/{191.f7eb3789.js => 191.665cc8b3.js} (98%) rename assets/js/{192.5d34a6d0.js => 192.3eafaa75.js} (99%) rename assets/js/{194.61f7bad5.js => 194.510cc9d4.js} (99%) rename assets/js/{195.0f259543.js => 195.1d228321.js} (99%) rename assets/js/{196.5c8d4189.js => 196.347e5695.js} (98%) rename assets/js/{197.858e8a32.js => 197.3dce5459.js} (96%) rename assets/js/{198.ad7a4064.js => 198.53fba7f4.js} (97%) rename assets/js/{20.a5fbf886.js => 20.0b4e11bf.js} (97%) rename assets/js/{22.7697693e.js => 22.81131f41.js} (97%) rename assets/js/{23.895e9b8a.js => 23.2dcf8244.js} (93%) rename assets/js/{24.c39cdc0b.js => 24.6b19fc75.js} (98%) rename assets/js/{27.49f94834.js => 27.c41f5d1a.js} (68%) rename assets/js/{28.0b998858.js => 28.46cf6b02.js} (89%) rename assets/js/{33.cc73c525.js => 33.ed9301b7.js} (98%) rename assets/js/{34.006c3ade.js => 34.979bfc4d.js} (99%) rename assets/js/{35.6c3d0480.js => 35.8381e3cb.js} (99%) rename assets/js/{37.f28f2173.js => 37.f702daa6.js} (95%) rename assets/js/{41.e22b5b4c.js => 41.c220c8df.js} (98%) rename assets/js/{45.41ae7b03.js => 45.98ef683b.js} (97%) rename assets/js/{46.b7a06152.js => 46.61d51c30.js} (98%) rename assets/js/{47.fdb535f5.js => 47.852889fe.js} (98%) rename assets/js/{48.8ca4767a.js => 48.387c88fd.js} (99%) rename assets/js/{49.63bda42d.js => 49.4362187e.js} (99%) rename assets/js/{5.7bd12aaf.js => 5.c86ab2e9.js} (97%) rename assets/js/{50.6eaad3c7.js => 50.db9ab2c9.js} (99%) rename assets/js/{51.d03929e6.js => 51.82ea6b76.js} (97%) rename assets/js/{54.7b23f7cc.js => 54.9e9cbb98.js} (99%) rename assets/js/{67.c668ed43.js => 67.3e7762b2.js} (98%) rename assets/js/{69.dab71250.js => 69.46efc422.js} (98%) rename assets/js/{70.70153266.js => 70.542e1289.js} (98%) rename assets/js/{72.c80b57c7.js => 72.58029e7d.js} (98%) rename assets/js/{73.6e3cac69.js => 73.bff5f5c0.js} (99%) rename assets/js/{75.ec5d7d14.js => 75.3d03a31b.js} (99%) rename assets/js/{76.8fa5c677.js => 76.bd9f095a.js} (99%) rename assets/js/{77.1e8f9c2d.js => 77.ad0bf117.js} (97%) rename assets/js/{78.c51dc60c.js => 78.cb9a2564.js} (99%) rename assets/js/{79.df9ef6ef.js => 79.641a180c.js} (99%) rename assets/js/{8.215bd622.js => 8.4d18202d.js} (94%) rename assets/js/{80.b4a05a86.js => 80.ec49c7bb.js} (99%) rename assets/js/{81.119cea57.js => 81.f80c9b50.js} (99%) rename assets/js/{86.4af2a063.js => 86.8b13068a.js} (99%) rename assets/js/{87.00a63b75.js => 87.69707213.js} (99%) rename assets/js/{88.993fe8bc.js => 88.151550eb.js} (98%) rename assets/js/{89.e52e45f9.js => 89.757a6bde.js} (99%) rename assets/js/{92.04d2ff06.js => 92.a2f28577.js} (98%) rename assets/js/{93.f0fa6979.js => 93.73197f75.js} (99%) rename assets/js/{97.6b145136.js => 97.38257cb2.js} (98%) rename assets/js/{app.177713a1.js => app.fbe67fe3.js} (56%) create mode 100644 img/community-call-october-2024.png diff --git a/404.html b/404.html index b0b88399a..5bce05cb3 100644 --- a/404.html +++ b/404.html @@ -20,11 +20,11 @@ - - + +
- + diff --git a/adoption/index.html b/adoption/index.html index 2fddc5a3a..0ee71b564 100644 --- a/adoption/index.html +++ b/adoption/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/assets/css/0.styles.82f86bd4.css b/assets/css/0.styles.ef20a3e7.css similarity index 99% rename from assets/css/0.styles.82f86bd4.css rename to assets/css/0.styles.ef20a3e7.css index 1ce8a7205..4c5571306 100644 --- a/assets/css/0.styles.82f86bd4.css +++ b/assets/css/0.styles.ef20a3e7.css @@ -1 +1 @@ -code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#00d1ff}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:4.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:4.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:4.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#00d1ff}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-4.1rem;padding-top:5.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:4.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.container{width:100%}@media (min-width:360px){.container{max-width:360px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1480px){.container{max-width:1480px}}.space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.divide-transparent>:not(template)~:not(template){border-color:transparent}.divide-current>:not(template)~:not(template){border-color:currentColor}.divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.divide-solid>:not(template)~:not(template){border-style:solid}.divide-dashed>:not(template)~:not(template){border-style:dashed}.divide-dotted>:not(template)~:not(template){border-style:dotted}.divide-double>:not(template)~:not(template){border-style:double}.divide-none>:not(template)~:not(template){border-style:none}.divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.appearance-none{-webkit-appearance:none;appearance:none}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-current:hover{background-color:currentColor}.hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.focus\:bg-transparent:focus{background-color:transparent}.focus\:bg-current:focus{background-color:currentColor}.focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.bg-none{background-image:none}.bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.to-transparent{--gradient-to-color:transparent}.to-current{--gradient-to-color:currentColor}.to-black{--gradient-to-color:#000}.to-white{--gradient-to-color:#fff}.to-gray-100{--gradient-to-color:#f7fafc}.to-gray-200{--gradient-to-color:#edf2f7}.to-gray-300{--gradient-to-color:#e2e8f0}.to-gray-400{--gradient-to-color:#cbd5e0}.to-gray-500{--gradient-to-color:#a0aec0}.to-gray-600{--gradient-to-color:#718096}.to-gray-700{--gradient-to-color:#4a5568}.to-gray-800{--gradient-to-color:#2d3748}.to-gray-900{--gradient-to-color:#1a202c}.to-red-100{--gradient-to-color:#fff5f5}.to-red-200{--gradient-to-color:#fed7d7}.to-red-300{--gradient-to-color:#feb2b2}.to-red-400{--gradient-to-color:#fc8181}.to-red-500{--gradient-to-color:#f56565}.to-red-600{--gradient-to-color:#e53e3e}.to-red-700{--gradient-to-color:#c53030}.to-red-800{--gradient-to-color:#9b2c2c}.to-red-900{--gradient-to-color:#742a2a}.to-orange-100{--gradient-to-color:#fffaf0}.to-orange-200{--gradient-to-color:#feebc8}.to-orange-300{--gradient-to-color:#fbd38d}.to-orange-400{--gradient-to-color:#f6ad55}.to-orange-500{--gradient-to-color:#ed8936}.to-orange-600{--gradient-to-color:#dd6b20}.to-orange-700{--gradient-to-color:#c05621}.to-orange-800{--gradient-to-color:#9c4221}.to-orange-900{--gradient-to-color:#7b341e}.to-yellow-100{--gradient-to-color:ivory}.to-yellow-200{--gradient-to-color:#fefcbf}.to-yellow-300{--gradient-to-color:#faf089}.to-yellow-400{--gradient-to-color:#f6e05e}.to-yellow-500{--gradient-to-color:#ecc94b}.to-yellow-600{--gradient-to-color:#d69e2e}.to-yellow-700{--gradient-to-color:#b7791f}.to-yellow-800{--gradient-to-color:#975a16}.to-yellow-900{--gradient-to-color:#744210}.to-green-100{--gradient-to-color:#f0fff4}.to-green-200{--gradient-to-color:#c6f6d5}.to-green-300{--gradient-to-color:#9ae6b4}.to-green-400{--gradient-to-color:#68d391}.to-green-500{--gradient-to-color:#48bb78}.to-green-600{--gradient-to-color:#38a169}.to-green-700{--gradient-to-color:#2f855a}.to-green-800{--gradient-to-color:#276749}.to-green-900{--gradient-to-color:#22543d}.to-teal-100{--gradient-to-color:#e6fffa}.to-teal-200{--gradient-to-color:#b2f5ea}.to-teal-300{--gradient-to-color:#81e6d9}.to-teal-400{--gradient-to-color:#4fd1c5}.to-teal-500{--gradient-to-color:#38b2ac}.to-teal-600{--gradient-to-color:#319795}.to-teal-700{--gradient-to-color:#2c7a7b}.to-teal-800{--gradient-to-color:#285e61}.to-teal-900{--gradient-to-color:#234e52}.to-blue-100{--gradient-to-color:#ebf8ff}.to-blue-200{--gradient-to-color:#bee3f8}.to-blue-300{--gradient-to-color:#90cdf4}.to-blue-400{--gradient-to-color:#63b3ed}.to-blue-500{--gradient-to-color:#4299e1}.to-blue-600{--gradient-to-color:#3182ce}.to-blue-700{--gradient-to-color:#2b6cb0}.to-blue-800{--gradient-to-color:#2c5282}.to-blue-900{--gradient-to-color:#2a4365}.to-indigo-100{--gradient-to-color:#ebf4ff}.to-indigo-200{--gradient-to-color:#c3dafe}.to-indigo-300{--gradient-to-color:#a3bffa}.to-indigo-400{--gradient-to-color:#7f9cf5}.to-indigo-500{--gradient-to-color:#667eea}.to-indigo-600{--gradient-to-color:#5a67d8}.to-indigo-700{--gradient-to-color:#4c51bf}.to-indigo-800{--gradient-to-color:#434190}.to-indigo-900{--gradient-to-color:#3c366b}.to-purple-100{--gradient-to-color:#faf5ff}.to-purple-200{--gradient-to-color:#e9d8fd}.to-purple-300{--gradient-to-color:#d6bcfa}.to-purple-400{--gradient-to-color:#b794f4}.to-purple-500{--gradient-to-color:#9f7aea}.to-purple-600{--gradient-to-color:#805ad5}.to-purple-700{--gradient-to-color:#6b46c1}.to-purple-800{--gradient-to-color:#553c9a}.to-purple-900{--gradient-to-color:#44337a}.to-pink-100{--gradient-to-color:#fff5f7}.to-pink-200{--gradient-to-color:#fed7e2}.to-pink-300{--gradient-to-color:#fbb6ce}.to-pink-400{--gradient-to-color:#f687b3}.to-pink-500{--gradient-to-color:#ed64a6}.to-pink-600{--gradient-to-color:#d53f8c}.to-pink-700{--gradient-to-color:#b83280}.to-pink-800{--gradient-to-color:#97266d}.to-pink-900{--gradient-to-color:#702459}.to-primary{--gradient-to-color:#00d1ff}.to-secondary{--gradient-to-color:#e077ff}.to-greenish-blue{--gradient-to-color:#adffed}.to-blue-gray{--gradient-to-color:#cfe1e6}.hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.hover\:to-transparent:hover{--gradient-to-color:transparent}.hover\:to-current:hover{--gradient-to-color:currentColor}.hover\:to-black:hover{--gradient-to-color:#000}.hover\:to-white:hover{--gradient-to-color:#fff}.hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.hover\:to-gray-600:hover{--gradient-to-color:#718096}.hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.hover\:to-red-400:hover{--gradient-to-color:#fc8181}.hover\:to-red-500:hover{--gradient-to-color:#f56565}.hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.hover\:to-red-700:hover{--gradient-to-color:#c53030}.hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.hover\:to-red-900:hover{--gradient-to-color:#742a2a}.hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.hover\:to-orange-700:hover{--gradient-to-color:#c05621}.hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.hover\:to-yellow-100:hover{--gradient-to-color:ivory}.hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.hover\:to-yellow-900:hover{--gradient-to-color:#744210}.hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.hover\:to-green-400:hover{--gradient-to-color:#68d391}.hover\:to-green-500:hover{--gradient-to-color:#48bb78}.hover\:to-green-600:hover{--gradient-to-color:#38a169}.hover\:to-green-700:hover{--gradient-to-color:#2f855a}.hover\:to-green-800:hover{--gradient-to-color:#276749}.hover\:to-green-900:hover{--gradient-to-color:#22543d}.hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.hover\:to-teal-600:hover{--gradient-to-color:#319795}.hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.hover\:to-teal-800:hover{--gradient-to-color:#285e61}.hover\:to-teal-900:hover{--gradient-to-color:#234e52}.hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.hover\:to-indigo-800:hover{--gradient-to-color:#434190}.hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.hover\:to-purple-900:hover{--gradient-to-color:#44337a}.hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.hover\:to-pink-700:hover{--gradient-to-color:#b83280}.hover\:to-pink-800:hover{--gradient-to-color:#97266d}.hover\:to-pink-900:hover{--gradient-to-color:#702459}.hover\:to-primary:hover{--gradient-to-color:#00d1ff}.hover\:to-secondary:hover{--gradient-to-color:#e077ff}.hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.focus\:to-transparent:focus{--gradient-to-color:transparent}.focus\:to-current:focus{--gradient-to-color:currentColor}.focus\:to-black:focus{--gradient-to-color:#000}.focus\:to-white:focus{--gradient-to-color:#fff}.focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.focus\:to-gray-600:focus{--gradient-to-color:#718096}.focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.focus\:to-red-400:focus{--gradient-to-color:#fc8181}.focus\:to-red-500:focus{--gradient-to-color:#f56565}.focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.focus\:to-red-700:focus{--gradient-to-color:#c53030}.focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.focus\:to-red-900:focus{--gradient-to-color:#742a2a}.focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.focus\:to-orange-700:focus{--gradient-to-color:#c05621}.focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.focus\:to-yellow-100:focus{--gradient-to-color:ivory}.focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.focus\:to-yellow-900:focus{--gradient-to-color:#744210}.focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.focus\:to-green-400:focus{--gradient-to-color:#68d391}.focus\:to-green-500:focus{--gradient-to-color:#48bb78}.focus\:to-green-600:focus{--gradient-to-color:#38a169}.focus\:to-green-700:focus{--gradient-to-color:#2f855a}.focus\:to-green-800:focus{--gradient-to-color:#276749}.focus\:to-green-900:focus{--gradient-to-color:#22543d}.focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.focus\:to-teal-600:focus{--gradient-to-color:#319795}.focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.focus\:to-teal-800:focus{--gradient-to-color:#285e61}.focus\:to-teal-900:focus{--gradient-to-color:#234e52}.focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.focus\:to-indigo-800:focus{--gradient-to-color:#434190}.focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.focus\:to-purple-900:focus{--gradient-to-color:#44337a}.focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.focus\:to-pink-700:focus{--gradient-to-color:#b83280}.focus\:to-pink-800:focus{--gradient-to-color:#97266d}.focus\:to-pink-900:focus{--gradient-to-color:#702459}.focus\:to-primary:focus{--gradient-to-color:#00d1ff}.focus\:to-secondary:focus{--gradient-to-color:#e077ff}.focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.bg-opacity-0{--bg-opacity:0}.bg-opacity-25{--bg-opacity:0.25}.bg-opacity-50{--bg-opacity:0.5}.bg-opacity-75{--bg-opacity:0.75}.bg-opacity-100{--bg-opacity:1}.hover\:bg-opacity-0:hover{--bg-opacity:0}.hover\:bg-opacity-25:hover{--bg-opacity:0.25}.hover\:bg-opacity-50:hover{--bg-opacity:0.5}.hover\:bg-opacity-75:hover{--bg-opacity:0.75}.hover\:bg-opacity-100:hover{--bg-opacity:1}.focus\:bg-opacity-0:focus{--bg-opacity:0}.focus\:bg-opacity-25:focus{--bg-opacity:0.25}.focus\:bg-opacity-50:focus{--bg-opacity:0.5}.focus\:bg-opacity-75:focus{--bg-opacity:0.75}.focus\:bg-opacity-100:focus{--bg-opacity:1}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.hover\:border-transparent:hover{border-color:transparent}.hover\:border-current:hover{border-color:currentColor}.hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.focus\:border-transparent:focus{border-color:transparent}.focus\:border-current:focus{border-color:currentColor}.focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.border-opacity-0{--border-opacity:0}.border-opacity-25{--border-opacity:0.25}.border-opacity-50{--border-opacity:0.5}.border-opacity-75{--border-opacity:0.75}.border-opacity-100{--border-opacity:1}.hover\:border-opacity-0:hover{--border-opacity:0}.hover\:border-opacity-25:hover{--border-opacity:0.25}.hover\:border-opacity-50:hover{--border-opacity:0.5}.hover\:border-opacity-75:hover{--border-opacity:0.75}.hover\:border-opacity-100:hover{--border-opacity:1}.focus\:border-opacity-0:focus{--border-opacity:0}.focus\:border-opacity-25:focus{--border-opacity:0.25}.focus\:border-opacity-50:focus{--border-opacity:0.5}.focus\:border-opacity-75:focus{--border-opacity:0.75}.focus\:border-opacity-100:focus{--border-opacity:1}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-t-sm{border-top-left-radius:.125rem}.rounded-r-sm,.rounded-t-sm{border-top-right-radius:.125rem}.rounded-b-sm,.rounded-r-sm{border-bottom-right-radius:.125rem}.rounded-b-sm,.rounded-l-sm{border-bottom-left-radius:.125rem}.rounded-l-sm{border-top-left-radius:.125rem}.rounded-t{border-top-left-radius:.25rem}.rounded-r,.rounded-t{border-top-right-radius:.25rem}.rounded-b,.rounded-r{border-bottom-right-radius:.25rem}.rounded-b,.rounded-l{border-bottom-left-radius:.25rem}.rounded-l{border-top-left-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem}.rounded-r-md,.rounded-t-md{border-top-right-radius:.375rem}.rounded-b-md,.rounded-r-md{border-bottom-right-radius:.375rem}.rounded-b-md,.rounded-l-md{border-bottom-left-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-b-lg,.rounded-l-lg{border-bottom-left-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem}.rounded-r-xl,.rounded-t-xl{border-top-right-radius:.75rem}.rounded-b-xl,.rounded-r-xl{border-bottom-right-radius:.75rem}.rounded-b-xl,.rounded-l-xl{border-bottom-left-radius:.75rem}.rounded-l-xl{border-top-left-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-r-2xl{border-top-right-radius:1rem}.rounded-b-2xl,.rounded-r-2xl{border-bottom-right-radius:1rem}.rounded-b-2xl,.rounded-l-2xl{border-bottom-left-radius:1rem}.rounded-l-2xl{border-top-left-radius:1rem}.rounded-t-3xl{border-top-left-radius:1.5rem}.rounded-r-3xl,.rounded-t-3xl{border-top-right-radius:1.5rem}.rounded-b-3xl,.rounded-r-3xl{border-bottom-right-radius:1.5rem}.rounded-b-3xl,.rounded-l-3xl{border-bottom-left-radius:1.5rem}.rounded-l-3xl{border-top-left-radius:1.5rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-r-full{border-top-right-radius:9999px}.rounded-b-full,.rounded-r-full{border-bottom-right-radius:9999px}.rounded-b-full,.rounded-l-full{border-bottom-left-radius:9999px}.rounded-l-full{border-top-left-radius:9999px}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.rounded-bl-none{border-bottom-left-radius:0}.rounded-tl-sm{border-top-left-radius:.125rem}.rounded-tr-sm{border-top-right-radius:.125rem}.rounded-br-sm{border-bottom-right-radius:.125rem}.rounded-bl-sm{border-bottom-left-radius:.125rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-tl-md{border-top-left-radius:.375rem}.rounded-tr-md{border-top-right-radius:.375rem}.rounded-br-md{border-bottom-right-radius:.375rem}.rounded-bl-md{border-bottom-left-radius:.375rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl-xl{border-top-left-radius:.75rem}.rounded-tr-xl{border-top-right-radius:.75rem}.rounded-br-xl{border-bottom-right-radius:.75rem}.rounded-bl-xl{border-bottom-left-radius:.75rem}.rounded-tl-2xl{border-top-left-radius:1rem}.rounded-tr-2xl{border-top-right-radius:1rem}.rounded-br-2xl{border-bottom-right-radius:1rem}.rounded-bl-2xl{border-bottom-left-radius:1rem}.rounded-tl-3xl{border-top-left-radius:1.5rem}.rounded-tr-3xl{border-top-right-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-tl-full{border-top-left-radius:9999px}.rounded-tr-full{border-top-right-radius:9999px}.rounded-br-full{border-bottom-right-radius:9999px}.rounded-bl-full{border-bottom-left-radius:9999px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-none{border-style:none}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border{border-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-t-4{border-top-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-l-4{border-left-width:4px}.border-t-8{border-top-width:8px}.border-r-8{border-right-width:8px}.border-b-8{border-bottom-width:8px}.border-l-8{border-left-width:8px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-no-wrap{flex-wrap:nowrap}.place-items-auto{place-items:auto}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-stretch{place-content:stretch}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.justify-items-auto{justify-items:auto}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow-0{flex-grow:0}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clearfix:after{content:"";display:table;clear:both}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.font-sans{font-family: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}.font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-hairline{font-weight:100}.font-thin{font-weight:200}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-black{font-weight:900}.hover\:font-hairline:hover{font-weight:100}.hover\:font-thin:hover{font-weight:200}.hover\:font-light:hover{font-weight:300}.hover\:font-normal:hover{font-weight:400}.hover\:font-medium:hover{font-weight:500}.hover\:font-semibold:hover{font-weight:600}.hover\:font-bold:hover{font-weight:700}.hover\:font-extrabold:hover{font-weight:800}.hover\:font-black:hover{font-weight:900}.focus\:font-hairline:focus{font-weight:100}.focus\:font-thin:focus{font-weight:200}.focus\:font-light:focus{font-weight:300}.focus\:font-normal:focus{font-weight:400}.focus\:font-medium:focus{font-weight:500}.focus\:font-semibold:focus{font-weight:600}.focus\:font-bold:focus{font-weight:700}.focus\:font-extrabold:focus{font-weight:800}.focus\:font-black:focus{font-weight:900}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-56{height:14rem}.h-64{height:16rem}.h-auto{height:auto}.h-px{height:1px}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.m-10{margin:2.5rem}.m-12{margin:3rem}.m-16{margin:4rem}.m-20{margin:5rem}.m-24{margin:6rem}.m-32{margin:8rem}.m-40{margin:10rem}.m-48{margin:12rem}.m-56{margin:14rem}.m-64{margin:16rem}.m-auto{margin:auto}.m-px{margin:1px}.-m-1{margin:-.25rem}.-m-2{margin:-.5rem}.-m-3{margin:-.75rem}.-m-4{margin:-1rem}.-m-5{margin:-1.25rem}.-m-6{margin:-1.5rem}.-m-8{margin:-2rem}.-m-10{margin:-2.5rem}.-m-12{margin:-3rem}.-m-16{margin:-4rem}.-m-20{margin:-5rem}.-m-24{margin:-6rem}.-m-32{margin:-8rem}.-m-40{margin:-10rem}.-m-48{margin:-12rem}.-m-56{margin:-14rem}.-m-64{margin:-16rem}.-m-px{margin:-1px}.my-0{margin-top:0;margin-bottom:0}.mx-0{margin-left:0;margin-right:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mx-12{margin-left:3rem;margin-right:3rem}.my-16{margin-top:4rem;margin-bottom:4rem}.mx-16{margin-left:4rem;margin-right:4rem}.my-20{margin-top:5rem;margin-bottom:5rem}.mx-20{margin-left:5rem;margin-right:5rem}.my-24{margin-top:6rem;margin-bottom:6rem}.mx-24{margin-left:6rem;margin-right:6rem}.my-32{margin-top:8rem;margin-bottom:8rem}.mx-32{margin-left:8rem;margin-right:8rem}.my-40{margin-top:10rem;margin-bottom:10rem}.mx-40{margin-left:10rem;margin-right:10rem}.my-48{margin-top:12rem;margin-bottom:12rem}.mx-48{margin-left:12rem;margin-right:12rem}.my-56{margin-top:14rem;margin-bottom:14rem}.mx-56{margin-left:14rem;margin-right:14rem}.my-64{margin-top:16rem;margin-bottom:16rem}.mx-64{margin-left:16rem;margin-right:16rem}.my-auto{margin-top:auto;margin-bottom:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-px{margin-top:1px;margin-bottom:1px}.mx-px{margin-left:1px;margin-right:1px}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-8{margin-top:-2rem;margin-bottom:-2rem}.-mx-8{margin-left:-2rem;margin-right:-2rem}.-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.-my-12{margin-top:-3rem;margin-bottom:-3rem}.-mx-12{margin-left:-3rem;margin-right:-3rem}.-my-16{margin-top:-4rem;margin-bottom:-4rem}.-mx-16{margin-left:-4rem;margin-right:-4rem}.-my-20{margin-top:-5rem;margin-bottom:-5rem}.-mx-20{margin-left:-5rem;margin-right:-5rem}.-my-24{margin-top:-6rem;margin-bottom:-6rem}.-mx-24{margin-left:-6rem;margin-right:-6rem}.-my-32{margin-top:-8rem;margin-bottom:-8rem}.-mx-32{margin-left:-8rem;margin-right:-8rem}.-my-40{margin-top:-10rem;margin-bottom:-10rem}.-mx-40{margin-left:-10rem;margin-right:-10rem}.-my-48{margin-top:-12rem;margin-bottom:-12rem}.-mx-48{margin-left:-12rem;margin-right:-12rem}.-my-56{margin-top:-14rem;margin-bottom:-14rem}.-mx-56{margin-left:-14rem;margin-right:-14rem}.-my-64{margin-top:-16rem;margin-bottom:-16rem}.-mx-64{margin-left:-16rem;margin-right:-16rem}.-my-px{margin-top:-1px;margin-bottom:-1px}.-mx-px{margin-left:-1px;margin-right:-1px}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.mt-12{margin-top:3rem}.mr-12{margin-right:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.mb-16{margin-bottom:4rem}.ml-16{margin-left:4rem}.mt-20{margin-top:5rem}.mr-20{margin-right:5rem}.mb-20{margin-bottom:5rem}.ml-20{margin-left:5rem}.mt-24{margin-top:6rem}.mr-24{margin-right:6rem}.mb-24{margin-bottom:6rem}.ml-24{margin-left:6rem}.mt-32{margin-top:8rem}.mr-32{margin-right:8rem}.mb-32{margin-bottom:8rem}.ml-32{margin-left:8rem}.mt-40{margin-top:10rem}.mr-40{margin-right:10rem}.mb-40{margin-bottom:10rem}.ml-40{margin-left:10rem}.mt-48{margin-top:12rem}.mr-48{margin-right:12rem}.mb-48{margin-bottom:12rem}.ml-48{margin-left:12rem}.mt-56{margin-top:14rem}.mr-56{margin-right:14rem}.mb-56{margin-bottom:14rem}.ml-56{margin-left:14rem}.mt-64{margin-top:16rem}.mr-64{margin-right:16rem}.mb-64{margin-bottom:16rem}.ml-64{margin-left:16rem}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mt-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-ml-1{margin-left:-.25rem}.-mt-2{margin-top:-.5rem}.-mr-2{margin-right:-.5rem}.-mb-2{margin-bottom:-.5rem}.-ml-2{margin-left:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-3{margin-bottom:-.75rem}.-ml-3{margin-left:-.75rem}.-mt-4{margin-top:-1rem}.-mr-4{margin-right:-1rem}.-mb-4{margin-bottom:-1rem}.-ml-4{margin-left:-1rem}.-mt-5{margin-top:-1.25rem}.-mr-5{margin-right:-1.25rem}.-mb-5{margin-bottom:-1.25rem}.-ml-5{margin-left:-1.25rem}.-mt-6{margin-top:-1.5rem}.-mr-6{margin-right:-1.5rem}.-mb-6{margin-bottom:-1.5rem}.-ml-6{margin-left:-1.5rem}.-mt-8{margin-top:-2rem}.-mr-8{margin-right:-2rem}.-mb-8{margin-bottom:-2rem}.-ml-8{margin-left:-2rem}.-mt-10{margin-top:-2.5rem}.-mr-10{margin-right:-2.5rem}.-mb-10{margin-bottom:-2.5rem}.-ml-10{margin-left:-2.5rem}.-mt-12{margin-top:-3rem}.-mr-12{margin-right:-3rem}.-mb-12{margin-bottom:-3rem}.-ml-12{margin-left:-3rem}.-mt-16{margin-top:-4rem}.-mr-16{margin-right:-4rem}.-mb-16{margin-bottom:-4rem}.-ml-16{margin-left:-4rem}.-mt-20{margin-top:-5rem}.-mr-20{margin-right:-5rem}.-mb-20{margin-bottom:-5rem}.-ml-20{margin-left:-5rem}.-mt-24{margin-top:-6rem}.-mr-24{margin-right:-6rem}.-mb-24{margin-bottom:-6rem}.-ml-24{margin-left:-6rem}.-mt-32{margin-top:-8rem}.-mr-32{margin-right:-8rem}.-mb-32{margin-bottom:-8rem}.-ml-32{margin-left:-8rem}.-mt-40{margin-top:-10rem}.-mr-40{margin-right:-10rem}.-mb-40{margin-bottom:-10rem}.-ml-40{margin-left:-10rem}.-mt-48{margin-top:-12rem}.-mr-48{margin-right:-12rem}.-mb-48{margin-bottom:-12rem}.-ml-48{margin-left:-12rem}.-mt-56{margin-top:-14rem}.-mr-56{margin-right:-14rem}.-mb-56{margin-bottom:-14rem}.-ml-56{margin-left:-14rem}.-mt-64{margin-top:-16rem}.-mr-64{margin-right:-16rem}.-mb-64{margin-bottom:-16rem}.-ml-64{margin-left:-16rem}.-mt-px{margin-top:-1px}.-mr-px{margin-right:-1px}.-mb-px{margin-bottom:-1px}.-ml-px{margin-left:-1px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-screen-xs{max-width:360px}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.max-w-screen-xxl{max-width:1480px}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.hover\:opacity-0:hover{opacity:0}.hover\:opacity-25:hover{opacity:.25}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-75:hover{opacity:.75}.hover\:opacity-100:hover{opacity:1}.focus\:opacity-0:focus{opacity:0}.focus\:opacity-25:focus{opacity:.25}.focus\:opacity-50:focus{opacity:.5}.focus\:opacity-75:focus{opacity:.75}.focus\:opacity-100:focus{opacity:1}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline-white{outline:2px dotted #fff;outline-offset:2px}.outline-black{outline:2px dotted #000;outline-offset:2px}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.scrolling-touch{-webkit-overflow-scrolling:touch}.scrolling-auto{-webkit-overflow-scrolling:auto}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-20{padding:5rem}.p-24{padding:6rem}.p-32{padding:8rem}.p-40{padding:10rem}.p-48{padding:12rem}.p-56{padding:14rem}.p-64{padding:16rem}.p-px{padding:1px}.py-0{padding-top:0;padding-bottom:0}.px-0{padding-left:0;padding-right:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.px-8{padding-left:2rem;padding-right:2rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.px-16{padding-left:4rem;padding-right:4rem}.py-20{padding-top:5rem;padding-bottom:5rem}.px-20{padding-left:5rem;padding-right:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.px-24{padding-left:6rem;padding-right:6rem}.py-32{padding-top:8rem;padding-bottom:8rem}.px-32{padding-left:8rem;padding-right:8rem}.py-40{padding-top:10rem;padding-bottom:10rem}.px-40{padding-left:10rem;padding-right:10rem}.py-48{padding-top:12rem;padding-bottom:12rem}.px-48{padding-left:12rem;padding-right:12rem}.py-56{padding-top:14rem;padding-bottom:14rem}.px-56{padding-left:14rem;padding-right:14rem}.py-64{padding-top:16rem;padding-bottom:16rem}.px-64{padding-left:16rem;padding-right:16rem}.py-px{padding-top:1px;padding-bottom:1px}.px-px{padding-left:1px;padding-right:1px}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.pt-12{padding-top:3rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-12{padding-left:3rem}.pt-16{padding-top:4rem}.pr-16{padding-right:4rem}.pb-16{padding-bottom:4rem}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pr-20{padding-right:5rem}.pb-20{padding-bottom:5rem}.pl-20{padding-left:5rem}.pt-24{padding-top:6rem}.pr-24{padding-right:6rem}.pb-24{padding-bottom:6rem}.pl-24{padding-left:6rem}.pt-32{padding-top:8rem}.pr-32{padding-right:8rem}.pb-32{padding-bottom:8rem}.pl-32{padding-left:8rem}.pt-40{padding-top:10rem}.pr-40{padding-right:10rem}.pb-40{padding-bottom:10rem}.pl-40{padding-left:10rem}.pt-48{padding-top:12rem}.pr-48{padding-right:12rem}.pb-48{padding-bottom:12rem}.pl-48{padding-left:12rem}.pt-56{padding-top:14rem}.pr-56{padding-right:14rem}.pb-56{padding-bottom:14rem}.pl-56{padding-left:14rem}.pt-64{padding-top:16rem}.pr-64{padding-right:16rem}.pb-64{padding-bottom:16rem}.pl-64{padding-left:16rem}.pt-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.placeholder-transparent::placeholder{color:transparent}.placeholder-current::placeholder{color:currentColor}.placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.focus\:placeholder-transparent:focus::placeholder{color:transparent}.focus\:placeholder-current:focus::placeholder{color:currentColor}.focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.placeholder-opacity-0::placeholder{--placeholder-opacity:0}.placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.placeholder-opacity-100::placeholder{--placeholder-opacity:1}.focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-auto{top:auto;right:auto;bottom:auto;left:auto}.inset-y-0{top:0;bottom:0}.inset-x-0{right:0;left:0}.inset-y-auto{top:auto;bottom:auto}.inset-x-auto{right:auto;left:auto}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.shadow-none{box-shadow:none}.hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.hover\:shadow-none:hover{box-shadow:none}.focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.focus\:shadow-none:focus{box-shadow:none}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-0{stroke-width:0}.stroke-1{stroke-width:1}.stroke-2{stroke-width:2}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-transparent{color:transparent}.text-current{color:currentColor}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.hover\:text-transparent:hover{color:transparent}.hover\:text-current:hover{color:currentColor}.hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.focus\:text-transparent:focus{color:transparent}.focus\:text-current:focus{color:currentColor}.focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.text-opacity-0{--text-opacity:0}.text-opacity-25{--text-opacity:0.25}.text-opacity-50{--text-opacity:0.5}.text-opacity-75{--text-opacity:0.75}.text-opacity-100{--text-opacity:1}.hover\:text-opacity-0:hover{--text-opacity:0}.hover\:text-opacity-25:hover{--text-opacity:0.25}.hover\:text-opacity-50:hover{--text-opacity:0.5}.hover\:text-opacity-75:hover{--text-opacity:0.75}.hover\:text-opacity-100:hover{--text-opacity:1}.focus\:text-opacity-0:focus{--text-opacity:0}.focus\:text-opacity-25:focus{--text-opacity:0.25}.focus\:text-opacity-50:focus{--text-opacity:0.5}.focus\:text-opacity-75:focus{--text-opacity:0.75}.focus\:text-opacity-100:focus{--text-opacity:1}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.hover\:line-through:hover{text-decoration:line-through}.hover\:no-underline:hover{text-decoration:none}.focus\:underline:focus{text-decoration:underline}.focus\:line-through:focus{text-decoration:line-through}.focus\:no-underline:focus{text-decoration:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.diagonal-fractions,.lining-nums,.oldstyle-nums,.ordinal,.proportional-nums,.slashed-zero,.stacked-fractions,.tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.normal-nums{font-variant-numeric:normal}.ordinal{--font-variant-numeric-ordinal:ordinal}.slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.lining-nums{--font-variant-numeric-figure:lining-nums}.oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.proportional-nums{--font-variant-numeric-spacing:proportional-nums}.tabular-nums{--font-variant-numeric-spacing:tabular-nums}.diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.tracking-tighter{letter-spacing:-.05em}.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.visible{visibility:visible}.invisible{visibility:hidden}.whitespace-normal{white-space:normal}.whitespace-no-wrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.break-words{word-wrap:break-word;overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-1{width:.25rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.w-auto{width:auto}.w-px{width:1px}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-6\/12{width:50%}.w-7\/12{width:58.333333%}.w-8\/12{width:66.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.gap-0{grid-gap:0;gap:0}.gap-1{grid-gap:.25rem;gap:.25rem}.gap-2{grid-gap:.5rem;gap:.5rem}.gap-3{grid-gap:.75rem;gap:.75rem}.gap-4{grid-gap:1rem;gap:1rem}.gap-5{grid-gap:1.25rem;gap:1.25rem}.gap-6{grid-gap:1.5rem;gap:1.5rem}.gap-8{grid-gap:2rem;gap:2rem}.gap-10{grid-gap:2.5rem;gap:2.5rem}.gap-12{grid-gap:3rem;gap:3rem}.gap-16{grid-gap:4rem;gap:4rem}.gap-20{grid-gap:5rem;gap:5rem}.gap-24{grid-gap:6rem;gap:6rem}.gap-32{grid-gap:8rem;gap:8rem}.gap-40{grid-gap:10rem;gap:10rem}.gap-48{grid-gap:12rem;gap:12rem}.gap-56{grid-gap:14rem;gap:14rem}.gap-64{grid-gap:16rem;gap:16rem}.gap-px{grid-gap:1px;gap:1px}.col-gap-0{grid-column-gap:0;column-gap:0}.col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.col-gap-4{grid-column-gap:1rem;column-gap:1rem}.col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.col-gap-8{grid-column-gap:2rem;column-gap:2rem}.col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.col-gap-12{grid-column-gap:3rem;column-gap:3rem}.col-gap-16{grid-column-gap:4rem;column-gap:4rem}.col-gap-20{grid-column-gap:5rem;column-gap:5rem}.col-gap-24{grid-column-gap:6rem;column-gap:6rem}.col-gap-32{grid-column-gap:8rem;column-gap:8rem}.col-gap-40{grid-column-gap:10rem;column-gap:10rem}.col-gap-48{grid-column-gap:12rem;column-gap:12rem}.col-gap-56{grid-column-gap:14rem;column-gap:14rem}.col-gap-64{grid-column-gap:16rem;column-gap:16rem}.col-gap-px{grid-column-gap:1px;column-gap:1px}.gap-x-0{grid-column-gap:0;column-gap:0}.gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.gap-x-4{grid-column-gap:1rem;column-gap:1rem}.gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{grid-column-gap:2rem;column-gap:2rem}.gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{grid-column-gap:3rem;column-gap:3rem}.gap-x-16{grid-column-gap:4rem;column-gap:4rem}.gap-x-20{grid-column-gap:5rem;column-gap:5rem}.gap-x-24{grid-column-gap:6rem;column-gap:6rem}.gap-x-32{grid-column-gap:8rem;column-gap:8rem}.gap-x-40{grid-column-gap:10rem;column-gap:10rem}.gap-x-48{grid-column-gap:12rem;column-gap:12rem}.gap-x-56{grid-column-gap:14rem;column-gap:14rem}.gap-x-64{grid-column-gap:16rem;column-gap:16rem}.gap-x-px{grid-column-gap:1px;column-gap:1px}.row-gap-0{grid-row-gap:0;row-gap:0}.row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.row-gap-4{grid-row-gap:1rem;row-gap:1rem}.row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.row-gap-8{grid-row-gap:2rem;row-gap:2rem}.row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.row-gap-12{grid-row-gap:3rem;row-gap:3rem}.row-gap-16{grid-row-gap:4rem;row-gap:4rem}.row-gap-20{grid-row-gap:5rem;row-gap:5rem}.row-gap-24{grid-row-gap:6rem;row-gap:6rem}.row-gap-32{grid-row-gap:8rem;row-gap:8rem}.row-gap-40{grid-row-gap:10rem;row-gap:10rem}.row-gap-48{grid-row-gap:12rem;row-gap:12rem}.row-gap-56{grid-row-gap:14rem;row-gap:14rem}.row-gap-64{grid-row-gap:16rem;row-gap:16rem}.row-gap-px{grid-row-gap:1px;row-gap:1px}.gap-y-0{grid-row-gap:0;row-gap:0}.gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.gap-y-4{grid-row-gap:1rem;row-gap:1rem}.gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.gap-y-8{grid-row-gap:2rem;row-gap:2rem}.gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.gap-y-12{grid-row-gap:3rem;row-gap:3rem}.gap-y-16{grid-row-gap:4rem;row-gap:4rem}.gap-y-20{grid-row-gap:5rem;row-gap:5rem}.gap-y-24{grid-row-gap:6rem;row-gap:6rem}.gap-y-32{grid-row-gap:8rem;row-gap:8rem}.gap-y-40{grid-row-gap:10rem;row-gap:10rem}.gap-y-48{grid-row-gap:12rem;row-gap:12rem}.gap-y-56{grid-row-gap:14rem;row-gap:14rem}.gap-y-64{grid-row-gap:16rem;row-gap:16rem}.gap-y-px{grid-row-gap:1px;row-gap:1px}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.auto-cols-auto{grid-auto-columns:auto}.auto-cols-min{grid-auto-columns:min-content}.auto-cols-max{grid-auto-columns:max-content}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-4{grid-column-start:4}.col-start-5{grid-column-start:5}.col-start-6{grid-column-start:6}.col-start-7{grid-column-start:7}.col-start-8{grid-column-start:8}.col-start-9{grid-column-start:9}.col-start-10{grid-column-start:10}.col-start-11{grid-column-start:11}.col-start-12{grid-column-start:12}.col-start-13{grid-column-start:13}.col-start-auto{grid-column-start:auto}.col-end-1{grid-column-end:1}.col-end-2{grid-column-end:2}.col-end-3{grid-column-end:3}.col-end-4{grid-column-end:4}.col-end-5{grid-column-end:5}.col-end-6{grid-column-end:6}.col-end-7{grid-column-end:7}.col-end-8{grid-column-end:8}.col-end-9{grid-column-end:9}.col-end-10{grid-column-end:10}.col-end-11{grid-column-end:11}.col-end-12{grid-column-end:12}.col-end-13{grid-column-end:13}.col-end-auto{grid-column-end:auto}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-none{grid-template-rows:none}.auto-rows-auto{grid-auto-rows:auto}.auto-rows-min{grid-auto-rows:min-content}.auto-rows-max{grid-auto-rows:max-content}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.row-auto{grid-row:auto}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.row-span-5{grid-row:span 5/span 5}.row-span-6{grid-row:span 6/span 6}.row-span-full{grid-row:1/-1}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.row-start-4{grid-row-start:4}.row-start-5{grid-row-start:5}.row-start-6{grid-row-start:6}.row-start-7{grid-row-start:7}.row-start-auto{grid-row-start:auto}.row-end-1{grid-row-end:1}.row-end-2{grid-row-end:2}.row-end-3{grid-row-end:3}.row-end-4{grid-row-end:4}.row-end-5{grid-row-end:5}.row-end-6{grid-row-end:6}.row-end-7{grid-row-end:7}.row-end-auto{grid-row-end:auto}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.transform-none{transform:none}.origin-center{transform-origin:center}.origin-top{transform-origin:top}.origin-top-right{transform-origin:top right}.origin-right{transform-origin:right}.origin-bottom-right{transform-origin:bottom right}.origin-bottom{transform-origin:bottom}.origin-bottom-left{transform-origin:bottom left}.origin-left{transform-origin:left}.origin-top-left{transform-origin:top left}.scale-0{--transform-scale-x:0;--transform-scale-y:0}.scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.scale-x-0{--transform-scale-x:0}.scale-x-50{--transform-scale-x:.5}.scale-x-75{--transform-scale-x:.75}.scale-x-90{--transform-scale-x:.9}.scale-x-95{--transform-scale-x:.95}.scale-x-100{--transform-scale-x:1}.scale-x-105{--transform-scale-x:1.05}.scale-x-110{--transform-scale-x:1.1}.scale-x-125{--transform-scale-x:1.25}.scale-x-150{--transform-scale-x:1.5}.scale-y-0{--transform-scale-y:0}.scale-y-50{--transform-scale-y:.5}.scale-y-75{--transform-scale-y:.75}.scale-y-90{--transform-scale-y:.9}.scale-y-95{--transform-scale-y:.95}.scale-y-100{--transform-scale-y:1}.scale-y-105{--transform-scale-y:1.05}.scale-y-110{--transform-scale-y:1.1}.scale-y-125{--transform-scale-y:1.25}.scale-y-150{--transform-scale-y:1.5}.hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.hover\:scale-x-0:hover{--transform-scale-x:0}.hover\:scale-x-50:hover{--transform-scale-x:.5}.hover\:scale-x-75:hover{--transform-scale-x:.75}.hover\:scale-x-90:hover{--transform-scale-x:.9}.hover\:scale-x-95:hover{--transform-scale-x:.95}.hover\:scale-x-100:hover{--transform-scale-x:1}.hover\:scale-x-105:hover{--transform-scale-x:1.05}.hover\:scale-x-110:hover{--transform-scale-x:1.1}.hover\:scale-x-125:hover{--transform-scale-x:1.25}.hover\:scale-x-150:hover{--transform-scale-x:1.5}.hover\:scale-y-0:hover{--transform-scale-y:0}.hover\:scale-y-50:hover{--transform-scale-y:.5}.hover\:scale-y-75:hover{--transform-scale-y:.75}.hover\:scale-y-90:hover{--transform-scale-y:.9}.hover\:scale-y-95:hover{--transform-scale-y:.95}.hover\:scale-y-100:hover{--transform-scale-y:1}.hover\:scale-y-105:hover{--transform-scale-y:1.05}.hover\:scale-y-110:hover{--transform-scale-y:1.1}.hover\:scale-y-125:hover{--transform-scale-y:1.25}.hover\:scale-y-150:hover{--transform-scale-y:1.5}.focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.focus\:scale-x-0:focus{--transform-scale-x:0}.focus\:scale-x-50:focus{--transform-scale-x:.5}.focus\:scale-x-75:focus{--transform-scale-x:.75}.focus\:scale-x-90:focus{--transform-scale-x:.9}.focus\:scale-x-95:focus{--transform-scale-x:.95}.focus\:scale-x-100:focus{--transform-scale-x:1}.focus\:scale-x-105:focus{--transform-scale-x:1.05}.focus\:scale-x-110:focus{--transform-scale-x:1.1}.focus\:scale-x-125:focus{--transform-scale-x:1.25}.focus\:scale-x-150:focus{--transform-scale-x:1.5}.focus\:scale-y-0:focus{--transform-scale-y:0}.focus\:scale-y-50:focus{--transform-scale-y:.5}.focus\:scale-y-75:focus{--transform-scale-y:.75}.focus\:scale-y-90:focus{--transform-scale-y:.9}.focus\:scale-y-95:focus{--transform-scale-y:.95}.focus\:scale-y-100:focus{--transform-scale-y:1}.focus\:scale-y-105:focus{--transform-scale-y:1.05}.focus\:scale-y-110:focus{--transform-scale-y:1.1}.focus\:scale-y-125:focus{--transform-scale-y:1.25}.focus\:scale-y-150:focus{--transform-scale-y:1.5}.rotate-0{--transform-rotate:0}.rotate-1{--transform-rotate:1deg}.rotate-2{--transform-rotate:2deg}.rotate-3{--transform-rotate:3deg}.rotate-6{--transform-rotate:6deg}.rotate-12{--transform-rotate:12deg}.rotate-45{--transform-rotate:45deg}.rotate-90{--transform-rotate:90deg}.rotate-180{--transform-rotate:180deg}.-rotate-180{--transform-rotate:-180deg}.-rotate-90{--transform-rotate:-90deg}.-rotate-45{--transform-rotate:-45deg}.-rotate-12{--transform-rotate:-12deg}.-rotate-6{--transform-rotate:-6deg}.-rotate-3{--transform-rotate:-3deg}.-rotate-2{--transform-rotate:-2deg}.-rotate-1{--transform-rotate:-1deg}.hover\:rotate-0:hover{--transform-rotate:0}.hover\:rotate-1:hover{--transform-rotate:1deg}.hover\:rotate-2:hover{--transform-rotate:2deg}.hover\:rotate-3:hover{--transform-rotate:3deg}.hover\:rotate-6:hover{--transform-rotate:6deg}.hover\:rotate-12:hover{--transform-rotate:12deg}.hover\:rotate-45:hover{--transform-rotate:45deg}.hover\:rotate-90:hover{--transform-rotate:90deg}.hover\:rotate-180:hover{--transform-rotate:180deg}.hover\:-rotate-180:hover{--transform-rotate:-180deg}.hover\:-rotate-90:hover{--transform-rotate:-90deg}.hover\:-rotate-45:hover{--transform-rotate:-45deg}.hover\:-rotate-12:hover{--transform-rotate:-12deg}.hover\:-rotate-6:hover{--transform-rotate:-6deg}.hover\:-rotate-3:hover{--transform-rotate:-3deg}.hover\:-rotate-2:hover{--transform-rotate:-2deg}.hover\:-rotate-1:hover{--transform-rotate:-1deg}.focus\:rotate-0:focus{--transform-rotate:0}.focus\:rotate-1:focus{--transform-rotate:1deg}.focus\:rotate-2:focus{--transform-rotate:2deg}.focus\:rotate-3:focus{--transform-rotate:3deg}.focus\:rotate-6:focus{--transform-rotate:6deg}.focus\:rotate-12:focus{--transform-rotate:12deg}.focus\:rotate-45:focus{--transform-rotate:45deg}.focus\:rotate-90:focus{--transform-rotate:90deg}.focus\:rotate-180:focus{--transform-rotate:180deg}.focus\:-rotate-180:focus{--transform-rotate:-180deg}.focus\:-rotate-90:focus{--transform-rotate:-90deg}.focus\:-rotate-45:focus{--transform-rotate:-45deg}.focus\:-rotate-12:focus{--transform-rotate:-12deg}.focus\:-rotate-6:focus{--transform-rotate:-6deg}.focus\:-rotate-3:focus{--transform-rotate:-3deg}.focus\:-rotate-2:focus{--transform-rotate:-2deg}.focus\:-rotate-1:focus{--transform-rotate:-1deg}.translate-x-0{--transform-translate-x:0}.translate-x-1{--transform-translate-x:0.25rem}.translate-x-2{--transform-translate-x:0.5rem}.translate-x-3{--transform-translate-x:0.75rem}.translate-x-4{--transform-translate-x:1rem}.translate-x-5{--transform-translate-x:1.25rem}.translate-x-6{--transform-translate-x:1.5rem}.translate-x-8{--transform-translate-x:2rem}.translate-x-10{--transform-translate-x:2.5rem}.translate-x-12{--transform-translate-x:3rem}.translate-x-16{--transform-translate-x:4rem}.translate-x-20{--transform-translate-x:5rem}.translate-x-24{--transform-translate-x:6rem}.translate-x-32{--transform-translate-x:8rem}.translate-x-40{--transform-translate-x:10rem}.translate-x-48{--transform-translate-x:12rem}.translate-x-56{--transform-translate-x:14rem}.translate-x-64{--transform-translate-x:16rem}.translate-x-px{--transform-translate-x:1px}.-translate-x-1{--transform-translate-x:-0.25rem}.-translate-x-2{--transform-translate-x:-0.5rem}.-translate-x-3{--transform-translate-x:-0.75rem}.-translate-x-4{--transform-translate-x:-1rem}.-translate-x-5{--transform-translate-x:-1.25rem}.-translate-x-6{--transform-translate-x:-1.5rem}.-translate-x-8{--transform-translate-x:-2rem}.-translate-x-10{--transform-translate-x:-2.5rem}.-translate-x-12{--transform-translate-x:-3rem}.-translate-x-16{--transform-translate-x:-4rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-x-24{--transform-translate-x:-6rem}.-translate-x-32{--transform-translate-x:-8rem}.-translate-x-40{--transform-translate-x:-10rem}.-translate-x-48{--transform-translate-x:-12rem}.-translate-x-56{--transform-translate-x:-14rem}.-translate-x-64{--transform-translate-x:-16rem}.-translate-x-px{--transform-translate-x:-1px}.-translate-x-full{--transform-translate-x:-100%}.-translate-x-1\/2{--transform-translate-x:-50%}.translate-x-1\/2{--transform-translate-x:50%}.translate-x-full{--transform-translate-x:100%}.translate-y-0{--transform-translate-y:0}.translate-y-1{--transform-translate-y:0.25rem}.translate-y-2{--transform-translate-y:0.5rem}.translate-y-3{--transform-translate-y:0.75rem}.translate-y-4{--transform-translate-y:1rem}.translate-y-5{--transform-translate-y:1.25rem}.translate-y-6{--transform-translate-y:1.5rem}.translate-y-8{--transform-translate-y:2rem}.translate-y-10{--transform-translate-y:2.5rem}.translate-y-12{--transform-translate-y:3rem}.translate-y-16{--transform-translate-y:4rem}.translate-y-20{--transform-translate-y:5rem}.translate-y-24{--transform-translate-y:6rem}.translate-y-32{--transform-translate-y:8rem}.translate-y-40{--transform-translate-y:10rem}.translate-y-48{--transform-translate-y:12rem}.translate-y-56{--transform-translate-y:14rem}.translate-y-64{--transform-translate-y:16rem}.translate-y-px{--transform-translate-y:1px}.-translate-y-1{--transform-translate-y:-0.25rem}.-translate-y-2{--transform-translate-y:-0.5rem}.-translate-y-3{--transform-translate-y:-0.75rem}.-translate-y-4{--transform-translate-y:-1rem}.-translate-y-5{--transform-translate-y:-1.25rem}.-translate-y-6{--transform-translate-y:-1.5rem}.-translate-y-8{--transform-translate-y:-2rem}.-translate-y-10{--transform-translate-y:-2.5rem}.-translate-y-12{--transform-translate-y:-3rem}.-translate-y-16{--transform-translate-y:-4rem}.-translate-y-20{--transform-translate-y:-5rem}.-translate-y-24{--transform-translate-y:-6rem}.-translate-y-32{--transform-translate-y:-8rem}.-translate-y-40{--transform-translate-y:-10rem}.-translate-y-48{--transform-translate-y:-12rem}.-translate-y-56{--transform-translate-y:-14rem}.-translate-y-64{--transform-translate-y:-16rem}.-translate-y-px{--transform-translate-y:-1px}.-translate-y-full{--transform-translate-y:-100%}.-translate-y-1\/2{--transform-translate-y:-50%}.translate-y-1\/2{--transform-translate-y:50%}.translate-y-full{--transform-translate-y:100%}.hover\:translate-x-0:hover{--transform-translate-x:0}.hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.hover\:translate-x-4:hover{--transform-translate-x:1rem}.hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.hover\:translate-x-8:hover{--transform-translate-x:2rem}.hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.hover\:translate-x-12:hover{--transform-translate-x:3rem}.hover\:translate-x-16:hover{--transform-translate-x:4rem}.hover\:translate-x-20:hover{--transform-translate-x:5rem}.hover\:translate-x-24:hover{--transform-translate-x:6rem}.hover\:translate-x-32:hover{--transform-translate-x:8rem}.hover\:translate-x-40:hover{--transform-translate-x:10rem}.hover\:translate-x-48:hover{--transform-translate-x:12rem}.hover\:translate-x-56:hover{--transform-translate-x:14rem}.hover\:translate-x-64:hover{--transform-translate-x:16rem}.hover\:translate-x-px:hover{--transform-translate-x:1px}.hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.hover\:-translate-x-px:hover{--transform-translate-x:-1px}.hover\:-translate-x-full:hover{--transform-translate-x:-100%}.hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.hover\:translate-x-full:hover{--transform-translate-x:100%}.hover\:translate-y-0:hover{--transform-translate-y:0}.hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.hover\:translate-y-4:hover{--transform-translate-y:1rem}.hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.hover\:translate-y-8:hover{--transform-translate-y:2rem}.hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.hover\:translate-y-12:hover{--transform-translate-y:3rem}.hover\:translate-y-16:hover{--transform-translate-y:4rem}.hover\:translate-y-20:hover{--transform-translate-y:5rem}.hover\:translate-y-24:hover{--transform-translate-y:6rem}.hover\:translate-y-32:hover{--transform-translate-y:8rem}.hover\:translate-y-40:hover{--transform-translate-y:10rem}.hover\:translate-y-48:hover{--transform-translate-y:12rem}.hover\:translate-y-56:hover{--transform-translate-y:14rem}.hover\:translate-y-64:hover{--transform-translate-y:16rem}.hover\:translate-y-px:hover{--transform-translate-y:1px}.hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.hover\:-translate-y-px:hover{--transform-translate-y:-1px}.hover\:-translate-y-full:hover{--transform-translate-y:-100%}.hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.hover\:translate-y-full:hover{--transform-translate-y:100%}.focus\:translate-x-0:focus{--transform-translate-x:0}.focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.focus\:translate-x-4:focus{--transform-translate-x:1rem}.focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.focus\:translate-x-8:focus{--transform-translate-x:2rem}.focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.focus\:translate-x-12:focus{--transform-translate-x:3rem}.focus\:translate-x-16:focus{--transform-translate-x:4rem}.focus\:translate-x-20:focus{--transform-translate-x:5rem}.focus\:translate-x-24:focus{--transform-translate-x:6rem}.focus\:translate-x-32:focus{--transform-translate-x:8rem}.focus\:translate-x-40:focus{--transform-translate-x:10rem}.focus\:translate-x-48:focus{--transform-translate-x:12rem}.focus\:translate-x-56:focus{--transform-translate-x:14rem}.focus\:translate-x-64:focus{--transform-translate-x:16rem}.focus\:translate-x-px:focus{--transform-translate-x:1px}.focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.focus\:-translate-x-px:focus{--transform-translate-x:-1px}.focus\:-translate-x-full:focus{--transform-translate-x:-100%}.focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.focus\:translate-x-full:focus{--transform-translate-x:100%}.focus\:translate-y-0:focus{--transform-translate-y:0}.focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.focus\:translate-y-4:focus{--transform-translate-y:1rem}.focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.focus\:translate-y-8:focus{--transform-translate-y:2rem}.focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.focus\:translate-y-12:focus{--transform-translate-y:3rem}.focus\:translate-y-16:focus{--transform-translate-y:4rem}.focus\:translate-y-20:focus{--transform-translate-y:5rem}.focus\:translate-y-24:focus{--transform-translate-y:6rem}.focus\:translate-y-32:focus{--transform-translate-y:8rem}.focus\:translate-y-40:focus{--transform-translate-y:10rem}.focus\:translate-y-48:focus{--transform-translate-y:12rem}.focus\:translate-y-56:focus{--transform-translate-y:14rem}.focus\:translate-y-64:focus{--transform-translate-y:16rem}.focus\:translate-y-px:focus{--transform-translate-y:1px}.focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.focus\:-translate-y-px:focus{--transform-translate-y:-1px}.focus\:-translate-y-full:focus{--transform-translate-y:-100%}.focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.focus\:translate-y-full:focus{--transform-translate-y:100%}.skew-x-0{--transform-skew-x:0}.skew-x-1{--transform-skew-x:1deg}.skew-x-2{--transform-skew-x:2deg}.skew-x-3{--transform-skew-x:3deg}.skew-x-6{--transform-skew-x:6deg}.skew-x-12{--transform-skew-x:12deg}.-skew-x-12{--transform-skew-x:-12deg}.-skew-x-6{--transform-skew-x:-6deg}.-skew-x-3{--transform-skew-x:-3deg}.-skew-x-2{--transform-skew-x:-2deg}.-skew-x-1{--transform-skew-x:-1deg}.skew-y-0{--transform-skew-y:0}.skew-y-1{--transform-skew-y:1deg}.skew-y-2{--transform-skew-y:2deg}.skew-y-3{--transform-skew-y:3deg}.skew-y-6{--transform-skew-y:6deg}.skew-y-12{--transform-skew-y:12deg}.-skew-y-12{--transform-skew-y:-12deg}.-skew-y-6{--transform-skew-y:-6deg}.-skew-y-3{--transform-skew-y:-3deg}.-skew-y-2{--transform-skew-y:-2deg}.-skew-y-1{--transform-skew-y:-1deg}.hover\:skew-x-0:hover{--transform-skew-x:0}.hover\:skew-x-1:hover{--transform-skew-x:1deg}.hover\:skew-x-2:hover{--transform-skew-x:2deg}.hover\:skew-x-3:hover{--transform-skew-x:3deg}.hover\:skew-x-6:hover{--transform-skew-x:6deg}.hover\:skew-x-12:hover{--transform-skew-x:12deg}.hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.hover\:skew-y-0:hover{--transform-skew-y:0}.hover\:skew-y-1:hover{--transform-skew-y:1deg}.hover\:skew-y-2:hover{--transform-skew-y:2deg}.hover\:skew-y-3:hover{--transform-skew-y:3deg}.hover\:skew-y-6:hover{--transform-skew-y:6deg}.hover\:skew-y-12:hover{--transform-skew-y:12deg}.hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.focus\:skew-x-0:focus{--transform-skew-x:0}.focus\:skew-x-1:focus{--transform-skew-x:1deg}.focus\:skew-x-2:focus{--transform-skew-x:2deg}.focus\:skew-x-3:focus{--transform-skew-x:3deg}.focus\:skew-x-6:focus{--transform-skew-x:6deg}.focus\:skew-x-12:focus{--transform-skew-x:12deg}.focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.focus\:skew-y-0:focus{--transform-skew-y:0}.focus\:skew-y-1:focus{--transform-skew-y:1deg}.focus\:skew-y-2:focus{--transform-skew-y:2deg}.focus\:skew-y-3:focus{--transform-skew-y:3deg}.focus\:skew-y-6:focus{--transform-skew-y:6deg}.focus\:skew-y-12:focus{--transform-skew-y:12deg}.focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.transition-none{transition-property:none}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-shadow{transition-property:box-shadow}.transition-transform{transition-property:transform}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-1000{transition-duration:1s}.delay-75{transition-delay:75ms}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.delay-1000{transition-delay:1s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-none{animation:none}.animate-spin{animation:spin 1s linear infinite}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}body{font-family:HK Grotesk,sans-serif;max-width:1920px;margin:0 auto;color:#000}.navbar{border-bottom:1px solid #f8f8f8;color:#000}.navbar .site-name{display:none}.dropdown-wrapper .dropdown-title{pointer-events:none}@media (max-width:720px){.dropdown-wrapper .dropdown-title{pointer-events:auto;outline:none}}.dropdown-wrapper span{color:#000}.theme-default-content:not(.custom){max-width:992px!important}img.logo{padding-left:10px}h1,h2,h3,p>span{font-weight:700;color:#000}.custom-block.tip{background-color:#f3f5f7}.bg-circle-right{position:relative}.bg-circle-right:before{content:"";position:absolute;top:10%;left:60%;transform:translate(-20%);width:30rem;height:30rem;background-color:#00d1ff;border-radius:50%;filter:blur(8.4375rem);-webkit-filter:blur(8.4375rem);mix-blend-mode:darken}.bg-circle-left{position:relative}.bg-circle-left:before{content:"";position:absolute;top:20%;left:40%;transform:translate(-80%);width:30rem;height:30rem;background-color:#e077ff;border-radius:50%;filter:blur(8.4375rem);-webkit-filter:blur(8.4375rem);mix-blend-mode:darken}@media (min-width:360px){.xs\:container{width:100%;max-width:360px}@media (min-width:640px){.xs\:container{max-width:640px}}@media (min-width:768px){.xs\:container{max-width:768px}}@media (min-width:1024px){.xs\:container{max-width:1024px}}@media (min-width:1280px){.xs\:container{max-width:1280px}}@media (min-width:1480px){.xs\:container{max-width:1480px}}.xs\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xs\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xs\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xs\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xs\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xs\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xs\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xs\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xs\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xs\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xs\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xs\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xs\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xs\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xs\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xs\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xs\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xs\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xs\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xs\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xs\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xs\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xs\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xs\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xs\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xs\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xs\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xs\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xs\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xs\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xs\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xs\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xs\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xs\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xs\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xs\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xs\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xs\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xs\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xs\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xs\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xs\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xs\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xs\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xs\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xs\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xs\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xs\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xs\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xs\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xs\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xs\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xs\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xs\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xs\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xs\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xs\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xs\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xs\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xs\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xs\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xs\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xs\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xs\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xs\:divide-current>:not(template)~:not(template){border-color:currentColor}.xs\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xs\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xs\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xs\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xs\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xs\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xs\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xs\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xs\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xs\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xs\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xs\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xs\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xs\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xs\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xs\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xs\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xs\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xs\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xs\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xs\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xs\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xs\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xs\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xs\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xs\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xs\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xs\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xs\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xs\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xs\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xs\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xs\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xs\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xs\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xs\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xs\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xs\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xs\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xs\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xs\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xs\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xs\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xs\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xs\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xs\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xs\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xs\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xs\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xs\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xs\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xs\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xs\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xs\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xs\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xs\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xs\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xs\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xs\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xs\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xs\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xs\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xs\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xs\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xs\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xs\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xs\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xs\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xs\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xs\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xs\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xs\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xs\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xs\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xs\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xs\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xs\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xs\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xs\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xs\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xs\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xs\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xs\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xs\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xs\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xs\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xs\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xs\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xs\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xs\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xs\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xs\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xs\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xs\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xs\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xs\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xs\:divide-solid>:not(template)~:not(template){border-style:solid}.xs\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xs\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xs\:divide-double>:not(template)~:not(template){border-style:double}.xs\:divide-none>:not(template)~:not(template){border-style:none}.xs\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xs\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xs\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xs\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xs\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xs\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xs\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xs\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xs\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xs\:appearance-none{-webkit-appearance:none;appearance:none}.xs\:bg-fixed{background-attachment:fixed}.xs\:bg-local{background-attachment:local}.xs\:bg-scroll{background-attachment:scroll}.xs\:bg-clip-border{background-clip:border-box}.xs\:bg-clip-padding{background-clip:padding-box}.xs\:bg-clip-content{background-clip:content-box}.xs\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xs\:bg-transparent{background-color:transparent}.xs\:bg-current{background-color:currentColor}.xs\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:hover\:bg-transparent:hover{background-color:transparent}.xs\:hover\:bg-current:hover{background-color:currentColor}.xs\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:focus\:bg-transparent:focus{background-color:transparent}.xs\:focus\:bg-current:focus{background-color:currentColor}.xs\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:bg-none{background-image:none}.xs\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xs\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xs\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xs\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xs\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:to-transparent{--gradient-to-color:transparent}.xs\:to-current{--gradient-to-color:currentColor}.xs\:to-black{--gradient-to-color:#000}.xs\:to-white{--gradient-to-color:#fff}.xs\:to-gray-100{--gradient-to-color:#f7fafc}.xs\:to-gray-200{--gradient-to-color:#edf2f7}.xs\:to-gray-300{--gradient-to-color:#e2e8f0}.xs\:to-gray-400{--gradient-to-color:#cbd5e0}.xs\:to-gray-500{--gradient-to-color:#a0aec0}.xs\:to-gray-600{--gradient-to-color:#718096}.xs\:to-gray-700{--gradient-to-color:#4a5568}.xs\:to-gray-800{--gradient-to-color:#2d3748}.xs\:to-gray-900{--gradient-to-color:#1a202c}.xs\:to-red-100{--gradient-to-color:#fff5f5}.xs\:to-red-200{--gradient-to-color:#fed7d7}.xs\:to-red-300{--gradient-to-color:#feb2b2}.xs\:to-red-400{--gradient-to-color:#fc8181}.xs\:to-red-500{--gradient-to-color:#f56565}.xs\:to-red-600{--gradient-to-color:#e53e3e}.xs\:to-red-700{--gradient-to-color:#c53030}.xs\:to-red-800{--gradient-to-color:#9b2c2c}.xs\:to-red-900{--gradient-to-color:#742a2a}.xs\:to-orange-100{--gradient-to-color:#fffaf0}.xs\:to-orange-200{--gradient-to-color:#feebc8}.xs\:to-orange-300{--gradient-to-color:#fbd38d}.xs\:to-orange-400{--gradient-to-color:#f6ad55}.xs\:to-orange-500{--gradient-to-color:#ed8936}.xs\:to-orange-600{--gradient-to-color:#dd6b20}.xs\:to-orange-700{--gradient-to-color:#c05621}.xs\:to-orange-800{--gradient-to-color:#9c4221}.xs\:to-orange-900{--gradient-to-color:#7b341e}.xs\:to-yellow-100{--gradient-to-color:ivory}.xs\:to-yellow-200{--gradient-to-color:#fefcbf}.xs\:to-yellow-300{--gradient-to-color:#faf089}.xs\:to-yellow-400{--gradient-to-color:#f6e05e}.xs\:to-yellow-500{--gradient-to-color:#ecc94b}.xs\:to-yellow-600{--gradient-to-color:#d69e2e}.xs\:to-yellow-700{--gradient-to-color:#b7791f}.xs\:to-yellow-800{--gradient-to-color:#975a16}.xs\:to-yellow-900{--gradient-to-color:#744210}.xs\:to-green-100{--gradient-to-color:#f0fff4}.xs\:to-green-200{--gradient-to-color:#c6f6d5}.xs\:to-green-300{--gradient-to-color:#9ae6b4}.xs\:to-green-400{--gradient-to-color:#68d391}.xs\:to-green-500{--gradient-to-color:#48bb78}.xs\:to-green-600{--gradient-to-color:#38a169}.xs\:to-green-700{--gradient-to-color:#2f855a}.xs\:to-green-800{--gradient-to-color:#276749}.xs\:to-green-900{--gradient-to-color:#22543d}.xs\:to-teal-100{--gradient-to-color:#e6fffa}.xs\:to-teal-200{--gradient-to-color:#b2f5ea}.xs\:to-teal-300{--gradient-to-color:#81e6d9}.xs\:to-teal-400{--gradient-to-color:#4fd1c5}.xs\:to-teal-500{--gradient-to-color:#38b2ac}.xs\:to-teal-600{--gradient-to-color:#319795}.xs\:to-teal-700{--gradient-to-color:#2c7a7b}.xs\:to-teal-800{--gradient-to-color:#285e61}.xs\:to-teal-900{--gradient-to-color:#234e52}.xs\:to-blue-100{--gradient-to-color:#ebf8ff}.xs\:to-blue-200{--gradient-to-color:#bee3f8}.xs\:to-blue-300{--gradient-to-color:#90cdf4}.xs\:to-blue-400{--gradient-to-color:#63b3ed}.xs\:to-blue-500{--gradient-to-color:#4299e1}.xs\:to-blue-600{--gradient-to-color:#3182ce}.xs\:to-blue-700{--gradient-to-color:#2b6cb0}.xs\:to-blue-800{--gradient-to-color:#2c5282}.xs\:to-blue-900{--gradient-to-color:#2a4365}.xs\:to-indigo-100{--gradient-to-color:#ebf4ff}.xs\:to-indigo-200{--gradient-to-color:#c3dafe}.xs\:to-indigo-300{--gradient-to-color:#a3bffa}.xs\:to-indigo-400{--gradient-to-color:#7f9cf5}.xs\:to-indigo-500{--gradient-to-color:#667eea}.xs\:to-indigo-600{--gradient-to-color:#5a67d8}.xs\:to-indigo-700{--gradient-to-color:#4c51bf}.xs\:to-indigo-800{--gradient-to-color:#434190}.xs\:to-indigo-900{--gradient-to-color:#3c366b}.xs\:to-purple-100{--gradient-to-color:#faf5ff}.xs\:to-purple-200{--gradient-to-color:#e9d8fd}.xs\:to-purple-300{--gradient-to-color:#d6bcfa}.xs\:to-purple-400{--gradient-to-color:#b794f4}.xs\:to-purple-500{--gradient-to-color:#9f7aea}.xs\:to-purple-600{--gradient-to-color:#805ad5}.xs\:to-purple-700{--gradient-to-color:#6b46c1}.xs\:to-purple-800{--gradient-to-color:#553c9a}.xs\:to-purple-900{--gradient-to-color:#44337a}.xs\:to-pink-100{--gradient-to-color:#fff5f7}.xs\:to-pink-200{--gradient-to-color:#fed7e2}.xs\:to-pink-300{--gradient-to-color:#fbb6ce}.xs\:to-pink-400{--gradient-to-color:#f687b3}.xs\:to-pink-500{--gradient-to-color:#ed64a6}.xs\:to-pink-600{--gradient-to-color:#d53f8c}.xs\:to-pink-700{--gradient-to-color:#b83280}.xs\:to-pink-800{--gradient-to-color:#97266d}.xs\:to-pink-900{--gradient-to-color:#702459}.xs\:to-primary{--gradient-to-color:#00d1ff}.xs\:to-secondary{--gradient-to-color:#e077ff}.xs\:to-greenish-blue{--gradient-to-color:#adffed}.xs\:to-blue-gray{--gradient-to-color:#cfe1e6}.xs\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xs\:hover\:to-current:hover{--gradient-to-color:currentColor}.xs\:hover\:to-black:hover{--gradient-to-color:#000}.xs\:hover\:to-white:hover{--gradient-to-color:#fff}.xs\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xs\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xs\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xs\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xs\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xs\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xs\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xs\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xs\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xs\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xs\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xs\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xs\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xs\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xs\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xs\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xs\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xs\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xs\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xs\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xs\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xs\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xs\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xs\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xs\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xs\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xs\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xs\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xs\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xs\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xs\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xs\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xs\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xs\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xs\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xs\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xs\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xs\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xs\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xs\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xs\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xs\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xs\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xs\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xs\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xs\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xs\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xs\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xs\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xs\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xs\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xs\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xs\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xs\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xs\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xs\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xs\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xs\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xs\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xs\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xs\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xs\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xs\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xs\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xs\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xs\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xs\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xs\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xs\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xs\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xs\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xs\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xs\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xs\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xs\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xs\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xs\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xs\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xs\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xs\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xs\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xs\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xs\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xs\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xs\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xs\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xs\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xs\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xs\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xs\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xs\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xs\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xs\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xs\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xs\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xs\:focus\:to-current:focus{--gradient-to-color:currentColor}.xs\:focus\:to-black:focus{--gradient-to-color:#000}.xs\:focus\:to-white:focus{--gradient-to-color:#fff}.xs\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xs\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xs\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xs\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xs\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xs\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xs\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xs\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xs\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xs\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xs\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xs\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xs\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xs\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xs\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xs\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xs\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xs\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xs\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xs\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xs\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xs\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xs\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xs\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xs\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xs\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xs\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xs\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xs\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xs\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xs\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xs\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xs\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xs\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xs\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xs\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xs\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xs\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xs\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xs\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xs\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xs\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xs\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xs\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xs\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xs\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xs\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xs\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xs\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xs\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xs\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xs\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xs\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xs\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xs\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xs\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xs\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xs\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xs\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xs\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xs\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xs\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xs\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xs\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xs\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xs\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xs\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xs\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xs\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xs\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xs\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xs\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xs\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xs\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xs\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xs\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xs\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xs\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xs\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xs\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xs\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xs\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xs\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xs\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xs\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xs\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xs\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xs\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xs\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xs\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xs\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xs\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xs\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xs\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xs\:bg-opacity-0{--bg-opacity:0}.xs\:bg-opacity-25{--bg-opacity:0.25}.xs\:bg-opacity-50{--bg-opacity:0.5}.xs\:bg-opacity-75{--bg-opacity:0.75}.xs\:bg-opacity-100{--bg-opacity:1}.xs\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xs\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xs\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xs\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xs\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xs\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xs\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xs\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xs\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xs\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xs\:bg-bottom{background-position:bottom}.xs\:bg-center{background-position:50%}.xs\:bg-left{background-position:0}.xs\:bg-left-bottom{background-position:0 100%}.xs\:bg-left-top{background-position:0 0}.xs\:bg-right{background-position:100%}.xs\:bg-right-bottom{background-position:100% 100%}.xs\:bg-right-top{background-position:100% 0}.xs\:bg-top{background-position:top}.xs\:bg-repeat{background-repeat:repeat}.xs\:bg-no-repeat{background-repeat:no-repeat}.xs\:bg-repeat-x{background-repeat:repeat-x}.xs\:bg-repeat-y{background-repeat:repeat-y}.xs\:bg-repeat-round{background-repeat:round}.xs\:bg-repeat-space{background-repeat:space}.xs\:bg-auto{background-size:auto}.xs\:bg-cover{background-size:cover}.xs\:bg-contain{background-size:contain}.xs\:border-collapse{border-collapse:collapse}.xs\:border-separate{border-collapse:separate}.xs\:border-transparent{border-color:transparent}.xs\:border-current{border-color:currentColor}.xs\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:hover\:border-transparent:hover{border-color:transparent}.xs\:hover\:border-current:hover{border-color:currentColor}.xs\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:focus\:border-transparent:focus{border-color:transparent}.xs\:focus\:border-current:focus{border-color:currentColor}.xs\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:border-opacity-0{--border-opacity:0}.xs\:border-opacity-25{--border-opacity:0.25}.xs\:border-opacity-50{--border-opacity:0.5}.xs\:border-opacity-75{--border-opacity:0.75}.xs\:border-opacity-100{--border-opacity:1}.xs\:hover\:border-opacity-0:hover{--border-opacity:0}.xs\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xs\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xs\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xs\:hover\:border-opacity-100:hover{--border-opacity:1}.xs\:focus\:border-opacity-0:focus{--border-opacity:0}.xs\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xs\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xs\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xs\:focus\:border-opacity-100:focus{--border-opacity:1}.xs\:rounded-none{border-radius:0}.xs\:rounded-sm{border-radius:.125rem}.xs\:rounded{border-radius:.25rem}.xs\:rounded-md{border-radius:.375rem}.xs\:rounded-lg{border-radius:.5rem}.xs\:rounded-xl{border-radius:.75rem}.xs\:rounded-2xl{border-radius:1rem}.xs\:rounded-3xl{border-radius:1.5rem}.xs\:rounded-full{border-radius:9999px}.xs\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xs\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xs\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xs\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xs\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xs\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xs\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xs\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xs\:rounded-t{border-top-left-radius:.25rem}.xs\:rounded-r,.xs\:rounded-t{border-top-right-radius:.25rem}.xs\:rounded-b,.xs\:rounded-r{border-bottom-right-radius:.25rem}.xs\:rounded-b,.xs\:rounded-l{border-bottom-left-radius:.25rem}.xs\:rounded-l{border-top-left-radius:.25rem}.xs\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xs\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xs\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xs\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xs\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xs\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xs\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xs\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xs\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xs\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xs\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xs\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xs\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xs\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xs\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xs\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xs\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xs\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xs\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xs\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xs\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xs\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xs\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xs\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xs\:rounded-tl-none{border-top-left-radius:0}.xs\:rounded-tr-none{border-top-right-radius:0}.xs\:rounded-br-none{border-bottom-right-radius:0}.xs\:rounded-bl-none{border-bottom-left-radius:0}.xs\:rounded-tl-sm{border-top-left-radius:.125rem}.xs\:rounded-tr-sm{border-top-right-radius:.125rem}.xs\:rounded-br-sm{border-bottom-right-radius:.125rem}.xs\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xs\:rounded-tl{border-top-left-radius:.25rem}.xs\:rounded-tr{border-top-right-radius:.25rem}.xs\:rounded-br{border-bottom-right-radius:.25rem}.xs\:rounded-bl{border-bottom-left-radius:.25rem}.xs\:rounded-tl-md{border-top-left-radius:.375rem}.xs\:rounded-tr-md{border-top-right-radius:.375rem}.xs\:rounded-br-md{border-bottom-right-radius:.375rem}.xs\:rounded-bl-md{border-bottom-left-radius:.375rem}.xs\:rounded-tl-lg{border-top-left-radius:.5rem}.xs\:rounded-tr-lg{border-top-right-radius:.5rem}.xs\:rounded-br-lg{border-bottom-right-radius:.5rem}.xs\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xs\:rounded-tl-xl{border-top-left-radius:.75rem}.xs\:rounded-tr-xl{border-top-right-radius:.75rem}.xs\:rounded-br-xl{border-bottom-right-radius:.75rem}.xs\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xs\:rounded-tl-2xl{border-top-left-radius:1rem}.xs\:rounded-tr-2xl{border-top-right-radius:1rem}.xs\:rounded-br-2xl{border-bottom-right-radius:1rem}.xs\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xs\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xs\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xs\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xs\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xs\:rounded-tl-full{border-top-left-radius:9999px}.xs\:rounded-tr-full{border-top-right-radius:9999px}.xs\:rounded-br-full{border-bottom-right-radius:9999px}.xs\:rounded-bl-full{border-bottom-left-radius:9999px}.xs\:border-solid{border-style:solid}.xs\:border-dashed{border-style:dashed}.xs\:border-dotted{border-style:dotted}.xs\:border-double{border-style:double}.xs\:border-none{border-style:none}.xs\:border-0{border-width:0}.xs\:border-2{border-width:2px}.xs\:border-4{border-width:4px}.xs\:border-8{border-width:8px}.xs\:border{border-width:1px}.xs\:border-t-0{border-top-width:0}.xs\:border-r-0{border-right-width:0}.xs\:border-b-0{border-bottom-width:0}.xs\:border-l-0{border-left-width:0}.xs\:border-t-2{border-top-width:2px}.xs\:border-r-2{border-right-width:2px}.xs\:border-b-2{border-bottom-width:2px}.xs\:border-l-2{border-left-width:2px}.xs\:border-t-4{border-top-width:4px}.xs\:border-r-4{border-right-width:4px}.xs\:border-b-4{border-bottom-width:4px}.xs\:border-l-4{border-left-width:4px}.xs\:border-t-8{border-top-width:8px}.xs\:border-r-8{border-right-width:8px}.xs\:border-b-8{border-bottom-width:8px}.xs\:border-l-8{border-left-width:8px}.xs\:border-t{border-top-width:1px}.xs\:border-r{border-right-width:1px}.xs\:border-b{border-bottom-width:1px}.xs\:border-l{border-left-width:1px}.xs\:box-border{box-sizing:border-box}.xs\:box-content{box-sizing:content-box}.xs\:cursor-auto{cursor:auto}.xs\:cursor-default{cursor:default}.xs\:cursor-pointer{cursor:pointer}.xs\:cursor-wait{cursor:wait}.xs\:cursor-text{cursor:text}.xs\:cursor-move{cursor:move}.xs\:cursor-not-allowed{cursor:not-allowed}.xs\:block{display:block}.xs\:inline-block{display:inline-block}.xs\:inline{display:inline}.xs\:flex{display:flex}.xs\:inline-flex{display:inline-flex}.xs\:table{display:table}.xs\:table-caption{display:table-caption}.xs\:table-cell{display:table-cell}.xs\:table-column{display:table-column}.xs\:table-column-group{display:table-column-group}.xs\:table-footer-group{display:table-footer-group}.xs\:table-header-group{display:table-header-group}.xs\:table-row-group{display:table-row-group}.xs\:table-row{display:table-row}.xs\:flow-root{display:flow-root}.xs\:grid{display:grid}.xs\:inline-grid{display:inline-grid}.xs\:contents{display:contents}.xs\:hidden{display:none}.xs\:flex-row{flex-direction:row}.xs\:flex-row-reverse{flex-direction:row-reverse}.xs\:flex-col{flex-direction:column}.xs\:flex-col-reverse{flex-direction:column-reverse}.xs\:flex-wrap{flex-wrap:wrap}.xs\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xs\:flex-no-wrap{flex-wrap:nowrap}.xs\:place-items-auto{place-items:auto}.xs\:place-items-start{place-items:start}.xs\:place-items-end{place-items:end}.xs\:place-items-center{place-items:center}.xs\:place-items-stretch{place-items:stretch}.xs\:place-content-center{place-content:center}.xs\:place-content-start{place-content:start}.xs\:place-content-end{place-content:end}.xs\:place-content-between{place-content:space-between}.xs\:place-content-around{place-content:space-around}.xs\:place-content-evenly{place-content:space-evenly}.xs\:place-content-stretch{place-content:stretch}.xs\:place-self-auto{place-self:auto}.xs\:place-self-start{place-self:start}.xs\:place-self-end{place-self:end}.xs\:place-self-center{place-self:center}.xs\:place-self-stretch{place-self:stretch}.xs\:items-start{align-items:flex-start}.xs\:items-end{align-items:flex-end}.xs\:items-center{align-items:center}.xs\:items-baseline{align-items:baseline}.xs\:items-stretch{align-items:stretch}.xs\:content-center{align-content:center}.xs\:content-start{align-content:flex-start}.xs\:content-end{align-content:flex-end}.xs\:content-between{align-content:space-between}.xs\:content-around{align-content:space-around}.xs\:content-evenly{align-content:space-evenly}.xs\:self-auto{align-self:auto}.xs\:self-start{align-self:flex-start}.xs\:self-end{align-self:flex-end}.xs\:self-center{align-self:center}.xs\:self-stretch{align-self:stretch}.xs\:justify-items-auto{justify-items:auto}.xs\:justify-items-start{justify-items:start}.xs\:justify-items-end{justify-items:end}.xs\:justify-items-center{justify-items:center}.xs\:justify-items-stretch{justify-items:stretch}.xs\:justify-start{justify-content:flex-start}.xs\:justify-end{justify-content:flex-end}.xs\:justify-center{justify-content:center}.xs\:justify-between{justify-content:space-between}.xs\:justify-around{justify-content:space-around}.xs\:justify-evenly{justify-content:space-evenly}.xs\:justify-self-auto{justify-self:auto}.xs\:justify-self-start{justify-self:start}.xs\:justify-self-end{justify-self:end}.xs\:justify-self-center{justify-self:center}.xs\:justify-self-stretch{justify-self:stretch}.xs\:flex-1{flex:1 1 0%}.xs\:flex-auto{flex:1 1 auto}.xs\:flex-initial{flex:0 1 auto}.xs\:flex-none{flex:none}.xs\:flex-grow-0{flex-grow:0}.xs\:flex-grow{flex-grow:1}.xs\:flex-shrink-0{flex-shrink:0}.xs\:flex-shrink{flex-shrink:1}.xs\:order-1{order:1}.xs\:order-2{order:2}.xs\:order-3{order:3}.xs\:order-4{order:4}.xs\:order-5{order:5}.xs\:order-6{order:6}.xs\:order-7{order:7}.xs\:order-8{order:8}.xs\:order-9{order:9}.xs\:order-10{order:10}.xs\:order-11{order:11}.xs\:order-12{order:12}.xs\:order-first{order:-9999}.xs\:order-last{order:9999}.xs\:order-none{order:0}.xs\:float-right{float:right}.xs\:float-left{float:left}.xs\:float-none{float:none}.xs\:clearfix:after{content:"";display:table;clear:both}.xs\:clear-left{clear:left}.xs\:clear-right{clear:right}.xs\:clear-both{clear:both}.xs\:clear-none{clear:none}.xs\:font-sans{font-family: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}.xs\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xs\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xs\:font-hairline{font-weight:100}.xs\:font-thin{font-weight:200}.xs\:font-light{font-weight:300}.xs\:font-normal{font-weight:400}.xs\:font-medium{font-weight:500}.xs\:font-semibold{font-weight:600}.xs\:font-bold{font-weight:700}.xs\:font-extrabold{font-weight:800}.xs\:font-black{font-weight:900}.xs\:hover\:font-hairline:hover{font-weight:100}.xs\:hover\:font-thin:hover{font-weight:200}.xs\:hover\:font-light:hover{font-weight:300}.xs\:hover\:font-normal:hover{font-weight:400}.xs\:hover\:font-medium:hover{font-weight:500}.xs\:hover\:font-semibold:hover{font-weight:600}.xs\:hover\:font-bold:hover{font-weight:700}.xs\:hover\:font-extrabold:hover{font-weight:800}.xs\:hover\:font-black:hover{font-weight:900}.xs\:focus\:font-hairline:focus{font-weight:100}.xs\:focus\:font-thin:focus{font-weight:200}.xs\:focus\:font-light:focus{font-weight:300}.xs\:focus\:font-normal:focus{font-weight:400}.xs\:focus\:font-medium:focus{font-weight:500}.xs\:focus\:font-semibold:focus{font-weight:600}.xs\:focus\:font-bold:focus{font-weight:700}.xs\:focus\:font-extrabold:focus{font-weight:800}.xs\:focus\:font-black:focus{font-weight:900}.xs\:h-0{height:0}.xs\:h-1{height:.25rem}.xs\:h-2{height:.5rem}.xs\:h-3{height:.75rem}.xs\:h-4{height:1rem}.xs\:h-5{height:1.25rem}.xs\:h-6{height:1.5rem}.xs\:h-8{height:2rem}.xs\:h-10{height:2.5rem}.xs\:h-12{height:3rem}.xs\:h-16{height:4rem}.xs\:h-20{height:5rem}.xs\:h-24{height:6rem}.xs\:h-32{height:8rem}.xs\:h-40{height:10rem}.xs\:h-48{height:12rem}.xs\:h-56{height:14rem}.xs\:h-64{height:16rem}.xs\:h-auto{height:auto}.xs\:h-px{height:1px}.xs\:h-full{height:100%}.xs\:h-screen{height:100vh}.xs\:text-xs{font-size:.75rem}.xs\:text-sm{font-size:.875rem}.xs\:text-base{font-size:1rem}.xs\:text-lg{font-size:1.125rem}.xs\:text-xl{font-size:1.25rem}.xs\:text-2xl{font-size:1.5rem}.xs\:text-3xl{font-size:1.875rem}.xs\:text-4xl{font-size:2.25rem}.xs\:text-5xl{font-size:3rem}.xs\:text-6xl{font-size:4rem}.xs\:leading-3{line-height:.75rem}.xs\:leading-4{line-height:1rem}.xs\:leading-5{line-height:1.25rem}.xs\:leading-6{line-height:1.5rem}.xs\:leading-7{line-height:1.75rem}.xs\:leading-8{line-height:2rem}.xs\:leading-9{line-height:2.25rem}.xs\:leading-10{line-height:2.5rem}.xs\:leading-none{line-height:1}.xs\:leading-tight{line-height:1.25}.xs\:leading-snug{line-height:1.375}.xs\:leading-normal{line-height:1.5}.xs\:leading-relaxed{line-height:1.625}.xs\:leading-loose{line-height:2}.xs\:list-inside{list-style-position:inside}.xs\:list-outside{list-style-position:outside}.xs\:list-none{list-style-type:none}.xs\:list-disc{list-style-type:disc}.xs\:list-decimal{list-style-type:decimal}.xs\:m-0{margin:0}.xs\:m-1{margin:.25rem}.xs\:m-2{margin:.5rem}.xs\:m-3{margin:.75rem}.xs\:m-4{margin:1rem}.xs\:m-5{margin:1.25rem}.xs\:m-6{margin:1.5rem}.xs\:m-8{margin:2rem}.xs\:m-10{margin:2.5rem}.xs\:m-12{margin:3rem}.xs\:m-16{margin:4rem}.xs\:m-20{margin:5rem}.xs\:m-24{margin:6rem}.xs\:m-32{margin:8rem}.xs\:m-40{margin:10rem}.xs\:m-48{margin:12rem}.xs\:m-56{margin:14rem}.xs\:m-64{margin:16rem}.xs\:m-auto{margin:auto}.xs\:m-px{margin:1px}.xs\:-m-1{margin:-.25rem}.xs\:-m-2{margin:-.5rem}.xs\:-m-3{margin:-.75rem}.xs\:-m-4{margin:-1rem}.xs\:-m-5{margin:-1.25rem}.xs\:-m-6{margin:-1.5rem}.xs\:-m-8{margin:-2rem}.xs\:-m-10{margin:-2.5rem}.xs\:-m-12{margin:-3rem}.xs\:-m-16{margin:-4rem}.xs\:-m-20{margin:-5rem}.xs\:-m-24{margin:-6rem}.xs\:-m-32{margin:-8rem}.xs\:-m-40{margin:-10rem}.xs\:-m-48{margin:-12rem}.xs\:-m-56{margin:-14rem}.xs\:-m-64{margin:-16rem}.xs\:-m-px{margin:-1px}.xs\:my-0{margin-top:0;margin-bottom:0}.xs\:mx-0{margin-left:0;margin-right:0}.xs\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xs\:mx-1{margin-left:.25rem;margin-right:.25rem}.xs\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xs\:mx-2{margin-left:.5rem;margin-right:.5rem}.xs\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xs\:mx-3{margin-left:.75rem;margin-right:.75rem}.xs\:my-4{margin-top:1rem;margin-bottom:1rem}.xs\:mx-4{margin-left:1rem;margin-right:1rem}.xs\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xs\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xs\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xs\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xs\:my-8{margin-top:2rem;margin-bottom:2rem}.xs\:mx-8{margin-left:2rem;margin-right:2rem}.xs\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xs\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xs\:my-12{margin-top:3rem;margin-bottom:3rem}.xs\:mx-12{margin-left:3rem;margin-right:3rem}.xs\:my-16{margin-top:4rem;margin-bottom:4rem}.xs\:mx-16{margin-left:4rem;margin-right:4rem}.xs\:my-20{margin-top:5rem;margin-bottom:5rem}.xs\:mx-20{margin-left:5rem;margin-right:5rem}.xs\:my-24{margin-top:6rem;margin-bottom:6rem}.xs\:mx-24{margin-left:6rem;margin-right:6rem}.xs\:my-32{margin-top:8rem;margin-bottom:8rem}.xs\:mx-32{margin-left:8rem;margin-right:8rem}.xs\:my-40{margin-top:10rem;margin-bottom:10rem}.xs\:mx-40{margin-left:10rem;margin-right:10rem}.xs\:my-48{margin-top:12rem;margin-bottom:12rem}.xs\:mx-48{margin-left:12rem;margin-right:12rem}.xs\:my-56{margin-top:14rem;margin-bottom:14rem}.xs\:mx-56{margin-left:14rem;margin-right:14rem}.xs\:my-64{margin-top:16rem;margin-bottom:16rem}.xs\:mx-64{margin-left:16rem;margin-right:16rem}.xs\:my-auto{margin-top:auto;margin-bottom:auto}.xs\:mx-auto{margin-left:auto;margin-right:auto}.xs\:my-px{margin-top:1px;margin-bottom:1px}.xs\:mx-px{margin-left:1px;margin-right:1px}.xs\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xs\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xs\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xs\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xs\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xs\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xs\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xs\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xs\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xs\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xs\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xs\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xs\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xs\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xs\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xs\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xs\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xs\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xs\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xs\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xs\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xs\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xs\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xs\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xs\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xs\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xs\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xs\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xs\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xs\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xs\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xs\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xs\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xs\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xs\:-my-px{margin-top:-1px;margin-bottom:-1px}.xs\:-mx-px{margin-left:-1px;margin-right:-1px}.xs\:mt-0{margin-top:0}.xs\:mr-0{margin-right:0}.xs\:mb-0{margin-bottom:0}.xs\:ml-0{margin-left:0}.xs\:mt-1{margin-top:.25rem}.xs\:mr-1{margin-right:.25rem}.xs\:mb-1{margin-bottom:.25rem}.xs\:ml-1{margin-left:.25rem}.xs\:mt-2{margin-top:.5rem}.xs\:mr-2{margin-right:.5rem}.xs\:mb-2{margin-bottom:.5rem}.xs\:ml-2{margin-left:.5rem}.xs\:mt-3{margin-top:.75rem}.xs\:mr-3{margin-right:.75rem}.xs\:mb-3{margin-bottom:.75rem}.xs\:ml-3{margin-left:.75rem}.xs\:mt-4{margin-top:1rem}.xs\:mr-4{margin-right:1rem}.xs\:mb-4{margin-bottom:1rem}.xs\:ml-4{margin-left:1rem}.xs\:mt-5{margin-top:1.25rem}.xs\:mr-5{margin-right:1.25rem}.xs\:mb-5{margin-bottom:1.25rem}.xs\:ml-5{margin-left:1.25rem}.xs\:mt-6{margin-top:1.5rem}.xs\:mr-6{margin-right:1.5rem}.xs\:mb-6{margin-bottom:1.5rem}.xs\:ml-6{margin-left:1.5rem}.xs\:mt-8{margin-top:2rem}.xs\:mr-8{margin-right:2rem}.xs\:mb-8{margin-bottom:2rem}.xs\:ml-8{margin-left:2rem}.xs\:mt-10{margin-top:2.5rem}.xs\:mr-10{margin-right:2.5rem}.xs\:mb-10{margin-bottom:2.5rem}.xs\:ml-10{margin-left:2.5rem}.xs\:mt-12{margin-top:3rem}.xs\:mr-12{margin-right:3rem}.xs\:mb-12{margin-bottom:3rem}.xs\:ml-12{margin-left:3rem}.xs\:mt-16{margin-top:4rem}.xs\:mr-16{margin-right:4rem}.xs\:mb-16{margin-bottom:4rem}.xs\:ml-16{margin-left:4rem}.xs\:mt-20{margin-top:5rem}.xs\:mr-20{margin-right:5rem}.xs\:mb-20{margin-bottom:5rem}.xs\:ml-20{margin-left:5rem}.xs\:mt-24{margin-top:6rem}.xs\:mr-24{margin-right:6rem}.xs\:mb-24{margin-bottom:6rem}.xs\:ml-24{margin-left:6rem}.xs\:mt-32{margin-top:8rem}.xs\:mr-32{margin-right:8rem}.xs\:mb-32{margin-bottom:8rem}.xs\:ml-32{margin-left:8rem}.xs\:mt-40{margin-top:10rem}.xs\:mr-40{margin-right:10rem}.xs\:mb-40{margin-bottom:10rem}.xs\:ml-40{margin-left:10rem}.xs\:mt-48{margin-top:12rem}.xs\:mr-48{margin-right:12rem}.xs\:mb-48{margin-bottom:12rem}.xs\:ml-48{margin-left:12rem}.xs\:mt-56{margin-top:14rem}.xs\:mr-56{margin-right:14rem}.xs\:mb-56{margin-bottom:14rem}.xs\:ml-56{margin-left:14rem}.xs\:mt-64{margin-top:16rem}.xs\:mr-64{margin-right:16rem}.xs\:mb-64{margin-bottom:16rem}.xs\:ml-64{margin-left:16rem}.xs\:mt-auto{margin-top:auto}.xs\:mr-auto{margin-right:auto}.xs\:mb-auto{margin-bottom:auto}.xs\:ml-auto{margin-left:auto}.xs\:mt-px{margin-top:1px}.xs\:mr-px{margin-right:1px}.xs\:mb-px{margin-bottom:1px}.xs\:ml-px{margin-left:1px}.xs\:-mt-1{margin-top:-.25rem}.xs\:-mr-1{margin-right:-.25rem}.xs\:-mb-1{margin-bottom:-.25rem}.xs\:-ml-1{margin-left:-.25rem}.xs\:-mt-2{margin-top:-.5rem}.xs\:-mr-2{margin-right:-.5rem}.xs\:-mb-2{margin-bottom:-.5rem}.xs\:-ml-2{margin-left:-.5rem}.xs\:-mt-3{margin-top:-.75rem}.xs\:-mr-3{margin-right:-.75rem}.xs\:-mb-3{margin-bottom:-.75rem}.xs\:-ml-3{margin-left:-.75rem}.xs\:-mt-4{margin-top:-1rem}.xs\:-mr-4{margin-right:-1rem}.xs\:-mb-4{margin-bottom:-1rem}.xs\:-ml-4{margin-left:-1rem}.xs\:-mt-5{margin-top:-1.25rem}.xs\:-mr-5{margin-right:-1.25rem}.xs\:-mb-5{margin-bottom:-1.25rem}.xs\:-ml-5{margin-left:-1.25rem}.xs\:-mt-6{margin-top:-1.5rem}.xs\:-mr-6{margin-right:-1.5rem}.xs\:-mb-6{margin-bottom:-1.5rem}.xs\:-ml-6{margin-left:-1.5rem}.xs\:-mt-8{margin-top:-2rem}.xs\:-mr-8{margin-right:-2rem}.xs\:-mb-8{margin-bottom:-2rem}.xs\:-ml-8{margin-left:-2rem}.xs\:-mt-10{margin-top:-2.5rem}.xs\:-mr-10{margin-right:-2.5rem}.xs\:-mb-10{margin-bottom:-2.5rem}.xs\:-ml-10{margin-left:-2.5rem}.xs\:-mt-12{margin-top:-3rem}.xs\:-mr-12{margin-right:-3rem}.xs\:-mb-12{margin-bottom:-3rem}.xs\:-ml-12{margin-left:-3rem}.xs\:-mt-16{margin-top:-4rem}.xs\:-mr-16{margin-right:-4rem}.xs\:-mb-16{margin-bottom:-4rem}.xs\:-ml-16{margin-left:-4rem}.xs\:-mt-20{margin-top:-5rem}.xs\:-mr-20{margin-right:-5rem}.xs\:-mb-20{margin-bottom:-5rem}.xs\:-ml-20{margin-left:-5rem}.xs\:-mt-24{margin-top:-6rem}.xs\:-mr-24{margin-right:-6rem}.xs\:-mb-24{margin-bottom:-6rem}.xs\:-ml-24{margin-left:-6rem}.xs\:-mt-32{margin-top:-8rem}.xs\:-mr-32{margin-right:-8rem}.xs\:-mb-32{margin-bottom:-8rem}.xs\:-ml-32{margin-left:-8rem}.xs\:-mt-40{margin-top:-10rem}.xs\:-mr-40{margin-right:-10rem}.xs\:-mb-40{margin-bottom:-10rem}.xs\:-ml-40{margin-left:-10rem}.xs\:-mt-48{margin-top:-12rem}.xs\:-mr-48{margin-right:-12rem}.xs\:-mb-48{margin-bottom:-12rem}.xs\:-ml-48{margin-left:-12rem}.xs\:-mt-56{margin-top:-14rem}.xs\:-mr-56{margin-right:-14rem}.xs\:-mb-56{margin-bottom:-14rem}.xs\:-ml-56{margin-left:-14rem}.xs\:-mt-64{margin-top:-16rem}.xs\:-mr-64{margin-right:-16rem}.xs\:-mb-64{margin-bottom:-16rem}.xs\:-ml-64{margin-left:-16rem}.xs\:-mt-px{margin-top:-1px}.xs\:-mr-px{margin-right:-1px}.xs\:-mb-px{margin-bottom:-1px}.xs\:-ml-px{margin-left:-1px}.xs\:max-h-full{max-height:100%}.xs\:max-h-screen{max-height:100vh}.xs\:max-w-none{max-width:none}.xs\:max-w-xs{max-width:20rem}.xs\:max-w-sm{max-width:24rem}.xs\:max-w-md{max-width:28rem}.xs\:max-w-lg{max-width:32rem}.xs\:max-w-xl{max-width:36rem}.xs\:max-w-2xl{max-width:42rem}.xs\:max-w-3xl{max-width:48rem}.xs\:max-w-4xl{max-width:56rem}.xs\:max-w-5xl{max-width:64rem}.xs\:max-w-6xl{max-width:72rem}.xs\:max-w-full{max-width:100%}.xs\:max-w-screen-xs{max-width:360px}.xs\:max-w-screen-sm{max-width:640px}.xs\:max-w-screen-md{max-width:768px}.xs\:max-w-screen-lg{max-width:1024px}.xs\:max-w-screen-xl{max-width:1280px}.xs\:max-w-screen-xxl{max-width:1480px}.xs\:min-h-0{min-height:0}.xs\:min-h-full{min-height:100%}.xs\:min-h-screen{min-height:100vh}.xs\:min-w-0{min-width:0}.xs\:min-w-full{min-width:100%}.xs\:object-contain{-o-object-fit:contain;object-fit:contain}.xs\:object-cover{-o-object-fit:cover;object-fit:cover}.xs\:object-fill{-o-object-fit:fill;object-fit:fill}.xs\:object-none{-o-object-fit:none;object-fit:none}.xs\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xs\:object-bottom{-o-object-position:bottom;object-position:bottom}.xs\:object-center{-o-object-position:center;object-position:center}.xs\:object-left{-o-object-position:left;object-position:left}.xs\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xs\:object-left-top{-o-object-position:left top;object-position:left top}.xs\:object-right{-o-object-position:right;object-position:right}.xs\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xs\:object-right-top{-o-object-position:right top;object-position:right top}.xs\:object-top{-o-object-position:top;object-position:top}.xs\:opacity-0{opacity:0}.xs\:opacity-25{opacity:.25}.xs\:opacity-50{opacity:.5}.xs\:opacity-75{opacity:.75}.xs\:opacity-100{opacity:1}.xs\:hover\:opacity-0:hover{opacity:0}.xs\:hover\:opacity-25:hover{opacity:.25}.xs\:hover\:opacity-50:hover{opacity:.5}.xs\:hover\:opacity-75:hover{opacity:.75}.xs\:hover\:opacity-100:hover{opacity:1}.xs\:focus\:opacity-0:focus{opacity:0}.xs\:focus\:opacity-25:focus{opacity:.25}.xs\:focus\:opacity-50:focus{opacity:.5}.xs\:focus\:opacity-75:focus{opacity:.75}.xs\:focus\:opacity-100:focus{opacity:1}.xs\:outline-none{outline:2px solid transparent;outline-offset:2px}.xs\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xs\:outline-black{outline:2px dotted #000;outline-offset:2px}.xs\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xs\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xs\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xs\:overflow-auto{overflow:auto}.xs\:overflow-hidden{overflow:hidden}.xs\:overflow-visible{overflow:visible}.xs\:overflow-scroll{overflow:scroll}.xs\:overflow-x-auto{overflow-x:auto}.xs\:overflow-y-auto{overflow-y:auto}.xs\:overflow-x-hidden{overflow-x:hidden}.xs\:overflow-y-hidden{overflow-y:hidden}.xs\:overflow-x-visible{overflow-x:visible}.xs\:overflow-y-visible{overflow-y:visible}.xs\:overflow-x-scroll{overflow-x:scroll}.xs\:overflow-y-scroll{overflow-y:scroll}.xs\:scrolling-touch{-webkit-overflow-scrolling:touch}.xs\:scrolling-auto{-webkit-overflow-scrolling:auto}.xs\:overscroll-auto{overscroll-behavior:auto}.xs\:overscroll-contain{overscroll-behavior:contain}.xs\:overscroll-none{overscroll-behavior:none}.xs\:overscroll-y-auto{overscroll-behavior-y:auto}.xs\:overscroll-y-contain{overscroll-behavior-y:contain}.xs\:overscroll-y-none{overscroll-behavior-y:none}.xs\:overscroll-x-auto{overscroll-behavior-x:auto}.xs\:overscroll-x-contain{overscroll-behavior-x:contain}.xs\:overscroll-x-none{overscroll-behavior-x:none}.xs\:p-0{padding:0}.xs\:p-1{padding:.25rem}.xs\:p-2{padding:.5rem}.xs\:p-3{padding:.75rem}.xs\:p-4{padding:1rem}.xs\:p-5{padding:1.25rem}.xs\:p-6{padding:1.5rem}.xs\:p-8{padding:2rem}.xs\:p-10{padding:2.5rem}.xs\:p-12{padding:3rem}.xs\:p-16{padding:4rem}.xs\:p-20{padding:5rem}.xs\:p-24{padding:6rem}.xs\:p-32{padding:8rem}.xs\:p-40{padding:10rem}.xs\:p-48{padding:12rem}.xs\:p-56{padding:14rem}.xs\:p-64{padding:16rem}.xs\:p-px{padding:1px}.xs\:py-0{padding-top:0;padding-bottom:0}.xs\:px-0{padding-left:0;padding-right:0}.xs\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xs\:px-1{padding-left:.25rem;padding-right:.25rem}.xs\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xs\:px-2{padding-left:.5rem;padding-right:.5rem}.xs\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xs\:px-3{padding-left:.75rem;padding-right:.75rem}.xs\:py-4{padding-top:1rem;padding-bottom:1rem}.xs\:px-4{padding-left:1rem;padding-right:1rem}.xs\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xs\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xs\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xs\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xs\:py-8{padding-top:2rem;padding-bottom:2rem}.xs\:px-8{padding-left:2rem;padding-right:2rem}.xs\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xs\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xs\:py-12{padding-top:3rem;padding-bottom:3rem}.xs\:px-12{padding-left:3rem;padding-right:3rem}.xs\:py-16{padding-top:4rem;padding-bottom:4rem}.xs\:px-16{padding-left:4rem;padding-right:4rem}.xs\:py-20{padding-top:5rem;padding-bottom:5rem}.xs\:px-20{padding-left:5rem;padding-right:5rem}.xs\:py-24{padding-top:6rem;padding-bottom:6rem}.xs\:px-24{padding-left:6rem;padding-right:6rem}.xs\:py-32{padding-top:8rem;padding-bottom:8rem}.xs\:px-32{padding-left:8rem;padding-right:8rem}.xs\:py-40{padding-top:10rem;padding-bottom:10rem}.xs\:px-40{padding-left:10rem;padding-right:10rem}.xs\:py-48{padding-top:12rem;padding-bottom:12rem}.xs\:px-48{padding-left:12rem;padding-right:12rem}.xs\:py-56{padding-top:14rem;padding-bottom:14rem}.xs\:px-56{padding-left:14rem;padding-right:14rem}.xs\:py-64{padding-top:16rem;padding-bottom:16rem}.xs\:px-64{padding-left:16rem;padding-right:16rem}.xs\:py-px{padding-top:1px;padding-bottom:1px}.xs\:px-px{padding-left:1px;padding-right:1px}.xs\:pt-0{padding-top:0}.xs\:pr-0{padding-right:0}.xs\:pb-0{padding-bottom:0}.xs\:pl-0{padding-left:0}.xs\:pt-1{padding-top:.25rem}.xs\:pr-1{padding-right:.25rem}.xs\:pb-1{padding-bottom:.25rem}.xs\:pl-1{padding-left:.25rem}.xs\:pt-2{padding-top:.5rem}.xs\:pr-2{padding-right:.5rem}.xs\:pb-2{padding-bottom:.5rem}.xs\:pl-2{padding-left:.5rem}.xs\:pt-3{padding-top:.75rem}.xs\:pr-3{padding-right:.75rem}.xs\:pb-3{padding-bottom:.75rem}.xs\:pl-3{padding-left:.75rem}.xs\:pt-4{padding-top:1rem}.xs\:pr-4{padding-right:1rem}.xs\:pb-4{padding-bottom:1rem}.xs\:pl-4{padding-left:1rem}.xs\:pt-5{padding-top:1.25rem}.xs\:pr-5{padding-right:1.25rem}.xs\:pb-5{padding-bottom:1.25rem}.xs\:pl-5{padding-left:1.25rem}.xs\:pt-6{padding-top:1.5rem}.xs\:pr-6{padding-right:1.5rem}.xs\:pb-6{padding-bottom:1.5rem}.xs\:pl-6{padding-left:1.5rem}.xs\:pt-8{padding-top:2rem}.xs\:pr-8{padding-right:2rem}.xs\:pb-8{padding-bottom:2rem}.xs\:pl-8{padding-left:2rem}.xs\:pt-10{padding-top:2.5rem}.xs\:pr-10{padding-right:2.5rem}.xs\:pb-10{padding-bottom:2.5rem}.xs\:pl-10{padding-left:2.5rem}.xs\:pt-12{padding-top:3rem}.xs\:pr-12{padding-right:3rem}.xs\:pb-12{padding-bottom:3rem}.xs\:pl-12{padding-left:3rem}.xs\:pt-16{padding-top:4rem}.xs\:pr-16{padding-right:4rem}.xs\:pb-16{padding-bottom:4rem}.xs\:pl-16{padding-left:4rem}.xs\:pt-20{padding-top:5rem}.xs\:pr-20{padding-right:5rem}.xs\:pb-20{padding-bottom:5rem}.xs\:pl-20{padding-left:5rem}.xs\:pt-24{padding-top:6rem}.xs\:pr-24{padding-right:6rem}.xs\:pb-24{padding-bottom:6rem}.xs\:pl-24{padding-left:6rem}.xs\:pt-32{padding-top:8rem}.xs\:pr-32{padding-right:8rem}.xs\:pb-32{padding-bottom:8rem}.xs\:pl-32{padding-left:8rem}.xs\:pt-40{padding-top:10rem}.xs\:pr-40{padding-right:10rem}.xs\:pb-40{padding-bottom:10rem}.xs\:pl-40{padding-left:10rem}.xs\:pt-48{padding-top:12rem}.xs\:pr-48{padding-right:12rem}.xs\:pb-48{padding-bottom:12rem}.xs\:pl-48{padding-left:12rem}.xs\:pt-56{padding-top:14rem}.xs\:pr-56{padding-right:14rem}.xs\:pb-56{padding-bottom:14rem}.xs\:pl-56{padding-left:14rem}.xs\:pt-64{padding-top:16rem}.xs\:pr-64{padding-right:16rem}.xs\:pb-64{padding-bottom:16rem}.xs\:pl-64{padding-left:16rem}.xs\:pt-px{padding-top:1px}.xs\:pr-px{padding-right:1px}.xs\:pb-px{padding-bottom:1px}.xs\:pl-px{padding-left:1px}.xs\:placeholder-transparent::placeholder{color:transparent}.xs\:placeholder-current::placeholder{color:currentColor}.xs\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xs\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xs\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xs\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xs\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xs\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xs\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xs\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xs\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xs\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xs\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xs\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xs\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xs\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xs\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xs\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xs\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xs\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xs\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xs\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xs\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xs\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xs\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xs\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xs\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xs\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xs\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xs\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xs\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xs\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xs\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xs\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xs\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xs\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xs\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xs\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xs\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xs\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xs\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xs\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xs\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xs\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xs\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xs\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xs\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xs\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xs\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xs\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xs\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xs\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xs\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xs\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xs\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xs\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xs\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xs\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xs\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xs\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xs\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xs\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xs\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xs\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xs\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xs\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xs\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xs\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xs\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xs\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xs\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xs\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xs\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xs\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xs\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xs\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xs\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xs\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xs\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xs\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xs\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xs\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xs\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xs\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xs\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xs\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xs\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xs\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xs\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xs\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xs\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xs\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xs\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xs\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xs\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xs\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xs\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xs\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xs\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xs\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xs\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xs\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xs\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xs\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xs\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xs\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xs\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xs\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xs\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xs\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xs\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xs\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xs\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xs\:pointer-events-none{pointer-events:none}.xs\:pointer-events-auto{pointer-events:auto}.xs\:static{position:static}.xs\:fixed{position:fixed}.xs\:absolute{position:absolute}.xs\:relative{position:relative}.xs\:sticky{position:sticky}.xs\:inset-0{top:0;right:0;bottom:0;left:0}.xs\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xs\:inset-y-0{top:0;bottom:0}.xs\:inset-x-0{right:0;left:0}.xs\:inset-y-auto{top:auto;bottom:auto}.xs\:inset-x-auto{right:auto;left:auto}.xs\:top-0{top:0}.xs\:right-0{right:0}.xs\:bottom-0{bottom:0}.xs\:left-0{left:0}.xs\:top-auto{top:auto}.xs\:right-auto{right:auto}.xs\:bottom-auto{bottom:auto}.xs\:left-auto{left:auto}.xs\:resize-none{resize:none}.xs\:resize-y{resize:vertical}.xs\:resize-x{resize:horizontal}.xs\:resize{resize:both}.xs\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:shadow-none{box-shadow:none}.xs\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:hover\:shadow-none:hover{box-shadow:none}.xs\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:focus\:shadow-none:focus{box-shadow:none}.xs\:fill-current{fill:currentColor}.xs\:stroke-current{stroke:currentColor}.xs\:stroke-0{stroke-width:0}.xs\:stroke-1{stroke-width:1}.xs\:stroke-2{stroke-width:2}.xs\:table-auto{table-layout:auto}.xs\:table-fixed{table-layout:fixed}.xs\:text-left{text-align:left}.xs\:text-center{text-align:center}.xs\:text-right{text-align:right}.xs\:text-justify{text-align:justify}.xs\:text-transparent{color:transparent}.xs\:text-current{color:currentColor}.xs\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:hover\:text-transparent:hover{color:transparent}.xs\:hover\:text-current:hover{color:currentColor}.xs\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:focus\:text-transparent:focus{color:transparent}.xs\:focus\:text-current:focus{color:currentColor}.xs\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:text-opacity-0{--text-opacity:0}.xs\:text-opacity-25{--text-opacity:0.25}.xs\:text-opacity-50{--text-opacity:0.5}.xs\:text-opacity-75{--text-opacity:0.75}.xs\:text-opacity-100{--text-opacity:1}.xs\:hover\:text-opacity-0:hover{--text-opacity:0}.xs\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xs\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xs\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xs\:hover\:text-opacity-100:hover{--text-opacity:1}.xs\:focus\:text-opacity-0:focus{--text-opacity:0}.xs\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xs\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xs\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xs\:focus\:text-opacity-100:focus{--text-opacity:1}.xs\:italic{font-style:italic}.xs\:not-italic{font-style:normal}.xs\:uppercase{text-transform:uppercase}.xs\:lowercase{text-transform:lowercase}.xs\:capitalize{text-transform:capitalize}.xs\:normal-case{text-transform:none}.xs\:underline{text-decoration:underline}.xs\:line-through{text-decoration:line-through}.xs\:no-underline{text-decoration:none}.xs\:hover\:underline:hover{text-decoration:underline}.xs\:hover\:line-through:hover{text-decoration:line-through}.xs\:hover\:no-underline:hover{text-decoration:none}.xs\:focus\:underline:focus{text-decoration:underline}.xs\:focus\:line-through:focus{text-decoration:line-through}.xs\:focus\:no-underline:focus{text-decoration:none}.xs\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xs\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xs\:diagonal-fractions,.xs\:lining-nums,.xs\:oldstyle-nums,.xs\:ordinal,.xs\:proportional-nums,.xs\:slashed-zero,.xs\:stacked-fractions,.xs\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xs\:normal-nums{font-variant-numeric:normal}.xs\:ordinal{--font-variant-numeric-ordinal:ordinal}.xs\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xs\:lining-nums{--font-variant-numeric-figure:lining-nums}.xs\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xs\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xs\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xs\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xs\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xs\:tracking-tighter{letter-spacing:-.05em}.xs\:tracking-tight{letter-spacing:-.025em}.xs\:tracking-normal{letter-spacing:0}.xs\:tracking-wide{letter-spacing:.025em}.xs\:tracking-wider{letter-spacing:.05em}.xs\:tracking-widest{letter-spacing:.1em}.xs\:select-none{-webkit-user-select:none;user-select:none}.xs\:select-text{-webkit-user-select:text;user-select:text}.xs\:select-all{-webkit-user-select:all;user-select:all}.xs\:select-auto{-webkit-user-select:auto;user-select:auto}.xs\:align-baseline{vertical-align:baseline}.xs\:align-top{vertical-align:top}.xs\:align-middle{vertical-align:middle}.xs\:align-bottom{vertical-align:bottom}.xs\:align-text-top{vertical-align:text-top}.xs\:align-text-bottom{vertical-align:text-bottom}.xs\:visible{visibility:visible}.xs\:invisible{visibility:hidden}.xs\:whitespace-normal{white-space:normal}.xs\:whitespace-no-wrap{white-space:nowrap}.xs\:whitespace-pre{white-space:pre}.xs\:whitespace-pre-line{white-space:pre-line}.xs\:whitespace-pre-wrap{white-space:pre-wrap}.xs\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xs\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xs\:break-all{word-break:break-all}.xs\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xs\:w-0{width:0}.xs\:w-1{width:.25rem}.xs\:w-2{width:.5rem}.xs\:w-3{width:.75rem}.xs\:w-4{width:1rem}.xs\:w-5{width:1.25rem}.xs\:w-6{width:1.5rem}.xs\:w-8{width:2rem}.xs\:w-10{width:2.5rem}.xs\:w-12{width:3rem}.xs\:w-16{width:4rem}.xs\:w-20{width:5rem}.xs\:w-24{width:6rem}.xs\:w-32{width:8rem}.xs\:w-40{width:10rem}.xs\:w-48{width:12rem}.xs\:w-56{width:14rem}.xs\:w-64{width:16rem}.xs\:w-auto{width:auto}.xs\:w-px{width:1px}.xs\:w-1\/2{width:50%}.xs\:w-1\/3{width:33.333333%}.xs\:w-2\/3{width:66.666667%}.xs\:w-1\/4{width:25%}.xs\:w-2\/4{width:50%}.xs\:w-3\/4{width:75%}.xs\:w-1\/5{width:20%}.xs\:w-2\/5{width:40%}.xs\:w-3\/5{width:60%}.xs\:w-4\/5{width:80%}.xs\:w-1\/6{width:16.666667%}.xs\:w-2\/6{width:33.333333%}.xs\:w-3\/6{width:50%}.xs\:w-4\/6{width:66.666667%}.xs\:w-5\/6{width:83.333333%}.xs\:w-1\/12{width:8.333333%}.xs\:w-2\/12{width:16.666667%}.xs\:w-3\/12{width:25%}.xs\:w-4\/12{width:33.333333%}.xs\:w-5\/12{width:41.666667%}.xs\:w-6\/12{width:50%}.xs\:w-7\/12{width:58.333333%}.xs\:w-8\/12{width:66.666667%}.xs\:w-9\/12{width:75%}.xs\:w-10\/12{width:83.333333%}.xs\:w-11\/12{width:91.666667%}.xs\:w-full{width:100%}.xs\:w-screen{width:100vw}.xs\:z-0{z-index:0}.xs\:z-10{z-index:10}.xs\:z-20{z-index:20}.xs\:z-30{z-index:30}.xs\:z-40{z-index:40}.xs\:z-50{z-index:50}.xs\:z-auto{z-index:auto}.xs\:gap-0{grid-gap:0;gap:0}.xs\:gap-1{grid-gap:.25rem;gap:.25rem}.xs\:gap-2{grid-gap:.5rem;gap:.5rem}.xs\:gap-3{grid-gap:.75rem;gap:.75rem}.xs\:gap-4{grid-gap:1rem;gap:1rem}.xs\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xs\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xs\:gap-8{grid-gap:2rem;gap:2rem}.xs\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xs\:gap-12{grid-gap:3rem;gap:3rem}.xs\:gap-16{grid-gap:4rem;gap:4rem}.xs\:gap-20{grid-gap:5rem;gap:5rem}.xs\:gap-24{grid-gap:6rem;gap:6rem}.xs\:gap-32{grid-gap:8rem;gap:8rem}.xs\:gap-40{grid-gap:10rem;gap:10rem}.xs\:gap-48{grid-gap:12rem;gap:12rem}.xs\:gap-56{grid-gap:14rem;gap:14rem}.xs\:gap-64{grid-gap:16rem;gap:16rem}.xs\:gap-px{grid-gap:1px;gap:1px}.xs\:col-gap-0{grid-column-gap:0;column-gap:0}.xs\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xs\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xs\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xs\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xs\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xs\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xs\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xs\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xs\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xs\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xs\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xs\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xs\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xs\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xs\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xs\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xs\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xs\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xs\:gap-x-0{grid-column-gap:0;column-gap:0}.xs\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xs\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xs\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xs\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xs\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xs\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xs\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xs\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xs\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xs\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xs\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xs\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xs\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xs\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xs\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xs\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xs\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xs\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xs\:row-gap-0{grid-row-gap:0;row-gap:0}.xs\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xs\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xs\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xs\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xs\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xs\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xs\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xs\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xs\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xs\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xs\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xs\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xs\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xs\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xs\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xs\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xs\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xs\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xs\:gap-y-0{grid-row-gap:0;row-gap:0}.xs\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xs\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xs\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xs\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xs\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xs\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xs\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xs\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xs\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xs\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xs\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xs\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xs\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xs\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xs\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xs\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xs\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xs\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xs\:grid-flow-row{grid-auto-flow:row}.xs\:grid-flow-col{grid-auto-flow:column}.xs\:grid-flow-row-dense{grid-auto-flow:row dense}.xs\:grid-flow-col-dense{grid-auto-flow:column dense}.xs\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xs\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xs\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xs\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xs\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xs\:grid-cols-none{grid-template-columns:none}.xs\:auto-cols-auto{grid-auto-columns:auto}.xs\:auto-cols-min{grid-auto-columns:min-content}.xs\:auto-cols-max{grid-auto-columns:max-content}.xs\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xs\:col-auto{grid-column:auto}.xs\:col-span-1{grid-column:span 1/span 1}.xs\:col-span-2{grid-column:span 2/span 2}.xs\:col-span-3{grid-column:span 3/span 3}.xs\:col-span-4{grid-column:span 4/span 4}.xs\:col-span-5{grid-column:span 5/span 5}.xs\:col-span-6{grid-column:span 6/span 6}.xs\:col-span-7{grid-column:span 7/span 7}.xs\:col-span-8{grid-column:span 8/span 8}.xs\:col-span-9{grid-column:span 9/span 9}.xs\:col-span-10{grid-column:span 10/span 10}.xs\:col-span-11{grid-column:span 11/span 11}.xs\:col-span-12{grid-column:span 12/span 12}.xs\:col-span-full{grid-column:1/-1}.xs\:col-start-1{grid-column-start:1}.xs\:col-start-2{grid-column-start:2}.xs\:col-start-3{grid-column-start:3}.xs\:col-start-4{grid-column-start:4}.xs\:col-start-5{grid-column-start:5}.xs\:col-start-6{grid-column-start:6}.xs\:col-start-7{grid-column-start:7}.xs\:col-start-8{grid-column-start:8}.xs\:col-start-9{grid-column-start:9}.xs\:col-start-10{grid-column-start:10}.xs\:col-start-11{grid-column-start:11}.xs\:col-start-12{grid-column-start:12}.xs\:col-start-13{grid-column-start:13}.xs\:col-start-auto{grid-column-start:auto}.xs\:col-end-1{grid-column-end:1}.xs\:col-end-2{grid-column-end:2}.xs\:col-end-3{grid-column-end:3}.xs\:col-end-4{grid-column-end:4}.xs\:col-end-5{grid-column-end:5}.xs\:col-end-6{grid-column-end:6}.xs\:col-end-7{grid-column-end:7}.xs\:col-end-8{grid-column-end:8}.xs\:col-end-9{grid-column-end:9}.xs\:col-end-10{grid-column-end:10}.xs\:col-end-11{grid-column-end:11}.xs\:col-end-12{grid-column-end:12}.xs\:col-end-13{grid-column-end:13}.xs\:col-end-auto{grid-column-end:auto}.xs\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xs\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:grid-rows-none{grid-template-rows:none}.xs\:auto-rows-auto{grid-auto-rows:auto}.xs\:auto-rows-min{grid-auto-rows:min-content}.xs\:auto-rows-max{grid-auto-rows:max-content}.xs\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xs\:row-auto{grid-row:auto}.xs\:row-span-1{grid-row:span 1/span 1}.xs\:row-span-2{grid-row:span 2/span 2}.xs\:row-span-3{grid-row:span 3/span 3}.xs\:row-span-4{grid-row:span 4/span 4}.xs\:row-span-5{grid-row:span 5/span 5}.xs\:row-span-6{grid-row:span 6/span 6}.xs\:row-span-full{grid-row:1/-1}.xs\:row-start-1{grid-row-start:1}.xs\:row-start-2{grid-row-start:2}.xs\:row-start-3{grid-row-start:3}.xs\:row-start-4{grid-row-start:4}.xs\:row-start-5{grid-row-start:5}.xs\:row-start-6{grid-row-start:6}.xs\:row-start-7{grid-row-start:7}.xs\:row-start-auto{grid-row-start:auto}.xs\:row-end-1{grid-row-end:1}.xs\:row-end-2{grid-row-end:2}.xs\:row-end-3{grid-row-end:3}.xs\:row-end-4{grid-row-end:4}.xs\:row-end-5{grid-row-end:5}.xs\:row-end-6{grid-row-end:6}.xs\:row-end-7{grid-row-end:7}.xs\:row-end-auto{grid-row-end:auto}.xs\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xs\:transform-none{transform:none}.xs\:origin-center{transform-origin:center}.xs\:origin-top{transform-origin:top}.xs\:origin-top-right{transform-origin:top right}.xs\:origin-right{transform-origin:right}.xs\:origin-bottom-right{transform-origin:bottom right}.xs\:origin-bottom{transform-origin:bottom}.xs\:origin-bottom-left{transform-origin:bottom left}.xs\:origin-left{transform-origin:left}.xs\:origin-top-left{transform-origin:top left}.xs\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xs\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xs\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:scale-x-0{--transform-scale-x:0}.xs\:scale-x-50{--transform-scale-x:.5}.xs\:scale-x-75{--transform-scale-x:.75}.xs\:scale-x-90{--transform-scale-x:.9}.xs\:scale-x-95{--transform-scale-x:.95}.xs\:scale-x-100{--transform-scale-x:1}.xs\:scale-x-105{--transform-scale-x:1.05}.xs\:scale-x-110{--transform-scale-x:1.1}.xs\:scale-x-125{--transform-scale-x:1.25}.xs\:scale-x-150{--transform-scale-x:1.5}.xs\:scale-y-0{--transform-scale-y:0}.xs\:scale-y-50{--transform-scale-y:.5}.xs\:scale-y-75{--transform-scale-y:.75}.xs\:scale-y-90{--transform-scale-y:.9}.xs\:scale-y-95{--transform-scale-y:.95}.xs\:scale-y-100{--transform-scale-y:1}.xs\:scale-y-105{--transform-scale-y:1.05}.xs\:scale-y-110{--transform-scale-y:1.1}.xs\:scale-y-125{--transform-scale-y:1.25}.xs\:scale-y-150{--transform-scale-y:1.5}.xs\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xs\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xs\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:hover\:scale-x-0:hover{--transform-scale-x:0}.xs\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xs\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xs\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xs\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xs\:hover\:scale-x-100:hover{--transform-scale-x:1}.xs\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xs\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xs\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xs\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xs\:hover\:scale-y-0:hover{--transform-scale-y:0}.xs\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xs\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xs\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xs\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xs\:hover\:scale-y-100:hover{--transform-scale-y:1}.xs\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xs\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xs\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xs\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xs\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xs\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xs\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:focus\:scale-x-0:focus{--transform-scale-x:0}.xs\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xs\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xs\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xs\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xs\:focus\:scale-x-100:focus{--transform-scale-x:1}.xs\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xs\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xs\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xs\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xs\:focus\:scale-y-0:focus{--transform-scale-y:0}.xs\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xs\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xs\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xs\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xs\:focus\:scale-y-100:focus{--transform-scale-y:1}.xs\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xs\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xs\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xs\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xs\:rotate-0{--transform-rotate:0}.xs\:rotate-1{--transform-rotate:1deg}.xs\:rotate-2{--transform-rotate:2deg}.xs\:rotate-3{--transform-rotate:3deg}.xs\:rotate-6{--transform-rotate:6deg}.xs\:rotate-12{--transform-rotate:12deg}.xs\:rotate-45{--transform-rotate:45deg}.xs\:rotate-90{--transform-rotate:90deg}.xs\:rotate-180{--transform-rotate:180deg}.xs\:-rotate-180{--transform-rotate:-180deg}.xs\:-rotate-90{--transform-rotate:-90deg}.xs\:-rotate-45{--transform-rotate:-45deg}.xs\:-rotate-12{--transform-rotate:-12deg}.xs\:-rotate-6{--transform-rotate:-6deg}.xs\:-rotate-3{--transform-rotate:-3deg}.xs\:-rotate-2{--transform-rotate:-2deg}.xs\:-rotate-1{--transform-rotate:-1deg}.xs\:hover\:rotate-0:hover{--transform-rotate:0}.xs\:hover\:rotate-1:hover{--transform-rotate:1deg}.xs\:hover\:rotate-2:hover{--transform-rotate:2deg}.xs\:hover\:rotate-3:hover{--transform-rotate:3deg}.xs\:hover\:rotate-6:hover{--transform-rotate:6deg}.xs\:hover\:rotate-12:hover{--transform-rotate:12deg}.xs\:hover\:rotate-45:hover{--transform-rotate:45deg}.xs\:hover\:rotate-90:hover{--transform-rotate:90deg}.xs\:hover\:rotate-180:hover{--transform-rotate:180deg}.xs\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xs\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xs\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xs\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xs\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xs\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xs\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xs\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xs\:focus\:rotate-0:focus{--transform-rotate:0}.xs\:focus\:rotate-1:focus{--transform-rotate:1deg}.xs\:focus\:rotate-2:focus{--transform-rotate:2deg}.xs\:focus\:rotate-3:focus{--transform-rotate:3deg}.xs\:focus\:rotate-6:focus{--transform-rotate:6deg}.xs\:focus\:rotate-12:focus{--transform-rotate:12deg}.xs\:focus\:rotate-45:focus{--transform-rotate:45deg}.xs\:focus\:rotate-90:focus{--transform-rotate:90deg}.xs\:focus\:rotate-180:focus{--transform-rotate:180deg}.xs\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xs\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xs\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xs\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xs\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xs\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xs\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xs\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xs\:translate-x-0{--transform-translate-x:0}.xs\:translate-x-1{--transform-translate-x:0.25rem}.xs\:translate-x-2{--transform-translate-x:0.5rem}.xs\:translate-x-3{--transform-translate-x:0.75rem}.xs\:translate-x-4{--transform-translate-x:1rem}.xs\:translate-x-5{--transform-translate-x:1.25rem}.xs\:translate-x-6{--transform-translate-x:1.5rem}.xs\:translate-x-8{--transform-translate-x:2rem}.xs\:translate-x-10{--transform-translate-x:2.5rem}.xs\:translate-x-12{--transform-translate-x:3rem}.xs\:translate-x-16{--transform-translate-x:4rem}.xs\:translate-x-20{--transform-translate-x:5rem}.xs\:translate-x-24{--transform-translate-x:6rem}.xs\:translate-x-32{--transform-translate-x:8rem}.xs\:translate-x-40{--transform-translate-x:10rem}.xs\:translate-x-48{--transform-translate-x:12rem}.xs\:translate-x-56{--transform-translate-x:14rem}.xs\:translate-x-64{--transform-translate-x:16rem}.xs\:translate-x-px{--transform-translate-x:1px}.xs\:-translate-x-1{--transform-translate-x:-0.25rem}.xs\:-translate-x-2{--transform-translate-x:-0.5rem}.xs\:-translate-x-3{--transform-translate-x:-0.75rem}.xs\:-translate-x-4{--transform-translate-x:-1rem}.xs\:-translate-x-5{--transform-translate-x:-1.25rem}.xs\:-translate-x-6{--transform-translate-x:-1.5rem}.xs\:-translate-x-8{--transform-translate-x:-2rem}.xs\:-translate-x-10{--transform-translate-x:-2.5rem}.xs\:-translate-x-12{--transform-translate-x:-3rem}.xs\:-translate-x-16{--transform-translate-x:-4rem}.xs\:-translate-x-20{--transform-translate-x:-5rem}.xs\:-translate-x-24{--transform-translate-x:-6rem}.xs\:-translate-x-32{--transform-translate-x:-8rem}.xs\:-translate-x-40{--transform-translate-x:-10rem}.xs\:-translate-x-48{--transform-translate-x:-12rem}.xs\:-translate-x-56{--transform-translate-x:-14rem}.xs\:-translate-x-64{--transform-translate-x:-16rem}.xs\:-translate-x-px{--transform-translate-x:-1px}.xs\:-translate-x-full{--transform-translate-x:-100%}.xs\:-translate-x-1\/2{--transform-translate-x:-50%}.xs\:translate-x-1\/2{--transform-translate-x:50%}.xs\:translate-x-full{--transform-translate-x:100%}.xs\:translate-y-0{--transform-translate-y:0}.xs\:translate-y-1{--transform-translate-y:0.25rem}.xs\:translate-y-2{--transform-translate-y:0.5rem}.xs\:translate-y-3{--transform-translate-y:0.75rem}.xs\:translate-y-4{--transform-translate-y:1rem}.xs\:translate-y-5{--transform-translate-y:1.25rem}.xs\:translate-y-6{--transform-translate-y:1.5rem}.xs\:translate-y-8{--transform-translate-y:2rem}.xs\:translate-y-10{--transform-translate-y:2.5rem}.xs\:translate-y-12{--transform-translate-y:3rem}.xs\:translate-y-16{--transform-translate-y:4rem}.xs\:translate-y-20{--transform-translate-y:5rem}.xs\:translate-y-24{--transform-translate-y:6rem}.xs\:translate-y-32{--transform-translate-y:8rem}.xs\:translate-y-40{--transform-translate-y:10rem}.xs\:translate-y-48{--transform-translate-y:12rem}.xs\:translate-y-56{--transform-translate-y:14rem}.xs\:translate-y-64{--transform-translate-y:16rem}.xs\:translate-y-px{--transform-translate-y:1px}.xs\:-translate-y-1{--transform-translate-y:-0.25rem}.xs\:-translate-y-2{--transform-translate-y:-0.5rem}.xs\:-translate-y-3{--transform-translate-y:-0.75rem}.xs\:-translate-y-4{--transform-translate-y:-1rem}.xs\:-translate-y-5{--transform-translate-y:-1.25rem}.xs\:-translate-y-6{--transform-translate-y:-1.5rem}.xs\:-translate-y-8{--transform-translate-y:-2rem}.xs\:-translate-y-10{--transform-translate-y:-2.5rem}.xs\:-translate-y-12{--transform-translate-y:-3rem}.xs\:-translate-y-16{--transform-translate-y:-4rem}.xs\:-translate-y-20{--transform-translate-y:-5rem}.xs\:-translate-y-24{--transform-translate-y:-6rem}.xs\:-translate-y-32{--transform-translate-y:-8rem}.xs\:-translate-y-40{--transform-translate-y:-10rem}.xs\:-translate-y-48{--transform-translate-y:-12rem}.xs\:-translate-y-56{--transform-translate-y:-14rem}.xs\:-translate-y-64{--transform-translate-y:-16rem}.xs\:-translate-y-px{--transform-translate-y:-1px}.xs\:-translate-y-full{--transform-translate-y:-100%}.xs\:-translate-y-1\/2{--transform-translate-y:-50%}.xs\:translate-y-1\/2{--transform-translate-y:50%}.xs\:translate-y-full{--transform-translate-y:100%}.xs\:hover\:translate-x-0:hover{--transform-translate-x:0}.xs\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xs\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xs\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xs\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xs\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xs\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xs\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xs\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xs\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xs\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xs\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xs\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xs\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xs\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xs\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xs\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xs\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xs\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xs\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xs\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xs\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xs\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xs\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xs\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xs\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xs\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xs\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xs\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xs\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xs\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xs\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xs\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xs\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xs\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xs\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xs\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xs\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xs\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xs\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xs\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xs\:hover\:translate-y-0:hover{--transform-translate-y:0}.xs\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xs\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xs\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xs\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xs\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xs\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xs\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xs\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xs\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xs\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xs\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xs\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xs\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xs\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xs\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xs\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xs\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xs\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xs\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xs\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xs\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xs\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xs\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xs\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xs\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xs\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xs\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xs\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xs\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xs\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xs\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xs\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xs\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xs\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xs\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xs\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xs\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xs\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xs\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xs\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xs\:focus\:translate-x-0:focus{--transform-translate-x:0}.xs\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xs\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xs\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xs\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xs\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xs\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xs\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xs\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xs\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xs\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xs\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xs\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xs\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xs\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xs\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xs\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xs\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xs\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xs\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xs\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xs\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xs\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xs\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xs\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xs\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xs\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xs\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xs\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xs\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xs\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xs\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xs\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xs\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xs\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xs\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xs\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xs\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xs\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xs\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xs\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xs\:focus\:translate-y-0:focus{--transform-translate-y:0}.xs\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xs\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xs\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xs\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xs\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xs\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xs\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xs\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xs\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xs\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xs\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xs\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xs\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xs\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xs\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xs\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xs\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xs\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xs\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xs\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xs\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xs\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xs\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xs\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xs\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xs\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xs\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xs\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xs\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xs\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xs\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xs\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xs\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xs\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xs\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xs\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xs\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xs\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xs\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xs\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xs\:skew-x-0{--transform-skew-x:0}.xs\:skew-x-1{--transform-skew-x:1deg}.xs\:skew-x-2{--transform-skew-x:2deg}.xs\:skew-x-3{--transform-skew-x:3deg}.xs\:skew-x-6{--transform-skew-x:6deg}.xs\:skew-x-12{--transform-skew-x:12deg}.xs\:-skew-x-12{--transform-skew-x:-12deg}.xs\:-skew-x-6{--transform-skew-x:-6deg}.xs\:-skew-x-3{--transform-skew-x:-3deg}.xs\:-skew-x-2{--transform-skew-x:-2deg}.xs\:-skew-x-1{--transform-skew-x:-1deg}.xs\:skew-y-0{--transform-skew-y:0}.xs\:skew-y-1{--transform-skew-y:1deg}.xs\:skew-y-2{--transform-skew-y:2deg}.xs\:skew-y-3{--transform-skew-y:3deg}.xs\:skew-y-6{--transform-skew-y:6deg}.xs\:skew-y-12{--transform-skew-y:12deg}.xs\:-skew-y-12{--transform-skew-y:-12deg}.xs\:-skew-y-6{--transform-skew-y:-6deg}.xs\:-skew-y-3{--transform-skew-y:-3deg}.xs\:-skew-y-2{--transform-skew-y:-2deg}.xs\:-skew-y-1{--transform-skew-y:-1deg}.xs\:hover\:skew-x-0:hover{--transform-skew-x:0}.xs\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xs\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xs\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xs\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xs\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xs\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xs\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xs\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xs\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xs\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xs\:hover\:skew-y-0:hover{--transform-skew-y:0}.xs\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xs\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xs\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xs\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xs\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xs\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xs\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xs\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xs\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xs\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xs\:focus\:skew-x-0:focus{--transform-skew-x:0}.xs\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xs\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xs\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xs\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xs\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xs\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xs\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xs\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xs\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xs\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xs\:focus\:skew-y-0:focus{--transform-skew-y:0}.xs\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xs\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xs\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xs\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xs\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xs\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xs\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xs\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xs\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xs\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xs\:transition-none{transition-property:none}.xs\:transition-all{transition-property:all}.xs\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xs\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xs\:transition-opacity{transition-property:opacity}.xs\:transition-shadow{transition-property:box-shadow}.xs\:transition-transform{transition-property:transform}.xs\:ease-linear{transition-timing-function:linear}.xs\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xs\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xs\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xs\:duration-75{transition-duration:75ms}.xs\:duration-100{transition-duration:.1s}.xs\:duration-150{transition-duration:.15s}.xs\:duration-200{transition-duration:.2s}.xs\:duration-300{transition-duration:.3s}.xs\:duration-500{transition-duration:.5s}.xs\:duration-700{transition-duration:.7s}.xs\:duration-1000{transition-duration:1s}.xs\:delay-75{transition-delay:75ms}.xs\:delay-100{transition-delay:.1s}.xs\:delay-150{transition-delay:.15s}.xs\:delay-200{transition-delay:.2s}.xs\:delay-300{transition-delay:.3s}.xs\:delay-500{transition-delay:.5s}.xs\:delay-700{transition-delay:.7s}.xs\:delay-1000{transition-delay:1s}.xs\:animate-none{animation:none}.xs\:animate-spin{animation:spin 1s linear infinite}.xs\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xs\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xs\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:360px){.sm\:container{max-width:360px}}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1480px){.sm\:container{max-width:1480px}}.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.sm\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.sm\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.sm\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.sm\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.sm\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.sm\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.sm\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.sm\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.sm\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.sm\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.sm\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.sm\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.sm\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.sm\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.sm\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.sm\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.sm\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.sm\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.sm\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.sm\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.sm\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.sm\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.sm\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.sm\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.sm\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.sm\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.sm\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.sm\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.sm\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.sm\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.sm\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.sm\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.sm\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.sm\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.sm\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.sm\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.sm\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.sm\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.sm\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.sm\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.sm\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.sm\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.sm\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.sm\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.sm\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.sm\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.sm\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.sm\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.sm\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.sm\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.sm\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.sm\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.sm\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.sm\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.sm\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.sm\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.sm\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.sm\:divide-transparent>:not(template)~:not(template){border-color:transparent}.sm\:divide-current>:not(template)~:not(template){border-color:currentColor}.sm\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.sm\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.sm\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.sm\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.sm\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.sm\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.sm\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.sm\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.sm\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.sm\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.sm\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.sm\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.sm\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.sm\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.sm\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.sm\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.sm\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.sm\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.sm\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.sm\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.sm\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.sm\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.sm\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.sm\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.sm\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.sm\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.sm\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.sm\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.sm\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.sm\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.sm\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.sm\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.sm\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.sm\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.sm\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.sm\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.sm\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.sm\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.sm\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.sm\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.sm\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.sm\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.sm\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.sm\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.sm\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.sm\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.sm\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.sm\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.sm\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.sm\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.sm\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.sm\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.sm\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.sm\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.sm\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.sm\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.sm\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.sm\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.sm\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.sm\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.sm\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.sm\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.sm\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.sm\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.sm\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.sm\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.sm\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.sm\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.sm\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.sm\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.sm\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.sm\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.sm\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.sm\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.sm\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.sm\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.sm\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.sm\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.sm\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.sm\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.sm\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.sm\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.sm\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.sm\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.sm\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.sm\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.sm\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.sm\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.sm\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.sm\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.sm\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.sm\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.sm\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.sm\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.sm\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.sm\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.sm\:divide-solid>:not(template)~:not(template){border-style:solid}.sm\:divide-dashed>:not(template)~:not(template){border-style:dashed}.sm\:divide-dotted>:not(template)~:not(template){border-style:dotted}.sm\:divide-double>:not(template)~:not(template){border-style:double}.sm\:divide-none>:not(template)~:not(template){border-style:none}.sm\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.sm\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.sm\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.sm\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.sm\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.sm\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sm\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sm\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:appearance-none{-webkit-appearance:none;appearance:none}.sm\:bg-fixed{background-attachment:fixed}.sm\:bg-local{background-attachment:local}.sm\:bg-scroll{background-attachment:scroll}.sm\:bg-clip-border{background-clip:border-box}.sm\:bg-clip-padding{background-clip:padding-box}.sm\:bg-clip-content{background-clip:content-box}.sm\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.sm\:bg-transparent{background-color:transparent}.sm\:bg-current{background-color:currentColor}.sm\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:hover\:bg-transparent:hover{background-color:transparent}.sm\:hover\:bg-current:hover{background-color:currentColor}.sm\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:focus\:bg-transparent:focus{background-color:transparent}.sm\:focus\:bg-current:focus{background-color:currentColor}.sm\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:bg-none{background-image:none}.sm\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.sm\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.sm\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.sm\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.sm\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:to-transparent{--gradient-to-color:transparent}.sm\:to-current{--gradient-to-color:currentColor}.sm\:to-black{--gradient-to-color:#000}.sm\:to-white{--gradient-to-color:#fff}.sm\:to-gray-100{--gradient-to-color:#f7fafc}.sm\:to-gray-200{--gradient-to-color:#edf2f7}.sm\:to-gray-300{--gradient-to-color:#e2e8f0}.sm\:to-gray-400{--gradient-to-color:#cbd5e0}.sm\:to-gray-500{--gradient-to-color:#a0aec0}.sm\:to-gray-600{--gradient-to-color:#718096}.sm\:to-gray-700{--gradient-to-color:#4a5568}.sm\:to-gray-800{--gradient-to-color:#2d3748}.sm\:to-gray-900{--gradient-to-color:#1a202c}.sm\:to-red-100{--gradient-to-color:#fff5f5}.sm\:to-red-200{--gradient-to-color:#fed7d7}.sm\:to-red-300{--gradient-to-color:#feb2b2}.sm\:to-red-400{--gradient-to-color:#fc8181}.sm\:to-red-500{--gradient-to-color:#f56565}.sm\:to-red-600{--gradient-to-color:#e53e3e}.sm\:to-red-700{--gradient-to-color:#c53030}.sm\:to-red-800{--gradient-to-color:#9b2c2c}.sm\:to-red-900{--gradient-to-color:#742a2a}.sm\:to-orange-100{--gradient-to-color:#fffaf0}.sm\:to-orange-200{--gradient-to-color:#feebc8}.sm\:to-orange-300{--gradient-to-color:#fbd38d}.sm\:to-orange-400{--gradient-to-color:#f6ad55}.sm\:to-orange-500{--gradient-to-color:#ed8936}.sm\:to-orange-600{--gradient-to-color:#dd6b20}.sm\:to-orange-700{--gradient-to-color:#c05621}.sm\:to-orange-800{--gradient-to-color:#9c4221}.sm\:to-orange-900{--gradient-to-color:#7b341e}.sm\:to-yellow-100{--gradient-to-color:ivory}.sm\:to-yellow-200{--gradient-to-color:#fefcbf}.sm\:to-yellow-300{--gradient-to-color:#faf089}.sm\:to-yellow-400{--gradient-to-color:#f6e05e}.sm\:to-yellow-500{--gradient-to-color:#ecc94b}.sm\:to-yellow-600{--gradient-to-color:#d69e2e}.sm\:to-yellow-700{--gradient-to-color:#b7791f}.sm\:to-yellow-800{--gradient-to-color:#975a16}.sm\:to-yellow-900{--gradient-to-color:#744210}.sm\:to-green-100{--gradient-to-color:#f0fff4}.sm\:to-green-200{--gradient-to-color:#c6f6d5}.sm\:to-green-300{--gradient-to-color:#9ae6b4}.sm\:to-green-400{--gradient-to-color:#68d391}.sm\:to-green-500{--gradient-to-color:#48bb78}.sm\:to-green-600{--gradient-to-color:#38a169}.sm\:to-green-700{--gradient-to-color:#2f855a}.sm\:to-green-800{--gradient-to-color:#276749}.sm\:to-green-900{--gradient-to-color:#22543d}.sm\:to-teal-100{--gradient-to-color:#e6fffa}.sm\:to-teal-200{--gradient-to-color:#b2f5ea}.sm\:to-teal-300{--gradient-to-color:#81e6d9}.sm\:to-teal-400{--gradient-to-color:#4fd1c5}.sm\:to-teal-500{--gradient-to-color:#38b2ac}.sm\:to-teal-600{--gradient-to-color:#319795}.sm\:to-teal-700{--gradient-to-color:#2c7a7b}.sm\:to-teal-800{--gradient-to-color:#285e61}.sm\:to-teal-900{--gradient-to-color:#234e52}.sm\:to-blue-100{--gradient-to-color:#ebf8ff}.sm\:to-blue-200{--gradient-to-color:#bee3f8}.sm\:to-blue-300{--gradient-to-color:#90cdf4}.sm\:to-blue-400{--gradient-to-color:#63b3ed}.sm\:to-blue-500{--gradient-to-color:#4299e1}.sm\:to-blue-600{--gradient-to-color:#3182ce}.sm\:to-blue-700{--gradient-to-color:#2b6cb0}.sm\:to-blue-800{--gradient-to-color:#2c5282}.sm\:to-blue-900{--gradient-to-color:#2a4365}.sm\:to-indigo-100{--gradient-to-color:#ebf4ff}.sm\:to-indigo-200{--gradient-to-color:#c3dafe}.sm\:to-indigo-300{--gradient-to-color:#a3bffa}.sm\:to-indigo-400{--gradient-to-color:#7f9cf5}.sm\:to-indigo-500{--gradient-to-color:#667eea}.sm\:to-indigo-600{--gradient-to-color:#5a67d8}.sm\:to-indigo-700{--gradient-to-color:#4c51bf}.sm\:to-indigo-800{--gradient-to-color:#434190}.sm\:to-indigo-900{--gradient-to-color:#3c366b}.sm\:to-purple-100{--gradient-to-color:#faf5ff}.sm\:to-purple-200{--gradient-to-color:#e9d8fd}.sm\:to-purple-300{--gradient-to-color:#d6bcfa}.sm\:to-purple-400{--gradient-to-color:#b794f4}.sm\:to-purple-500{--gradient-to-color:#9f7aea}.sm\:to-purple-600{--gradient-to-color:#805ad5}.sm\:to-purple-700{--gradient-to-color:#6b46c1}.sm\:to-purple-800{--gradient-to-color:#553c9a}.sm\:to-purple-900{--gradient-to-color:#44337a}.sm\:to-pink-100{--gradient-to-color:#fff5f7}.sm\:to-pink-200{--gradient-to-color:#fed7e2}.sm\:to-pink-300{--gradient-to-color:#fbb6ce}.sm\:to-pink-400{--gradient-to-color:#f687b3}.sm\:to-pink-500{--gradient-to-color:#ed64a6}.sm\:to-pink-600{--gradient-to-color:#d53f8c}.sm\:to-pink-700{--gradient-to-color:#b83280}.sm\:to-pink-800{--gradient-to-color:#97266d}.sm\:to-pink-900{--gradient-to-color:#702459}.sm\:to-primary{--gradient-to-color:#00d1ff}.sm\:to-secondary{--gradient-to-color:#e077ff}.sm\:to-greenish-blue{--gradient-to-color:#adffed}.sm\:to-blue-gray{--gradient-to-color:#cfe1e6}.sm\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:hover\:to-transparent:hover{--gradient-to-color:transparent}.sm\:hover\:to-current:hover{--gradient-to-color:currentColor}.sm\:hover\:to-black:hover{--gradient-to-color:#000}.sm\:hover\:to-white:hover{--gradient-to-color:#fff}.sm\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.sm\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.sm\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.sm\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.sm\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.sm\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.sm\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.sm\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.sm\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.sm\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.sm\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.sm\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.sm\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.sm\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.sm\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.sm\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.sm\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.sm\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.sm\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.sm\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.sm\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.sm\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.sm\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.sm\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.sm\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.sm\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.sm\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.sm\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.sm\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.sm\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.sm\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.sm\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.sm\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.sm\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.sm\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.sm\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.sm\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.sm\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.sm\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.sm\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.sm\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.sm\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.sm\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.sm\:hover\:to-green-800:hover{--gradient-to-color:#276749}.sm\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.sm\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.sm\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.sm\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.sm\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.sm\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.sm\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.sm\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.sm\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.sm\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.sm\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.sm\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.sm\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.sm\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.sm\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.sm\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.sm\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.sm\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.sm\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.sm\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.sm\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.sm\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.sm\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.sm\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.sm\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.sm\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.sm\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.sm\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.sm\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.sm\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.sm\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.sm\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.sm\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.sm\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.sm\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.sm\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.sm\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.sm\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.sm\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.sm\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.sm\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.sm\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.sm\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.sm\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.sm\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.sm\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.sm\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.sm\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.sm\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.sm\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.sm\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:focus\:to-transparent:focus{--gradient-to-color:transparent}.sm\:focus\:to-current:focus{--gradient-to-color:currentColor}.sm\:focus\:to-black:focus{--gradient-to-color:#000}.sm\:focus\:to-white:focus{--gradient-to-color:#fff}.sm\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.sm\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.sm\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.sm\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.sm\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.sm\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.sm\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.sm\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.sm\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.sm\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.sm\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.sm\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.sm\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.sm\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.sm\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.sm\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.sm\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.sm\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.sm\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.sm\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.sm\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.sm\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.sm\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.sm\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.sm\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.sm\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.sm\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.sm\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.sm\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.sm\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.sm\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.sm\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.sm\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.sm\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.sm\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.sm\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.sm\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.sm\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.sm\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.sm\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.sm\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.sm\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.sm\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.sm\:focus\:to-green-800:focus{--gradient-to-color:#276749}.sm\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.sm\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.sm\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.sm\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.sm\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.sm\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.sm\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.sm\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.sm\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.sm\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.sm\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.sm\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.sm\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.sm\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.sm\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.sm\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.sm\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.sm\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.sm\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.sm\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.sm\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.sm\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.sm\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.sm\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.sm\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.sm\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.sm\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.sm\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.sm\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.sm\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.sm\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.sm\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.sm\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.sm\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.sm\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.sm\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.sm\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.sm\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.sm\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.sm\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.sm\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.sm\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.sm\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.sm\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.sm\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.sm\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.sm\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.sm\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.sm\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.sm\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.sm\:bg-opacity-0{--bg-opacity:0}.sm\:bg-opacity-25{--bg-opacity:0.25}.sm\:bg-opacity-50{--bg-opacity:0.5}.sm\:bg-opacity-75{--bg-opacity:0.75}.sm\:bg-opacity-100{--bg-opacity:1}.sm\:hover\:bg-opacity-0:hover{--bg-opacity:0}.sm\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.sm\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.sm\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.sm\:hover\:bg-opacity-100:hover{--bg-opacity:1}.sm\:focus\:bg-opacity-0:focus{--bg-opacity:0}.sm\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.sm\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.sm\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.sm\:focus\:bg-opacity-100:focus{--bg-opacity:1}.sm\:bg-bottom{background-position:bottom}.sm\:bg-center{background-position:50%}.sm\:bg-left{background-position:0}.sm\:bg-left-bottom{background-position:0 100%}.sm\:bg-left-top{background-position:0 0}.sm\:bg-right{background-position:100%}.sm\:bg-right-bottom{background-position:100% 100%}.sm\:bg-right-top{background-position:100% 0}.sm\:bg-top{background-position:top}.sm\:bg-repeat{background-repeat:repeat}.sm\:bg-no-repeat{background-repeat:no-repeat}.sm\:bg-repeat-x{background-repeat:repeat-x}.sm\:bg-repeat-y{background-repeat:repeat-y}.sm\:bg-repeat-round{background-repeat:round}.sm\:bg-repeat-space{background-repeat:space}.sm\:bg-auto{background-size:auto}.sm\:bg-cover{background-size:cover}.sm\:bg-contain{background-size:contain}.sm\:border-collapse{border-collapse:collapse}.sm\:border-separate{border-collapse:separate}.sm\:border-transparent{border-color:transparent}.sm\:border-current{border-color:currentColor}.sm\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:hover\:border-transparent:hover{border-color:transparent}.sm\:hover\:border-current:hover{border-color:currentColor}.sm\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:focus\:border-transparent:focus{border-color:transparent}.sm\:focus\:border-current:focus{border-color:currentColor}.sm\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:border-opacity-0{--border-opacity:0}.sm\:border-opacity-25{--border-opacity:0.25}.sm\:border-opacity-50{--border-opacity:0.5}.sm\:border-opacity-75{--border-opacity:0.75}.sm\:border-opacity-100{--border-opacity:1}.sm\:hover\:border-opacity-0:hover{--border-opacity:0}.sm\:hover\:border-opacity-25:hover{--border-opacity:0.25}.sm\:hover\:border-opacity-50:hover{--border-opacity:0.5}.sm\:hover\:border-opacity-75:hover{--border-opacity:0.75}.sm\:hover\:border-opacity-100:hover{--border-opacity:1}.sm\:focus\:border-opacity-0:focus{--border-opacity:0}.sm\:focus\:border-opacity-25:focus{--border-opacity:0.25}.sm\:focus\:border-opacity-50:focus{--border-opacity:0.5}.sm\:focus\:border-opacity-75:focus{--border-opacity:0.75}.sm\:focus\:border-opacity-100:focus{--border-opacity:1}.sm\:rounded-none{border-radius:0}.sm\:rounded-sm{border-radius:.125rem}.sm\:rounded{border-radius:.25rem}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:rounded-2xl{border-radius:1rem}.sm\:rounded-3xl{border-radius:1.5rem}.sm\:rounded-full{border-radius:9999px}.sm\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.sm\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.sm\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.sm\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.sm\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.sm\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.sm\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.sm\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.sm\:rounded-t{border-top-left-radius:.25rem}.sm\:rounded-r,.sm\:rounded-t{border-top-right-radius:.25rem}.sm\:rounded-b,.sm\:rounded-r{border-bottom-right-radius:.25rem}.sm\:rounded-b,.sm\:rounded-l{border-bottom-left-radius:.25rem}.sm\:rounded-l{border-top-left-radius:.25rem}.sm\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.sm\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.sm\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.sm\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.sm\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.sm\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.sm\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.sm\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.sm\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.sm\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.sm\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.sm\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.sm\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.sm\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.sm\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.sm\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.sm\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.sm\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.sm\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.sm\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.sm\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.sm\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.sm\:rounded-tl-none{border-top-left-radius:0}.sm\:rounded-tr-none{border-top-right-radius:0}.sm\:rounded-br-none{border-bottom-right-radius:0}.sm\:rounded-bl-none{border-bottom-left-radius:0}.sm\:rounded-tl-sm{border-top-left-radius:.125rem}.sm\:rounded-tr-sm{border-top-right-radius:.125rem}.sm\:rounded-br-sm{border-bottom-right-radius:.125rem}.sm\:rounded-bl-sm{border-bottom-left-radius:.125rem}.sm\:rounded-tl{border-top-left-radius:.25rem}.sm\:rounded-tr{border-top-right-radius:.25rem}.sm\:rounded-br{border-bottom-right-radius:.25rem}.sm\:rounded-bl{border-bottom-left-radius:.25rem}.sm\:rounded-tl-md{border-top-left-radius:.375rem}.sm\:rounded-tr-md{border-top-right-radius:.375rem}.sm\:rounded-br-md{border-bottom-right-radius:.375rem}.sm\:rounded-bl-md{border-bottom-left-radius:.375rem}.sm\:rounded-tl-lg{border-top-left-radius:.5rem}.sm\:rounded-tr-lg{border-top-right-radius:.5rem}.sm\:rounded-br-lg{border-bottom-right-radius:.5rem}.sm\:rounded-bl-lg{border-bottom-left-radius:.5rem}.sm\:rounded-tl-xl{border-top-left-radius:.75rem}.sm\:rounded-tr-xl{border-top-right-radius:.75rem}.sm\:rounded-br-xl{border-bottom-right-radius:.75rem}.sm\:rounded-bl-xl{border-bottom-left-radius:.75rem}.sm\:rounded-tl-2xl{border-top-left-radius:1rem}.sm\:rounded-tr-2xl{border-top-right-radius:1rem}.sm\:rounded-br-2xl{border-bottom-right-radius:1rem}.sm\:rounded-bl-2xl{border-bottom-left-radius:1rem}.sm\:rounded-tl-3xl{border-top-left-radius:1.5rem}.sm\:rounded-tr-3xl{border-top-right-radius:1.5rem}.sm\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.sm\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.sm\:rounded-tl-full{border-top-left-radius:9999px}.sm\:rounded-tr-full{border-top-right-radius:9999px}.sm\:rounded-br-full{border-bottom-right-radius:9999px}.sm\:rounded-bl-full{border-bottom-left-radius:9999px}.sm\:border-solid{border-style:solid}.sm\:border-dashed{border-style:dashed}.sm\:border-dotted{border-style:dotted}.sm\:border-double{border-style:double}.sm\:border-none{border-style:none}.sm\:border-0{border-width:0}.sm\:border-2{border-width:2px}.sm\:border-4{border-width:4px}.sm\:border-8{border-width:8px}.sm\:border{border-width:1px}.sm\:border-t-0{border-top-width:0}.sm\:border-r-0{border-right-width:0}.sm\:border-b-0{border-bottom-width:0}.sm\:border-l-0{border-left-width:0}.sm\:border-t-2{border-top-width:2px}.sm\:border-r-2{border-right-width:2px}.sm\:border-b-2{border-bottom-width:2px}.sm\:border-l-2{border-left-width:2px}.sm\:border-t-4{border-top-width:4px}.sm\:border-r-4{border-right-width:4px}.sm\:border-b-4{border-bottom-width:4px}.sm\:border-l-4{border-left-width:4px}.sm\:border-t-8{border-top-width:8px}.sm\:border-r-8{border-right-width:8px}.sm\:border-b-8{border-bottom-width:8px}.sm\:border-l-8{border-left-width:8px}.sm\:border-t{border-top-width:1px}.sm\:border-r{border-right-width:1px}.sm\:border-b{border-bottom-width:1px}.sm\:border-l{border-left-width:1px}.sm\:box-border{box-sizing:border-box}.sm\:box-content{box-sizing:content-box}.sm\:cursor-auto{cursor:auto}.sm\:cursor-default{cursor:default}.sm\:cursor-pointer{cursor:pointer}.sm\:cursor-wait{cursor:wait}.sm\:cursor-text{cursor:text}.sm\:cursor-move{cursor:move}.sm\:cursor-not-allowed{cursor:not-allowed}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:table{display:table}.sm\:table-caption{display:table-caption}.sm\:table-cell{display:table-cell}.sm\:table-column{display:table-column}.sm\:table-column-group{display:table-column-group}.sm\:table-footer-group{display:table-footer-group}.sm\:table-header-group{display:table-header-group}.sm\:table-row-group{display:table-row-group}.sm\:table-row{display:table-row}.sm\:flow-root{display:flow-root}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:contents{display:contents}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-col{flex-direction:column}.sm\:flex-col-reverse{flex-direction:column-reverse}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:flex-no-wrap{flex-wrap:nowrap}.sm\:place-items-auto{place-items:auto}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch}.sm\:place-content-center{place-content:center}.sm\:place-content-start{place-content:start}.sm\:place-content-end{place-content:end}.sm\:place-content-between{place-content:space-between}.sm\:place-content-around{place-content:space-around}.sm\:place-content-evenly{place-content:space-evenly}.sm\:place-content-stretch{place-content:stretch}.sm\:place-self-auto{place-self:auto}.sm\:place-self-start{place-self:start}.sm\:place-self-end{place-self:end}.sm\:place-self-center{place-self:center}.sm\:place-self-stretch{place-self:stretch}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-baseline{align-items:baseline}.sm\:items-stretch{align-items:stretch}.sm\:content-center{align-content:center}.sm\:content-start{align-content:flex-start}.sm\:content-end{align-content:flex-end}.sm\:content-between{align-content:space-between}.sm\:content-around{align-content:space-around}.sm\:content-evenly{align-content:space-evenly}.sm\:self-auto{align-self:auto}.sm\:self-start{align-self:flex-start}.sm\:self-end{align-self:flex-end}.sm\:self-center{align-self:center}.sm\:self-stretch{align-self:stretch}.sm\:justify-items-auto{justify-items:auto}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-around{justify-content:space-around}.sm\:justify-evenly{justify-content:space-evenly}.sm\:justify-self-auto{justify-self:auto}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:justify-self-stretch{justify-self:stretch}.sm\:flex-1{flex:1 1 0%}.sm\:flex-auto{flex:1 1 auto}.sm\:flex-initial{flex:0 1 auto}.sm\:flex-none{flex:none}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink{flex-shrink:1}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-6{order:6}.sm\:order-7{order:7}.sm\:order-8{order:8}.sm\:order-9{order:9}.sm\:order-10{order:10}.sm\:order-11{order:11}.sm\:order-12{order:12}.sm\:order-first{order:-9999}.sm\:order-last{order:9999}.sm\:order-none{order:0}.sm\:float-right{float:right}.sm\:float-left{float:left}.sm\:float-none{float:none}.sm\:clearfix:after{content:"";display:table;clear:both}.sm\:clear-left{clear:left}.sm\:clear-right{clear:right}.sm\:clear-both{clear:both}.sm\:clear-none{clear:none}.sm\:font-sans{font-family: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}.sm\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.sm\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.sm\:font-hairline{font-weight:100}.sm\:font-thin{font-weight:200}.sm\:font-light{font-weight:300}.sm\:font-normal{font-weight:400}.sm\:font-medium{font-weight:500}.sm\:font-semibold{font-weight:600}.sm\:font-bold{font-weight:700}.sm\:font-extrabold{font-weight:800}.sm\:font-black{font-weight:900}.sm\:hover\:font-hairline:hover{font-weight:100}.sm\:hover\:font-thin:hover{font-weight:200}.sm\:hover\:font-light:hover{font-weight:300}.sm\:hover\:font-normal:hover{font-weight:400}.sm\:hover\:font-medium:hover{font-weight:500}.sm\:hover\:font-semibold:hover{font-weight:600}.sm\:hover\:font-bold:hover{font-weight:700}.sm\:hover\:font-extrabold:hover{font-weight:800}.sm\:hover\:font-black:hover{font-weight:900}.sm\:focus\:font-hairline:focus{font-weight:100}.sm\:focus\:font-thin:focus{font-weight:200}.sm\:focus\:font-light:focus{font-weight:300}.sm\:focus\:font-normal:focus{font-weight:400}.sm\:focus\:font-medium:focus{font-weight:500}.sm\:focus\:font-semibold:focus{font-weight:600}.sm\:focus\:font-bold:focus{font-weight:700}.sm\:focus\:font-extrabold:focus{font-weight:800}.sm\:focus\:font-black:focus{font-weight:900}.sm\:h-0{height:0}.sm\:h-1{height:.25rem}.sm\:h-2{height:.5rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-16{height:4rem}.sm\:h-20{height:5rem}.sm\:h-24{height:6rem}.sm\:h-32{height:8rem}.sm\:h-40{height:10rem}.sm\:h-48{height:12rem}.sm\:h-56{height:14rem}.sm\:h-64{height:16rem}.sm\:h-auto{height:auto}.sm\:h-px{height:1px}.sm\:h-full{height:100%}.sm\:h-screen{height:100vh}.sm\:text-xs{font-size:.75rem}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}.sm\:text-lg{font-size:1.125rem}.sm\:text-xl{font-size:1.25rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:text-4xl{font-size:2.25rem}.sm\:text-5xl{font-size:3rem}.sm\:text-6xl{font-size:4rem}.sm\:leading-3{line-height:.75rem}.sm\:leading-4{line-height:1rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-8{line-height:2rem}.sm\:leading-9{line-height:2.25rem}.sm\:leading-10{line-height:2.5rem}.sm\:leading-none{line-height:1}.sm\:leading-tight{line-height:1.25}.sm\:leading-snug{line-height:1.375}.sm\:leading-normal{line-height:1.5}.sm\:leading-relaxed{line-height:1.625}.sm\:leading-loose{line-height:2}.sm\:list-inside{list-style-position:inside}.sm\:list-outside{list-style-position:outside}.sm\:list-none{list-style-type:none}.sm\:list-disc{list-style-type:disc}.sm\:list-decimal{list-style-type:decimal}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-8{margin:2rem}.sm\:m-10{margin:2.5rem}.sm\:m-12{margin:3rem}.sm\:m-16{margin:4rem}.sm\:m-20{margin:5rem}.sm\:m-24{margin:6rem}.sm\:m-32{margin:8rem}.sm\:m-40{margin:10rem}.sm\:m-48{margin:12rem}.sm\:m-56{margin:14rem}.sm\:m-64{margin:16rem}.sm\:m-auto{margin:auto}.sm\:m-px{margin:1px}.sm\:-m-1{margin:-.25rem}.sm\:-m-2{margin:-.5rem}.sm\:-m-3{margin:-.75rem}.sm\:-m-4{margin:-1rem}.sm\:-m-5{margin:-1.25rem}.sm\:-m-6{margin:-1.5rem}.sm\:-m-8{margin:-2rem}.sm\:-m-10{margin:-2.5rem}.sm\:-m-12{margin:-3rem}.sm\:-m-16{margin:-4rem}.sm\:-m-20{margin:-5rem}.sm\:-m-24{margin:-6rem}.sm\:-m-32{margin:-8rem}.sm\:-m-40{margin:-10rem}.sm\:-m-48{margin:-12rem}.sm\:-m-56{margin:-14rem}.sm\:-m-64{margin:-16rem}.sm\:-m-px{margin:-1px}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-1{margin-top:.25rem;margin-bottom:.25rem}.sm\:mx-1{margin-left:.25rem;margin-right:.25rem}.sm\:my-2{margin-top:.5rem;margin-bottom:.5rem}.sm\:mx-2{margin-left:.5rem;margin-right:.5rem}.sm\:my-3{margin-top:.75rem;margin-bottom:.75rem}.sm\:mx-3{margin-left:.75rem;margin-right:.75rem}.sm\:my-4{margin-top:1rem;margin-bottom:1rem}.sm\:mx-4{margin-left:1rem;margin-right:1rem}.sm\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.sm\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.sm\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mx-8{margin-left:2rem;margin-right:2rem}.sm\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.sm\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mx-12{margin-left:3rem;margin-right:3rem}.sm\:my-16{margin-top:4rem;margin-bottom:4rem}.sm\:mx-16{margin-left:4rem;margin-right:4rem}.sm\:my-20{margin-top:5rem;margin-bottom:5rem}.sm\:mx-20{margin-left:5rem;margin-right:5rem}.sm\:my-24{margin-top:6rem;margin-bottom:6rem}.sm\:mx-24{margin-left:6rem;margin-right:6rem}.sm\:my-32{margin-top:8rem;margin-bottom:8rem}.sm\:mx-32{margin-left:8rem;margin-right:8rem}.sm\:my-40{margin-top:10rem;margin-bottom:10rem}.sm\:mx-40{margin-left:10rem;margin-right:10rem}.sm\:my-48{margin-top:12rem;margin-bottom:12rem}.sm\:mx-48{margin-left:12rem;margin-right:12rem}.sm\:my-56{margin-top:14rem;margin-bottom:14rem}.sm\:mx-56{margin-left:14rem;margin-right:14rem}.sm\:my-64{margin-top:16rem;margin-bottom:16rem}.sm\:mx-64{margin-left:16rem;margin-right:16rem}.sm\:my-auto{margin-top:auto;margin-bottom:auto}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-px{margin-top:1px;margin-bottom:1px}.sm\:mx-px{margin-left:1px;margin-right:1px}.sm\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.sm\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.sm\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sm\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.sm\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.sm\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.sm\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.sm\:-mx-4{margin-left:-1rem;margin-right:-1rem}.sm\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.sm\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.sm\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.sm\:-mx-8{margin-left:-2rem;margin-right:-2rem}.sm\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.sm\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.sm\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.sm\:-mx-12{margin-left:-3rem;margin-right:-3rem}.sm\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.sm\:-mx-16{margin-left:-4rem;margin-right:-4rem}.sm\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.sm\:-mx-20{margin-left:-5rem;margin-right:-5rem}.sm\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.sm\:-mx-24{margin-left:-6rem;margin-right:-6rem}.sm\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.sm\:-mx-32{margin-left:-8rem;margin-right:-8rem}.sm\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.sm\:-mx-40{margin-left:-10rem;margin-right:-10rem}.sm\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.sm\:-mx-48{margin-left:-12rem;margin-right:-12rem}.sm\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.sm\:-mx-56{margin-left:-14rem;margin-right:-14rem}.sm\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.sm\:-mx-64{margin-left:-16rem;margin-right:-16rem}.sm\:-my-px{margin-top:-1px;margin-bottom:-1px}.sm\:-mx-px{margin-left:-1px;margin-right:-1px}.sm\:mt-0{margin-top:0}.sm\:mr-0{margin-right:0}.sm\:mb-0{margin-bottom:0}.sm\:ml-0{margin-left:0}.sm\:mt-1{margin-top:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mb-1{margin-bottom:.25rem}.sm\:ml-1{margin-left:.25rem}.sm\:mt-2{margin-top:.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mb-2{margin-bottom:.5rem}.sm\:ml-2{margin-left:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mr-3{margin-right:.75rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:ml-3{margin-left:.75rem}.sm\:mt-4{margin-top:1rem}.sm\:mr-4{margin-right:1rem}.sm\:mb-4{margin-bottom:1rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:mr-5{margin-right:1.25rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:ml-5{margin-left:1.25rem}.sm\:mt-6{margin-top:1.5rem}.sm\:mr-6{margin-right:1.5rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-6{margin-left:1.5rem}.sm\:mt-8{margin-top:2rem}.sm\:mr-8{margin-right:2rem}.sm\:mb-8{margin-bottom:2rem}.sm\:ml-8{margin-left:2rem}.sm\:mt-10{margin-top:2.5rem}.sm\:mr-10{margin-right:2.5rem}.sm\:mb-10{margin-bottom:2.5rem}.sm\:ml-10{margin-left:2.5rem}.sm\:mt-12{margin-top:3rem}.sm\:mr-12{margin-right:3rem}.sm\:mb-12{margin-bottom:3rem}.sm\:ml-12{margin-left:3rem}.sm\:mt-16{margin-top:4rem}.sm\:mr-16{margin-right:4rem}.sm\:mb-16{margin-bottom:4rem}.sm\:ml-16{margin-left:4rem}.sm\:mt-20{margin-top:5rem}.sm\:mr-20{margin-right:5rem}.sm\:mb-20{margin-bottom:5rem}.sm\:ml-20{margin-left:5rem}.sm\:mt-24{margin-top:6rem}.sm\:mr-24{margin-right:6rem}.sm\:mb-24{margin-bottom:6rem}.sm\:ml-24{margin-left:6rem}.sm\:mt-32{margin-top:8rem}.sm\:mr-32{margin-right:8rem}.sm\:mb-32{margin-bottom:8rem}.sm\:ml-32{margin-left:8rem}.sm\:mt-40{margin-top:10rem}.sm\:mr-40{margin-right:10rem}.sm\:mb-40{margin-bottom:10rem}.sm\:ml-40{margin-left:10rem}.sm\:mt-48{margin-top:12rem}.sm\:mr-48{margin-right:12rem}.sm\:mb-48{margin-bottom:12rem}.sm\:ml-48{margin-left:12rem}.sm\:mt-56{margin-top:14rem}.sm\:mr-56{margin-right:14rem}.sm\:mb-56{margin-bottom:14rem}.sm\:ml-56{margin-left:14rem}.sm\:mt-64{margin-top:16rem}.sm\:mr-64{margin-right:16rem}.sm\:mb-64{margin-bottom:16rem}.sm\:ml-64{margin-left:16rem}.sm\:mt-auto{margin-top:auto}.sm\:mr-auto{margin-right:auto}.sm\:mb-auto{margin-bottom:auto}.sm\:ml-auto{margin-left:auto}.sm\:mt-px{margin-top:1px}.sm\:mr-px{margin-right:1px}.sm\:mb-px{margin-bottom:1px}.sm\:ml-px{margin-left:1px}.sm\:-mt-1{margin-top:-.25rem}.sm\:-mr-1{margin-right:-.25rem}.sm\:-mb-1{margin-bottom:-.25rem}.sm\:-ml-1{margin-left:-.25rem}.sm\:-mt-2{margin-top:-.5rem}.sm\:-mr-2{margin-right:-.5rem}.sm\:-mb-2{margin-bottom:-.5rem}.sm\:-ml-2{margin-left:-.5rem}.sm\:-mt-3{margin-top:-.75rem}.sm\:-mr-3{margin-right:-.75rem}.sm\:-mb-3{margin-bottom:-.75rem}.sm\:-ml-3{margin-left:-.75rem}.sm\:-mt-4{margin-top:-1rem}.sm\:-mr-4{margin-right:-1rem}.sm\:-mb-4{margin-bottom:-1rem}.sm\:-ml-4{margin-left:-1rem}.sm\:-mt-5{margin-top:-1.25rem}.sm\:-mr-5{margin-right:-1.25rem}.sm\:-mb-5{margin-bottom:-1.25rem}.sm\:-ml-5{margin-left:-1.25rem}.sm\:-mt-6{margin-top:-1.5rem}.sm\:-mr-6{margin-right:-1.5rem}.sm\:-mb-6{margin-bottom:-1.5rem}.sm\:-ml-6{margin-left:-1.5rem}.sm\:-mt-8{margin-top:-2rem}.sm\:-mr-8{margin-right:-2rem}.sm\:-mb-8{margin-bottom:-2rem}.sm\:-ml-8{margin-left:-2rem}.sm\:-mt-10{margin-top:-2.5rem}.sm\:-mr-10{margin-right:-2.5rem}.sm\:-mb-10{margin-bottom:-2.5rem}.sm\:-ml-10{margin-left:-2.5rem}.sm\:-mt-12{margin-top:-3rem}.sm\:-mr-12{margin-right:-3rem}.sm\:-mb-12{margin-bottom:-3rem}.sm\:-ml-12{margin-left:-3rem}.sm\:-mt-16{margin-top:-4rem}.sm\:-mr-16{margin-right:-4rem}.sm\:-mb-16{margin-bottom:-4rem}.sm\:-ml-16{margin-left:-4rem}.sm\:-mt-20{margin-top:-5rem}.sm\:-mr-20{margin-right:-5rem}.sm\:-mb-20{margin-bottom:-5rem}.sm\:-ml-20{margin-left:-5rem}.sm\:-mt-24{margin-top:-6rem}.sm\:-mr-24{margin-right:-6rem}.sm\:-mb-24{margin-bottom:-6rem}.sm\:-ml-24{margin-left:-6rem}.sm\:-mt-32{margin-top:-8rem}.sm\:-mr-32{margin-right:-8rem}.sm\:-mb-32{margin-bottom:-8rem}.sm\:-ml-32{margin-left:-8rem}.sm\:-mt-40{margin-top:-10rem}.sm\:-mr-40{margin-right:-10rem}.sm\:-mb-40{margin-bottom:-10rem}.sm\:-ml-40{margin-left:-10rem}.sm\:-mt-48{margin-top:-12rem}.sm\:-mr-48{margin-right:-12rem}.sm\:-mb-48{margin-bottom:-12rem}.sm\:-ml-48{margin-left:-12rem}.sm\:-mt-56{margin-top:-14rem}.sm\:-mr-56{margin-right:-14rem}.sm\:-mb-56{margin-bottom:-14rem}.sm\:-ml-56{margin-left:-14rem}.sm\:-mt-64{margin-top:-16rem}.sm\:-mr-64{margin-right:-16rem}.sm\:-mb-64{margin-bottom:-16rem}.sm\:-ml-64{margin-left:-16rem}.sm\:-mt-px{margin-top:-1px}.sm\:-mr-px{margin-right:-1px}.sm\:-mb-px{margin-bottom:-1px}.sm\:-ml-px{margin-left:-1px}.sm\:max-h-full{max-height:100%}.sm\:max-h-screen{max-height:100vh}.sm\:max-w-none{max-width:none}.sm\:max-w-xs{max-width:20rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-xl{max-width:36rem}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-5xl{max-width:64rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-full{max-width:100%}.sm\:max-w-screen-xs{max-width:360px}.sm\:max-w-screen-sm{max-width:640px}.sm\:max-w-screen-md{max-width:768px}.sm\:max-w-screen-lg{max-width:1024px}.sm\:max-w-screen-xl{max-width:1280px}.sm\:max-w-screen-xxl{max-width:1480px}.sm\:min-h-0{min-height:0}.sm\:min-h-full{min-height:100%}.sm\:min-h-screen{min-height:100vh}.sm\:min-w-0{min-width:0}.sm\:min-w-full{min-width:100%}.sm\:object-contain{-o-object-fit:contain;object-fit:contain}.sm\:object-cover{-o-object-fit:cover;object-fit:cover}.sm\:object-fill{-o-object-fit:fill;object-fit:fill}.sm\:object-none{-o-object-fit:none;object-fit:none}.sm\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.sm\:object-bottom{-o-object-position:bottom;object-position:bottom}.sm\:object-center{-o-object-position:center;object-position:center}.sm\:object-left{-o-object-position:left;object-position:left}.sm\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.sm\:object-left-top{-o-object-position:left top;object-position:left top}.sm\:object-right{-o-object-position:right;object-position:right}.sm\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.sm\:object-right-top{-o-object-position:right top;object-position:right top}.sm\:object-top{-o-object-position:top;object-position:top}.sm\:opacity-0{opacity:0}.sm\:opacity-25{opacity:.25}.sm\:opacity-50{opacity:.5}.sm\:opacity-75{opacity:.75}.sm\:opacity-100{opacity:1}.sm\:hover\:opacity-0:hover{opacity:0}.sm\:hover\:opacity-25:hover{opacity:.25}.sm\:hover\:opacity-50:hover{opacity:.5}.sm\:hover\:opacity-75:hover{opacity:.75}.sm\:hover\:opacity-100:hover{opacity:1}.sm\:focus\:opacity-0:focus{opacity:0}.sm\:focus\:opacity-25:focus{opacity:.25}.sm\:focus\:opacity-50:focus{opacity:.5}.sm\:focus\:opacity-75:focus{opacity:.75}.sm\:focus\:opacity-100:focus{opacity:1}.sm\:outline-none{outline:2px solid transparent;outline-offset:2px}.sm\:outline-white{outline:2px dotted #fff;outline-offset:2px}.sm\:outline-black{outline:2px dotted #000;outline-offset:2px}.sm\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.sm\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.sm\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.sm\:overflow-auto{overflow:auto}.sm\:overflow-hidden{overflow:hidden}.sm\:overflow-visible{overflow:visible}.sm\:overflow-scroll{overflow:scroll}.sm\:overflow-x-auto{overflow-x:auto}.sm\:overflow-y-auto{overflow-y:auto}.sm\:overflow-x-hidden{overflow-x:hidden}.sm\:overflow-y-hidden{overflow-y:hidden}.sm\:overflow-x-visible{overflow-x:visible}.sm\:overflow-y-visible{overflow-y:visible}.sm\:overflow-x-scroll{overflow-x:scroll}.sm\:overflow-y-scroll{overflow-y:scroll}.sm\:scrolling-touch{-webkit-overflow-scrolling:touch}.sm\:scrolling-auto{-webkit-overflow-scrolling:auto}.sm\:overscroll-auto{overscroll-behavior:auto}.sm\:overscroll-contain{overscroll-behavior:contain}.sm\:overscroll-none{overscroll-behavior:none}.sm\:overscroll-y-auto{overscroll-behavior-y:auto}.sm\:overscroll-y-contain{overscroll-behavior-y:contain}.sm\:overscroll-y-none{overscroll-behavior-y:none}.sm\:overscroll-x-auto{overscroll-behavior-x:auto}.sm\:overscroll-x-contain{overscroll-behavior-x:contain}.sm\:overscroll-x-none{overscroll-behavior-x:none}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}.sm\:p-16{padding:4rem}.sm\:p-20{padding:5rem}.sm\:p-24{padding:6rem}.sm\:p-32{padding:8rem}.sm\:p-40{padding:10rem}.sm\:p-48{padding:12rem}.sm\:p-56{padding:14rem}.sm\:p-64{padding:16rem}.sm\:p-px{padding:1px}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:px-0{padding-left:0;padding-right:0}.sm\:py-1{padding-top:.25rem;padding-bottom:.25rem}.sm\:px-1{padding-left:.25rem;padding-right:.25rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:px-20{padding-left:5rem;padding-right:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:px-24{padding-left:6rem;padding-right:6rem}.sm\:py-32{padding-top:8rem;padding-bottom:8rem}.sm\:px-32{padding-left:8rem;padding-right:8rem}.sm\:py-40{padding-top:10rem;padding-bottom:10rem}.sm\:px-40{padding-left:10rem;padding-right:10rem}.sm\:py-48{padding-top:12rem;padding-bottom:12rem}.sm\:px-48{padding-left:12rem;padding-right:12rem}.sm\:py-56{padding-top:14rem;padding-bottom:14rem}.sm\:px-56{padding-left:14rem;padding-right:14rem}.sm\:py-64{padding-top:16rem;padding-bottom:16rem}.sm\:px-64{padding-left:16rem;padding-right:16rem}.sm\:py-px{padding-top:1px;padding-bottom:1px}.sm\:px-px{padding-left:1px;padding-right:1px}.sm\:pt-0{padding-top:0}.sm\:pr-0{padding-right:0}.sm\:pb-0{padding-bottom:0}.sm\:pl-0{padding-left:0}.sm\:pt-1{padding-top:.25rem}.sm\:pr-1{padding-right:.25rem}.sm\:pb-1{padding-bottom:.25rem}.sm\:pl-1{padding-left:.25rem}.sm\:pt-2{padding-top:.5rem}.sm\:pr-2{padding-right:.5rem}.sm\:pb-2{padding-bottom:.5rem}.sm\:pl-2{padding-left:.5rem}.sm\:pt-3{padding-top:.75rem}.sm\:pr-3{padding-right:.75rem}.sm\:pb-3{padding-bottom:.75rem}.sm\:pl-3{padding-left:.75rem}.sm\:pt-4{padding-top:1rem}.sm\:pr-4{padding-right:1rem}.sm\:pb-4{padding-bottom:1rem}.sm\:pl-4{padding-left:1rem}.sm\:pt-5{padding-top:1.25rem}.sm\:pr-5{padding-right:1.25rem}.sm\:pb-5{padding-bottom:1.25rem}.sm\:pl-5{padding-left:1.25rem}.sm\:pt-6{padding-top:1.5rem}.sm\:pr-6{padding-right:1.5rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pl-6{padding-left:1.5rem}.sm\:pt-8{padding-top:2rem}.sm\:pr-8{padding-right:2rem}.sm\:pb-8{padding-bottom:2rem}.sm\:pl-8{padding-left:2rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pr-10{padding-right:2.5rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:pl-10{padding-left:2.5rem}.sm\:pt-12{padding-top:3rem}.sm\:pr-12{padding-right:3rem}.sm\:pb-12{padding-bottom:3rem}.sm\:pl-12{padding-left:3rem}.sm\:pt-16{padding-top:4rem}.sm\:pr-16{padding-right:4rem}.sm\:pb-16{padding-bottom:4rem}.sm\:pl-16{padding-left:4rem}.sm\:pt-20{padding-top:5rem}.sm\:pr-20{padding-right:5rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pl-20{padding-left:5rem}.sm\:pt-24{padding-top:6rem}.sm\:pr-24{padding-right:6rem}.sm\:pb-24{padding-bottom:6rem}.sm\:pl-24{padding-left:6rem}.sm\:pt-32{padding-top:8rem}.sm\:pr-32{padding-right:8rem}.sm\:pb-32{padding-bottom:8rem}.sm\:pl-32{padding-left:8rem}.sm\:pt-40{padding-top:10rem}.sm\:pr-40{padding-right:10rem}.sm\:pb-40{padding-bottom:10rem}.sm\:pl-40{padding-left:10rem}.sm\:pt-48{padding-top:12rem}.sm\:pr-48{padding-right:12rem}.sm\:pb-48{padding-bottom:12rem}.sm\:pl-48{padding-left:12rem}.sm\:pt-56{padding-top:14rem}.sm\:pr-56{padding-right:14rem}.sm\:pb-56{padding-bottom:14rem}.sm\:pl-56{padding-left:14rem}.sm\:pt-64{padding-top:16rem}.sm\:pr-64{padding-right:16rem}.sm\:pb-64{padding-bottom:16rem}.sm\:pl-64{padding-left:16rem}.sm\:pt-px{padding-top:1px}.sm\:pr-px{padding-right:1px}.sm\:pb-px{padding-bottom:1px}.sm\:pl-px{padding-left:1px}.sm\:placeholder-transparent::placeholder{color:transparent}.sm\:placeholder-current::placeholder{color:currentColor}.sm\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.sm\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.sm\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.sm\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.sm\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.sm\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.sm\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.sm\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.sm\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.sm\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.sm\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.sm\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.sm\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.sm\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.sm\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.sm\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.sm\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.sm\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.sm\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.sm\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.sm\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.sm\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.sm\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.sm\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.sm\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.sm\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.sm\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.sm\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.sm\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.sm\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.sm\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.sm\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.sm\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.sm\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.sm\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.sm\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.sm\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.sm\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.sm\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.sm\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.sm\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.sm\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.sm\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.sm\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.sm\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.sm\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.sm\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.sm\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.sm\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.sm\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.sm\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.sm\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.sm\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.sm\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.sm\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.sm\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.sm\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.sm\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.sm\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.sm\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.sm\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.sm\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.sm\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.sm\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.sm\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.sm\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.sm\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.sm\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.sm\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.sm\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.sm\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.sm\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.sm\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.sm\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.sm\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.sm\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.sm\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.sm\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.sm\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.sm\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.sm\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.sm\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.sm\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.sm\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.sm\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.sm\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.sm\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.sm\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.sm\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.sm\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.sm\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.sm\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.sm\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.sm\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.sm\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.sm\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.sm\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.sm\:focus\:placeholder-current:focus::placeholder{color:currentColor}.sm\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.sm\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.sm\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.sm\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.sm\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.sm\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.sm\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.sm\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.sm\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.sm\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.sm\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.sm\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.sm\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.sm\:pointer-events-none{pointer-events:none}.sm\:pointer-events-auto{pointer-events:auto}.sm\:static{position:static}.sm\:fixed{position:fixed}.sm\:absolute{position:absolute}.sm\:relative{position:relative}.sm\:sticky{position:sticky}.sm\:inset-0{top:0;right:0;bottom:0;left:0}.sm\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.sm\:inset-y-0{top:0;bottom:0}.sm\:inset-x-0{right:0;left:0}.sm\:inset-y-auto{top:auto;bottom:auto}.sm\:inset-x-auto{right:auto;left:auto}.sm\:top-0{top:0}.sm\:right-0{right:0}.sm\:bottom-0{bottom:0}.sm\:left-0{left:0}.sm\:top-auto{top:auto}.sm\:right-auto{right:auto}.sm\:bottom-auto{bottom:auto}.sm\:left-auto{left:auto}.sm\:resize-none{resize:none}.sm\:resize-y{resize:vertical}.sm\:resize-x{resize:horizontal}.sm\:resize{resize:both}.sm\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:shadow-none{box-shadow:none}.sm\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:hover\:shadow-none:hover{box-shadow:none}.sm\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:focus\:shadow-none:focus{box-shadow:none}.sm\:fill-current{fill:currentColor}.sm\:stroke-current{stroke:currentColor}.sm\:stroke-0{stroke-width:0}.sm\:stroke-1{stroke-width:1}.sm\:stroke-2{stroke-width:2}.sm\:table-auto{table-layout:auto}.sm\:table-fixed{table-layout:fixed}.sm\:text-left{text-align:left}.sm\:text-center{text-align:center}.sm\:text-right{text-align:right}.sm\:text-justify{text-align:justify}.sm\:text-transparent{color:transparent}.sm\:text-current{color:currentColor}.sm\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:hover\:text-transparent:hover{color:transparent}.sm\:hover\:text-current:hover{color:currentColor}.sm\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:focus\:text-transparent:focus{color:transparent}.sm\:focus\:text-current:focus{color:currentColor}.sm\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:text-opacity-0{--text-opacity:0}.sm\:text-opacity-25{--text-opacity:0.25}.sm\:text-opacity-50{--text-opacity:0.5}.sm\:text-opacity-75{--text-opacity:0.75}.sm\:text-opacity-100{--text-opacity:1}.sm\:hover\:text-opacity-0:hover{--text-opacity:0}.sm\:hover\:text-opacity-25:hover{--text-opacity:0.25}.sm\:hover\:text-opacity-50:hover{--text-opacity:0.5}.sm\:hover\:text-opacity-75:hover{--text-opacity:0.75}.sm\:hover\:text-opacity-100:hover{--text-opacity:1}.sm\:focus\:text-opacity-0:focus{--text-opacity:0}.sm\:focus\:text-opacity-25:focus{--text-opacity:0.25}.sm\:focus\:text-opacity-50:focus{--text-opacity:0.5}.sm\:focus\:text-opacity-75:focus{--text-opacity:0.75}.sm\:focus\:text-opacity-100:focus{--text-opacity:1}.sm\:italic{font-style:italic}.sm\:not-italic{font-style:normal}.sm\:uppercase{text-transform:uppercase}.sm\:lowercase{text-transform:lowercase}.sm\:capitalize{text-transform:capitalize}.sm\:normal-case{text-transform:none}.sm\:underline{text-decoration:underline}.sm\:line-through{text-decoration:line-through}.sm\:no-underline{text-decoration:none}.sm\:hover\:underline:hover{text-decoration:underline}.sm\:hover\:line-through:hover{text-decoration:line-through}.sm\:hover\:no-underline:hover{text-decoration:none}.sm\:focus\:underline:focus{text-decoration:underline}.sm\:focus\:line-through:focus{text-decoration:line-through}.sm\:focus\:no-underline:focus{text-decoration:none}.sm\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sm\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.sm\:diagonal-fractions,.sm\:lining-nums,.sm\:oldstyle-nums,.sm\:ordinal,.sm\:proportional-nums,.sm\:slashed-zero,.sm\:stacked-fractions,.sm\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.sm\:normal-nums{font-variant-numeric:normal}.sm\:ordinal{--font-variant-numeric-ordinal:ordinal}.sm\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.sm\:lining-nums{--font-variant-numeric-figure:lining-nums}.sm\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.sm\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.sm\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.sm\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.sm\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.sm\:tracking-tighter{letter-spacing:-.05em}.sm\:tracking-tight{letter-spacing:-.025em}.sm\:tracking-normal{letter-spacing:0}.sm\:tracking-wide{letter-spacing:.025em}.sm\:tracking-wider{letter-spacing:.05em}.sm\:tracking-widest{letter-spacing:.1em}.sm\:select-none{-webkit-user-select:none;user-select:none}.sm\:select-text{-webkit-user-select:text;user-select:text}.sm\:select-all{-webkit-user-select:all;user-select:all}.sm\:select-auto{-webkit-user-select:auto;user-select:auto}.sm\:align-baseline{vertical-align:baseline}.sm\:align-top{vertical-align:top}.sm\:align-middle{vertical-align:middle}.sm\:align-bottom{vertical-align:bottom}.sm\:align-text-top{vertical-align:text-top}.sm\:align-text-bottom{vertical-align:text-bottom}.sm\:visible{visibility:visible}.sm\:invisible{visibility:hidden}.sm\:whitespace-normal{white-space:normal}.sm\:whitespace-no-wrap{white-space:nowrap}.sm\:whitespace-pre{white-space:pre}.sm\:whitespace-pre-line{white-space:pre-line}.sm\:whitespace-pre-wrap{white-space:pre-wrap}.sm\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.sm\:break-words{word-wrap:break-word;overflow-wrap:break-word}.sm\:break-all{word-break:break-all}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-0{width:0}.sm\:w-1{width:.25rem}.sm\:w-2{width:.5rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-10{width:2.5rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:w-20{width:5rem}.sm\:w-24{width:6rem}.sm\:w-32{width:8rem}.sm\:w-40{width:10rem}.sm\:w-48{width:12rem}.sm\:w-56{width:14rem}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-px{width:1px}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-1\/4{width:25%}.sm\:w-2\/4{width:50%}.sm\:w-3\/4{width:75%}.sm\:w-1\/5{width:20%}.sm\:w-2\/5{width:40%}.sm\:w-3\/5{width:60%}.sm\:w-4\/5{width:80%}.sm\:w-1\/6{width:16.666667%}.sm\:w-2\/6{width:33.333333%}.sm\:w-3\/6{width:50%}.sm\:w-4\/6{width:66.666667%}.sm\:w-5\/6{width:83.333333%}.sm\:w-1\/12{width:8.333333%}.sm\:w-2\/12{width:16.666667%}.sm\:w-3\/12{width:25%}.sm\:w-4\/12{width:33.333333%}.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:w-7\/12{width:58.333333%}.sm\:w-8\/12{width:66.666667%}.sm\:w-9\/12{width:75%}.sm\:w-10\/12{width:83.333333%}.sm\:w-11\/12{width:91.666667%}.sm\:w-full{width:100%}.sm\:w-screen{width:100vw}.sm\:z-0{z-index:0}.sm\:z-10{z-index:10}.sm\:z-20{z-index:20}.sm\:z-30{z-index:30}.sm\:z-40{z-index:40}.sm\:z-50{z-index:50}.sm\:z-auto{z-index:auto}.sm\:gap-0{grid-gap:0;gap:0}.sm\:gap-1{grid-gap:.25rem;gap:.25rem}.sm\:gap-2{grid-gap:.5rem;gap:.5rem}.sm\:gap-3{grid-gap:.75rem;gap:.75rem}.sm\:gap-4{grid-gap:1rem;gap:1rem}.sm\:gap-5{grid-gap:1.25rem;gap:1.25rem}.sm\:gap-6{grid-gap:1.5rem;gap:1.5rem}.sm\:gap-8{grid-gap:2rem;gap:2rem}.sm\:gap-10{grid-gap:2.5rem;gap:2.5rem}.sm\:gap-12{grid-gap:3rem;gap:3rem}.sm\:gap-16{grid-gap:4rem;gap:4rem}.sm\:gap-20{grid-gap:5rem;gap:5rem}.sm\:gap-24{grid-gap:6rem;gap:6rem}.sm\:gap-32{grid-gap:8rem;gap:8rem}.sm\:gap-40{grid-gap:10rem;gap:10rem}.sm\:gap-48{grid-gap:12rem;gap:12rem}.sm\:gap-56{grid-gap:14rem;gap:14rem}.sm\:gap-64{grid-gap:16rem;gap:16rem}.sm\:gap-px{grid-gap:1px;gap:1px}.sm\:col-gap-0{grid-column-gap:0;column-gap:0}.sm\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.sm\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.sm\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.sm\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.sm\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.sm\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.sm\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.sm\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.sm\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.sm\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.sm\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.sm\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.sm\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.sm\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.sm\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.sm\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.sm\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.sm\:col-gap-px{grid-column-gap:1px;column-gap:1px}.sm\:gap-x-0{grid-column-gap:0;column-gap:0}.sm\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.sm\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.sm\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.sm\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.sm\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.sm\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.sm\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.sm\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.sm\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.sm\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.sm\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.sm\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.sm\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.sm\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.sm\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.sm\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.sm\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.sm\:gap-x-px{grid-column-gap:1px;column-gap:1px}.sm\:row-gap-0{grid-row-gap:0;row-gap:0}.sm\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.sm\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.sm\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.sm\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.sm\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.sm\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.sm\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.sm\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.sm\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.sm\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.sm\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.sm\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.sm\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.sm\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.sm\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.sm\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.sm\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.sm\:row-gap-px{grid-row-gap:1px;row-gap:1px}.sm\:gap-y-0{grid-row-gap:0;row-gap:0}.sm\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.sm\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.sm\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.sm\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.sm\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.sm\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.sm\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.sm\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.sm\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.sm\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.sm\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.sm\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.sm\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.sm\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.sm\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.sm\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.sm\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.sm\:gap-y-px{grid-row-gap:1px;row-gap:1px}.sm\:grid-flow-row{grid-auto-flow:row}.sm\:grid-flow-col{grid-auto-flow:column}.sm\:grid-flow-row-dense{grid-auto-flow:row dense}.sm\:grid-flow-col-dense{grid-auto-flow:column dense}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.sm\:grid-cols-none{grid-template-columns:none}.sm\:auto-cols-auto{grid-auto-columns:auto}.sm\:auto-cols-min{grid-auto-columns:min-content}.sm\:auto-cols-max{grid-auto-columns:max-content}.sm\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.sm\:col-auto{grid-column:auto}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:col-span-full{grid-column:1/-1}.sm\:col-start-1{grid-column-start:1}.sm\:col-start-2{grid-column-start:2}.sm\:col-start-3{grid-column-start:3}.sm\:col-start-4{grid-column-start:4}.sm\:col-start-5{grid-column-start:5}.sm\:col-start-6{grid-column-start:6}.sm\:col-start-7{grid-column-start:7}.sm\:col-start-8{grid-column-start:8}.sm\:col-start-9{grid-column-start:9}.sm\:col-start-10{grid-column-start:10}.sm\:col-start-11{grid-column-start:11}.sm\:col-start-12{grid-column-start:12}.sm\:col-start-13{grid-column-start:13}.sm\:col-start-auto{grid-column-start:auto}.sm\:col-end-1{grid-column-end:1}.sm\:col-end-2{grid-column-end:2}.sm\:col-end-3{grid-column-end:3}.sm\:col-end-4{grid-column-end:4}.sm\:col-end-5{grid-column-end:5}.sm\:col-end-6{grid-column-end:6}.sm\:col-end-7{grid-column-end:7}.sm\:col-end-8{grid-column-end:8}.sm\:col-end-9{grid-column-end:9}.sm\:col-end-10{grid-column-end:10}.sm\:col-end-11{grid-column-end:11}.sm\:col-end-12{grid-column-end:12}.sm\:col-end-13{grid-column-end:13}.sm\:col-end-auto{grid-column-end:auto}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.sm\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:grid-rows-none{grid-template-rows:none}.sm\:auto-rows-auto{grid-auto-rows:auto}.sm\:auto-rows-min{grid-auto-rows:min-content}.sm\:auto-rows-max{grid-auto-rows:max-content}.sm\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.sm\:row-auto{grid-row:auto}.sm\:row-span-1{grid-row:span 1/span 1}.sm\:row-span-2{grid-row:span 2/span 2}.sm\:row-span-3{grid-row:span 3/span 3}.sm\:row-span-4{grid-row:span 4/span 4}.sm\:row-span-5{grid-row:span 5/span 5}.sm\:row-span-6{grid-row:span 6/span 6}.sm\:row-span-full{grid-row:1/-1}.sm\:row-start-1{grid-row-start:1}.sm\:row-start-2{grid-row-start:2}.sm\:row-start-3{grid-row-start:3}.sm\:row-start-4{grid-row-start:4}.sm\:row-start-5{grid-row-start:5}.sm\:row-start-6{grid-row-start:6}.sm\:row-start-7{grid-row-start:7}.sm\:row-start-auto{grid-row-start:auto}.sm\:row-end-1{grid-row-end:1}.sm\:row-end-2{grid-row-end:2}.sm\:row-end-3{grid-row-end:3}.sm\:row-end-4{grid-row-end:4}.sm\:row-end-5{grid-row-end:5}.sm\:row-end-6{grid-row-end:6}.sm\:row-end-7{grid-row-end:7}.sm\:row-end-auto{grid-row-end:auto}.sm\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.sm\:transform-none{transform:none}.sm\:origin-center{transform-origin:center}.sm\:origin-top{transform-origin:top}.sm\:origin-top-right{transform-origin:top right}.sm\:origin-right{transform-origin:right}.sm\:origin-bottom-right{transform-origin:bottom right}.sm\:origin-bottom{transform-origin:bottom}.sm\:origin-bottom-left{transform-origin:bottom left}.sm\:origin-left{transform-origin:left}.sm\:origin-top-left{transform-origin:top left}.sm\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.sm\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.sm\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:scale-x-0{--transform-scale-x:0}.sm\:scale-x-50{--transform-scale-x:.5}.sm\:scale-x-75{--transform-scale-x:.75}.sm\:scale-x-90{--transform-scale-x:.9}.sm\:scale-x-95{--transform-scale-x:.95}.sm\:scale-x-100{--transform-scale-x:1}.sm\:scale-x-105{--transform-scale-x:1.05}.sm\:scale-x-110{--transform-scale-x:1.1}.sm\:scale-x-125{--transform-scale-x:1.25}.sm\:scale-x-150{--transform-scale-x:1.5}.sm\:scale-y-0{--transform-scale-y:0}.sm\:scale-y-50{--transform-scale-y:.5}.sm\:scale-y-75{--transform-scale-y:.75}.sm\:scale-y-90{--transform-scale-y:.9}.sm\:scale-y-95{--transform-scale-y:.95}.sm\:scale-y-100{--transform-scale-y:1}.sm\:scale-y-105{--transform-scale-y:1.05}.sm\:scale-y-110{--transform-scale-y:1.1}.sm\:scale-y-125{--transform-scale-y:1.25}.sm\:scale-y-150{--transform-scale-y:1.5}.sm\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.sm\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.sm\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:hover\:scale-x-0:hover{--transform-scale-x:0}.sm\:hover\:scale-x-50:hover{--transform-scale-x:.5}.sm\:hover\:scale-x-75:hover{--transform-scale-x:.75}.sm\:hover\:scale-x-90:hover{--transform-scale-x:.9}.sm\:hover\:scale-x-95:hover{--transform-scale-x:.95}.sm\:hover\:scale-x-100:hover{--transform-scale-x:1}.sm\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.sm\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.sm\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.sm\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.sm\:hover\:scale-y-0:hover{--transform-scale-y:0}.sm\:hover\:scale-y-50:hover{--transform-scale-y:.5}.sm\:hover\:scale-y-75:hover{--transform-scale-y:.75}.sm\:hover\:scale-y-90:hover{--transform-scale-y:.9}.sm\:hover\:scale-y-95:hover{--transform-scale-y:.95}.sm\:hover\:scale-y-100:hover{--transform-scale-y:1}.sm\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.sm\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.sm\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.sm\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.sm\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.sm\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.sm\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:focus\:scale-x-0:focus{--transform-scale-x:0}.sm\:focus\:scale-x-50:focus{--transform-scale-x:.5}.sm\:focus\:scale-x-75:focus{--transform-scale-x:.75}.sm\:focus\:scale-x-90:focus{--transform-scale-x:.9}.sm\:focus\:scale-x-95:focus{--transform-scale-x:.95}.sm\:focus\:scale-x-100:focus{--transform-scale-x:1}.sm\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.sm\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.sm\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.sm\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.sm\:focus\:scale-y-0:focus{--transform-scale-y:0}.sm\:focus\:scale-y-50:focus{--transform-scale-y:.5}.sm\:focus\:scale-y-75:focus{--transform-scale-y:.75}.sm\:focus\:scale-y-90:focus{--transform-scale-y:.9}.sm\:focus\:scale-y-95:focus{--transform-scale-y:.95}.sm\:focus\:scale-y-100:focus{--transform-scale-y:1}.sm\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.sm\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.sm\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.sm\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.sm\:rotate-0{--transform-rotate:0}.sm\:rotate-1{--transform-rotate:1deg}.sm\:rotate-2{--transform-rotate:2deg}.sm\:rotate-3{--transform-rotate:3deg}.sm\:rotate-6{--transform-rotate:6deg}.sm\:rotate-12{--transform-rotate:12deg}.sm\:rotate-45{--transform-rotate:45deg}.sm\:rotate-90{--transform-rotate:90deg}.sm\:rotate-180{--transform-rotate:180deg}.sm\:-rotate-180{--transform-rotate:-180deg}.sm\:-rotate-90{--transform-rotate:-90deg}.sm\:-rotate-45{--transform-rotate:-45deg}.sm\:-rotate-12{--transform-rotate:-12deg}.sm\:-rotate-6{--transform-rotate:-6deg}.sm\:-rotate-3{--transform-rotate:-3deg}.sm\:-rotate-2{--transform-rotate:-2deg}.sm\:-rotate-1{--transform-rotate:-1deg}.sm\:hover\:rotate-0:hover{--transform-rotate:0}.sm\:hover\:rotate-1:hover{--transform-rotate:1deg}.sm\:hover\:rotate-2:hover{--transform-rotate:2deg}.sm\:hover\:rotate-3:hover{--transform-rotate:3deg}.sm\:hover\:rotate-6:hover{--transform-rotate:6deg}.sm\:hover\:rotate-12:hover{--transform-rotate:12deg}.sm\:hover\:rotate-45:hover{--transform-rotate:45deg}.sm\:hover\:rotate-90:hover{--transform-rotate:90deg}.sm\:hover\:rotate-180:hover{--transform-rotate:180deg}.sm\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.sm\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.sm\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.sm\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.sm\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.sm\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.sm\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.sm\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.sm\:focus\:rotate-0:focus{--transform-rotate:0}.sm\:focus\:rotate-1:focus{--transform-rotate:1deg}.sm\:focus\:rotate-2:focus{--transform-rotate:2deg}.sm\:focus\:rotate-3:focus{--transform-rotate:3deg}.sm\:focus\:rotate-6:focus{--transform-rotate:6deg}.sm\:focus\:rotate-12:focus{--transform-rotate:12deg}.sm\:focus\:rotate-45:focus{--transform-rotate:45deg}.sm\:focus\:rotate-90:focus{--transform-rotate:90deg}.sm\:focus\:rotate-180:focus{--transform-rotate:180deg}.sm\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.sm\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.sm\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.sm\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.sm\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.sm\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.sm\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.sm\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.sm\:translate-x-0{--transform-translate-x:0}.sm\:translate-x-1{--transform-translate-x:0.25rem}.sm\:translate-x-2{--transform-translate-x:0.5rem}.sm\:translate-x-3{--transform-translate-x:0.75rem}.sm\:translate-x-4{--transform-translate-x:1rem}.sm\:translate-x-5{--transform-translate-x:1.25rem}.sm\:translate-x-6{--transform-translate-x:1.5rem}.sm\:translate-x-8{--transform-translate-x:2rem}.sm\:translate-x-10{--transform-translate-x:2.5rem}.sm\:translate-x-12{--transform-translate-x:3rem}.sm\:translate-x-16{--transform-translate-x:4rem}.sm\:translate-x-20{--transform-translate-x:5rem}.sm\:translate-x-24{--transform-translate-x:6rem}.sm\:translate-x-32{--transform-translate-x:8rem}.sm\:translate-x-40{--transform-translate-x:10rem}.sm\:translate-x-48{--transform-translate-x:12rem}.sm\:translate-x-56{--transform-translate-x:14rem}.sm\:translate-x-64{--transform-translate-x:16rem}.sm\:translate-x-px{--transform-translate-x:1px}.sm\:-translate-x-1{--transform-translate-x:-0.25rem}.sm\:-translate-x-2{--transform-translate-x:-0.5rem}.sm\:-translate-x-3{--transform-translate-x:-0.75rem}.sm\:-translate-x-4{--transform-translate-x:-1rem}.sm\:-translate-x-5{--transform-translate-x:-1.25rem}.sm\:-translate-x-6{--transform-translate-x:-1.5rem}.sm\:-translate-x-8{--transform-translate-x:-2rem}.sm\:-translate-x-10{--transform-translate-x:-2.5rem}.sm\:-translate-x-12{--transform-translate-x:-3rem}.sm\:-translate-x-16{--transform-translate-x:-4rem}.sm\:-translate-x-20{--transform-translate-x:-5rem}.sm\:-translate-x-24{--transform-translate-x:-6rem}.sm\:-translate-x-32{--transform-translate-x:-8rem}.sm\:-translate-x-40{--transform-translate-x:-10rem}.sm\:-translate-x-48{--transform-translate-x:-12rem}.sm\:-translate-x-56{--transform-translate-x:-14rem}.sm\:-translate-x-64{--transform-translate-x:-16rem}.sm\:-translate-x-px{--transform-translate-x:-1px}.sm\:-translate-x-full{--transform-translate-x:-100%}.sm\:-translate-x-1\/2{--transform-translate-x:-50%}.sm\:translate-x-1\/2{--transform-translate-x:50%}.sm\:translate-x-full{--transform-translate-x:100%}.sm\:translate-y-0{--transform-translate-y:0}.sm\:translate-y-1{--transform-translate-y:0.25rem}.sm\:translate-y-2{--transform-translate-y:0.5rem}.sm\:translate-y-3{--transform-translate-y:0.75rem}.sm\:translate-y-4{--transform-translate-y:1rem}.sm\:translate-y-5{--transform-translate-y:1.25rem}.sm\:translate-y-6{--transform-translate-y:1.5rem}.sm\:translate-y-8{--transform-translate-y:2rem}.sm\:translate-y-10{--transform-translate-y:2.5rem}.sm\:translate-y-12{--transform-translate-y:3rem}.sm\:translate-y-16{--transform-translate-y:4rem}.sm\:translate-y-20{--transform-translate-y:5rem}.sm\:translate-y-24{--transform-translate-y:6rem}.sm\:translate-y-32{--transform-translate-y:8rem}.sm\:translate-y-40{--transform-translate-y:10rem}.sm\:translate-y-48{--transform-translate-y:12rem}.sm\:translate-y-56{--transform-translate-y:14rem}.sm\:translate-y-64{--transform-translate-y:16rem}.sm\:translate-y-px{--transform-translate-y:1px}.sm\:-translate-y-1{--transform-translate-y:-0.25rem}.sm\:-translate-y-2{--transform-translate-y:-0.5rem}.sm\:-translate-y-3{--transform-translate-y:-0.75rem}.sm\:-translate-y-4{--transform-translate-y:-1rem}.sm\:-translate-y-5{--transform-translate-y:-1.25rem}.sm\:-translate-y-6{--transform-translate-y:-1.5rem}.sm\:-translate-y-8{--transform-translate-y:-2rem}.sm\:-translate-y-10{--transform-translate-y:-2.5rem}.sm\:-translate-y-12{--transform-translate-y:-3rem}.sm\:-translate-y-16{--transform-translate-y:-4rem}.sm\:-translate-y-20{--transform-translate-y:-5rem}.sm\:-translate-y-24{--transform-translate-y:-6rem}.sm\:-translate-y-32{--transform-translate-y:-8rem}.sm\:-translate-y-40{--transform-translate-y:-10rem}.sm\:-translate-y-48{--transform-translate-y:-12rem}.sm\:-translate-y-56{--transform-translate-y:-14rem}.sm\:-translate-y-64{--transform-translate-y:-16rem}.sm\:-translate-y-px{--transform-translate-y:-1px}.sm\:-translate-y-full{--transform-translate-y:-100%}.sm\:-translate-y-1\/2{--transform-translate-y:-50%}.sm\:translate-y-1\/2{--transform-translate-y:50%}.sm\:translate-y-full{--transform-translate-y:100%}.sm\:hover\:translate-x-0:hover{--transform-translate-x:0}.sm\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.sm\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.sm\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.sm\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.sm\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.sm\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.sm\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.sm\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.sm\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.sm\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.sm\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.sm\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.sm\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.sm\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.sm\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.sm\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.sm\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.sm\:hover\:translate-x-px:hover{--transform-translate-x:1px}.sm\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.sm\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.sm\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.sm\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.sm\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.sm\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.sm\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.sm\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.sm\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.sm\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.sm\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.sm\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.sm\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.sm\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.sm\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.sm\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.sm\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.sm\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.sm\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.sm\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.sm\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.sm\:hover\:translate-x-full:hover{--transform-translate-x:100%}.sm\:hover\:translate-y-0:hover{--transform-translate-y:0}.sm\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.sm\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.sm\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.sm\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.sm\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.sm\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.sm\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.sm\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.sm\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.sm\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.sm\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.sm\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.sm\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.sm\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.sm\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.sm\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.sm\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.sm\:hover\:translate-y-px:hover{--transform-translate-y:1px}.sm\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.sm\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.sm\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.sm\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.sm\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.sm\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.sm\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.sm\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.sm\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.sm\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.sm\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.sm\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.sm\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.sm\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.sm\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.sm\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.sm\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.sm\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.sm\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.sm\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.sm\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.sm\:hover\:translate-y-full:hover{--transform-translate-y:100%}.sm\:focus\:translate-x-0:focus{--transform-translate-x:0}.sm\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.sm\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.sm\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.sm\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.sm\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.sm\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.sm\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.sm\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.sm\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.sm\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.sm\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.sm\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.sm\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.sm\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.sm\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.sm\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.sm\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.sm\:focus\:translate-x-px:focus{--transform-translate-x:1px}.sm\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.sm\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.sm\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.sm\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.sm\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.sm\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.sm\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.sm\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.sm\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.sm\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.sm\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.sm\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.sm\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.sm\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.sm\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.sm\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.sm\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.sm\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.sm\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.sm\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.sm\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.sm\:focus\:translate-x-full:focus{--transform-translate-x:100%}.sm\:focus\:translate-y-0:focus{--transform-translate-y:0}.sm\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.sm\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.sm\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.sm\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.sm\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.sm\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.sm\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.sm\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.sm\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.sm\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.sm\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.sm\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.sm\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.sm\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.sm\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.sm\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.sm\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.sm\:focus\:translate-y-px:focus{--transform-translate-y:1px}.sm\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.sm\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.sm\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.sm\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.sm\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.sm\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.sm\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.sm\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.sm\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.sm\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.sm\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.sm\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.sm\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.sm\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.sm\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.sm\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.sm\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.sm\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.sm\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.sm\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.sm\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.sm\:focus\:translate-y-full:focus{--transform-translate-y:100%}.sm\:skew-x-0{--transform-skew-x:0}.sm\:skew-x-1{--transform-skew-x:1deg}.sm\:skew-x-2{--transform-skew-x:2deg}.sm\:skew-x-3{--transform-skew-x:3deg}.sm\:skew-x-6{--transform-skew-x:6deg}.sm\:skew-x-12{--transform-skew-x:12deg}.sm\:-skew-x-12{--transform-skew-x:-12deg}.sm\:-skew-x-6{--transform-skew-x:-6deg}.sm\:-skew-x-3{--transform-skew-x:-3deg}.sm\:-skew-x-2{--transform-skew-x:-2deg}.sm\:-skew-x-1{--transform-skew-x:-1deg}.sm\:skew-y-0{--transform-skew-y:0}.sm\:skew-y-1{--transform-skew-y:1deg}.sm\:skew-y-2{--transform-skew-y:2deg}.sm\:skew-y-3{--transform-skew-y:3deg}.sm\:skew-y-6{--transform-skew-y:6deg}.sm\:skew-y-12{--transform-skew-y:12deg}.sm\:-skew-y-12{--transform-skew-y:-12deg}.sm\:-skew-y-6{--transform-skew-y:-6deg}.sm\:-skew-y-3{--transform-skew-y:-3deg}.sm\:-skew-y-2{--transform-skew-y:-2deg}.sm\:-skew-y-1{--transform-skew-y:-1deg}.sm\:hover\:skew-x-0:hover{--transform-skew-x:0}.sm\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.sm\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.sm\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.sm\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.sm\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.sm\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.sm\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.sm\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.sm\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.sm\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.sm\:hover\:skew-y-0:hover{--transform-skew-y:0}.sm\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.sm\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.sm\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.sm\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.sm\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.sm\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.sm\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.sm\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.sm\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.sm\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.sm\:focus\:skew-x-0:focus{--transform-skew-x:0}.sm\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.sm\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.sm\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.sm\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.sm\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.sm\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.sm\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.sm\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.sm\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.sm\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.sm\:focus\:skew-y-0:focus{--transform-skew-y:0}.sm\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.sm\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.sm\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.sm\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.sm\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.sm\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.sm\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.sm\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.sm\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.sm\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.sm\:transition-none{transition-property:none}.sm\:transition-all{transition-property:all}.sm\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.sm\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.sm\:transition-opacity{transition-property:opacity}.sm\:transition-shadow{transition-property:box-shadow}.sm\:transition-transform{transition-property:transform}.sm\:ease-linear{transition-timing-function:linear}.sm\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.sm\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.sm\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sm\:duration-75{transition-duration:75ms}.sm\:duration-100{transition-duration:.1s}.sm\:duration-150{transition-duration:.15s}.sm\:duration-200{transition-duration:.2s}.sm\:duration-300{transition-duration:.3s}.sm\:duration-500{transition-duration:.5s}.sm\:duration-700{transition-duration:.7s}.sm\:duration-1000{transition-duration:1s}.sm\:delay-75{transition-delay:75ms}.sm\:delay-100{transition-delay:.1s}.sm\:delay-150{transition-delay:.15s}.sm\:delay-200{transition-delay:.2s}.sm\:delay-300{transition-delay:.3s}.sm\:delay-500{transition-delay:.5s}.sm\:delay-700{transition-delay:.7s}.sm\:delay-1000{transition-delay:1s}.sm\:animate-none{animation:none}.sm\:animate-spin{animation:spin 1s linear infinite}.sm\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.sm\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.sm\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:768px){.md\:container{width:100%}@media (min-width:360px){.md\:container{max-width:360px}}@media (min-width:640px){.md\:container{max-width:640px}}@media (min-width:768px){.md\:container{max-width:768px}}@media (min-width:1024px){.md\:container{max-width:1024px}}@media (min-width:1280px){.md\:container{max-width:1280px}}@media (min-width:1480px){.md\:container{max-width:1480px}}.md\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.md\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.md\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.md\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.md\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.md\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.md\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.md\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.md\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.md\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.md\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.md\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.md\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.md\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.md\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.md\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.md\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.md\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.md\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.md\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.md\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.md\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.md\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.md\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.md\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.md\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.md\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.md\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.md\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.md\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.md\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.md\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.md\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.md\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.md\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.md\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.md\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.md\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.md\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.md\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.md\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.md\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.md\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.md\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.md\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.md\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.md\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.md\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.md\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.md\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.md\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.md\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.md\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.md\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.md\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.md\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.md\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.md\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.md\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.md\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.md\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.md\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.md\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.md\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.md\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.md\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.md\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.md\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.md\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.md\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.md\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.md\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.md\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.md\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.md\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.md\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.md\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.md\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.md\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.md\:divide-transparent>:not(template)~:not(template){border-color:transparent}.md\:divide-current>:not(template)~:not(template){border-color:currentColor}.md\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.md\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.md\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.md\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.md\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.md\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.md\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.md\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.md\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.md\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.md\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.md\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.md\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.md\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.md\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.md\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.md\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.md\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.md\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.md\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.md\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.md\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.md\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.md\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.md\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.md\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.md\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.md\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.md\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.md\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.md\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.md\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.md\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.md\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.md\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.md\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.md\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.md\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.md\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.md\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.md\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.md\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.md\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.md\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.md\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.md\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.md\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.md\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.md\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.md\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.md\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.md\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.md\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.md\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.md\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.md\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.md\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.md\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.md\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.md\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.md\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.md\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.md\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.md\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.md\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.md\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.md\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.md\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.md\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.md\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.md\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.md\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.md\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.md\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.md\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.md\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.md\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.md\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.md\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.md\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.md\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.md\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.md\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.md\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.md\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.md\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.md\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.md\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.md\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.md\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.md\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.md\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.md\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.md\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.md\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.md\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.md\:divide-solid>:not(template)~:not(template){border-style:solid}.md\:divide-dashed>:not(template)~:not(template){border-style:dashed}.md\:divide-dotted>:not(template)~:not(template){border-style:dotted}.md\:divide-double>:not(template)~:not(template){border-style:double}.md\:divide-none>:not(template)~:not(template){border-style:none}.md\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.md\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.md\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.md\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.md\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.md\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.md\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.md\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.md\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.md\:appearance-none{-webkit-appearance:none;appearance:none}.md\:bg-fixed{background-attachment:fixed}.md\:bg-local{background-attachment:local}.md\:bg-scroll{background-attachment:scroll}.md\:bg-clip-border{background-clip:border-box}.md\:bg-clip-padding{background-clip:padding-box}.md\:bg-clip-content{background-clip:content-box}.md\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.md\:bg-transparent{background-color:transparent}.md\:bg-current{background-color:currentColor}.md\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:hover\:bg-transparent:hover{background-color:transparent}.md\:hover\:bg-current:hover{background-color:currentColor}.md\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:focus\:bg-transparent:focus{background-color:transparent}.md\:focus\:bg-current:focus{background-color:currentColor}.md\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:bg-none{background-image:none}.md\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.md\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.md\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.md\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.md\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.md\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.md\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.md\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.md\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:to-transparent{--gradient-to-color:transparent}.md\:to-current{--gradient-to-color:currentColor}.md\:to-black{--gradient-to-color:#000}.md\:to-white{--gradient-to-color:#fff}.md\:to-gray-100{--gradient-to-color:#f7fafc}.md\:to-gray-200{--gradient-to-color:#edf2f7}.md\:to-gray-300{--gradient-to-color:#e2e8f0}.md\:to-gray-400{--gradient-to-color:#cbd5e0}.md\:to-gray-500{--gradient-to-color:#a0aec0}.md\:to-gray-600{--gradient-to-color:#718096}.md\:to-gray-700{--gradient-to-color:#4a5568}.md\:to-gray-800{--gradient-to-color:#2d3748}.md\:to-gray-900{--gradient-to-color:#1a202c}.md\:to-red-100{--gradient-to-color:#fff5f5}.md\:to-red-200{--gradient-to-color:#fed7d7}.md\:to-red-300{--gradient-to-color:#feb2b2}.md\:to-red-400{--gradient-to-color:#fc8181}.md\:to-red-500{--gradient-to-color:#f56565}.md\:to-red-600{--gradient-to-color:#e53e3e}.md\:to-red-700{--gradient-to-color:#c53030}.md\:to-red-800{--gradient-to-color:#9b2c2c}.md\:to-red-900{--gradient-to-color:#742a2a}.md\:to-orange-100{--gradient-to-color:#fffaf0}.md\:to-orange-200{--gradient-to-color:#feebc8}.md\:to-orange-300{--gradient-to-color:#fbd38d}.md\:to-orange-400{--gradient-to-color:#f6ad55}.md\:to-orange-500{--gradient-to-color:#ed8936}.md\:to-orange-600{--gradient-to-color:#dd6b20}.md\:to-orange-700{--gradient-to-color:#c05621}.md\:to-orange-800{--gradient-to-color:#9c4221}.md\:to-orange-900{--gradient-to-color:#7b341e}.md\:to-yellow-100{--gradient-to-color:ivory}.md\:to-yellow-200{--gradient-to-color:#fefcbf}.md\:to-yellow-300{--gradient-to-color:#faf089}.md\:to-yellow-400{--gradient-to-color:#f6e05e}.md\:to-yellow-500{--gradient-to-color:#ecc94b}.md\:to-yellow-600{--gradient-to-color:#d69e2e}.md\:to-yellow-700{--gradient-to-color:#b7791f}.md\:to-yellow-800{--gradient-to-color:#975a16}.md\:to-yellow-900{--gradient-to-color:#744210}.md\:to-green-100{--gradient-to-color:#f0fff4}.md\:to-green-200{--gradient-to-color:#c6f6d5}.md\:to-green-300{--gradient-to-color:#9ae6b4}.md\:to-green-400{--gradient-to-color:#68d391}.md\:to-green-500{--gradient-to-color:#48bb78}.md\:to-green-600{--gradient-to-color:#38a169}.md\:to-green-700{--gradient-to-color:#2f855a}.md\:to-green-800{--gradient-to-color:#276749}.md\:to-green-900{--gradient-to-color:#22543d}.md\:to-teal-100{--gradient-to-color:#e6fffa}.md\:to-teal-200{--gradient-to-color:#b2f5ea}.md\:to-teal-300{--gradient-to-color:#81e6d9}.md\:to-teal-400{--gradient-to-color:#4fd1c5}.md\:to-teal-500{--gradient-to-color:#38b2ac}.md\:to-teal-600{--gradient-to-color:#319795}.md\:to-teal-700{--gradient-to-color:#2c7a7b}.md\:to-teal-800{--gradient-to-color:#285e61}.md\:to-teal-900{--gradient-to-color:#234e52}.md\:to-blue-100{--gradient-to-color:#ebf8ff}.md\:to-blue-200{--gradient-to-color:#bee3f8}.md\:to-blue-300{--gradient-to-color:#90cdf4}.md\:to-blue-400{--gradient-to-color:#63b3ed}.md\:to-blue-500{--gradient-to-color:#4299e1}.md\:to-blue-600{--gradient-to-color:#3182ce}.md\:to-blue-700{--gradient-to-color:#2b6cb0}.md\:to-blue-800{--gradient-to-color:#2c5282}.md\:to-blue-900{--gradient-to-color:#2a4365}.md\:to-indigo-100{--gradient-to-color:#ebf4ff}.md\:to-indigo-200{--gradient-to-color:#c3dafe}.md\:to-indigo-300{--gradient-to-color:#a3bffa}.md\:to-indigo-400{--gradient-to-color:#7f9cf5}.md\:to-indigo-500{--gradient-to-color:#667eea}.md\:to-indigo-600{--gradient-to-color:#5a67d8}.md\:to-indigo-700{--gradient-to-color:#4c51bf}.md\:to-indigo-800{--gradient-to-color:#434190}.md\:to-indigo-900{--gradient-to-color:#3c366b}.md\:to-purple-100{--gradient-to-color:#faf5ff}.md\:to-purple-200{--gradient-to-color:#e9d8fd}.md\:to-purple-300{--gradient-to-color:#d6bcfa}.md\:to-purple-400{--gradient-to-color:#b794f4}.md\:to-purple-500{--gradient-to-color:#9f7aea}.md\:to-purple-600{--gradient-to-color:#805ad5}.md\:to-purple-700{--gradient-to-color:#6b46c1}.md\:to-purple-800{--gradient-to-color:#553c9a}.md\:to-purple-900{--gradient-to-color:#44337a}.md\:to-pink-100{--gradient-to-color:#fff5f7}.md\:to-pink-200{--gradient-to-color:#fed7e2}.md\:to-pink-300{--gradient-to-color:#fbb6ce}.md\:to-pink-400{--gradient-to-color:#f687b3}.md\:to-pink-500{--gradient-to-color:#ed64a6}.md\:to-pink-600{--gradient-to-color:#d53f8c}.md\:to-pink-700{--gradient-to-color:#b83280}.md\:to-pink-800{--gradient-to-color:#97266d}.md\:to-pink-900{--gradient-to-color:#702459}.md\:to-primary{--gradient-to-color:#00d1ff}.md\:to-secondary{--gradient-to-color:#e077ff}.md\:to-greenish-blue{--gradient-to-color:#adffed}.md\:to-blue-gray{--gradient-to-color:#cfe1e6}.md\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:hover\:to-transparent:hover{--gradient-to-color:transparent}.md\:hover\:to-current:hover{--gradient-to-color:currentColor}.md\:hover\:to-black:hover{--gradient-to-color:#000}.md\:hover\:to-white:hover{--gradient-to-color:#fff}.md\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.md\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.md\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.md\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.md\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.md\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.md\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.md\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.md\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.md\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.md\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.md\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.md\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.md\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.md\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.md\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.md\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.md\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.md\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.md\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.md\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.md\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.md\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.md\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.md\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.md\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.md\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.md\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.md\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.md\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.md\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.md\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.md\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.md\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.md\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.md\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.md\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.md\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.md\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.md\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.md\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.md\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.md\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.md\:hover\:to-green-800:hover{--gradient-to-color:#276749}.md\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.md\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.md\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.md\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.md\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.md\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.md\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.md\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.md\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.md\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.md\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.md\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.md\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.md\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.md\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.md\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.md\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.md\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.md\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.md\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.md\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.md\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.md\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.md\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.md\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.md\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.md\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.md\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.md\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.md\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.md\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.md\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.md\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.md\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.md\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.md\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.md\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.md\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.md\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.md\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.md\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.md\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.md\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.md\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.md\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.md\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.md\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.md\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.md\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.md\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.md\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:focus\:to-transparent:focus{--gradient-to-color:transparent}.md\:focus\:to-current:focus{--gradient-to-color:currentColor}.md\:focus\:to-black:focus{--gradient-to-color:#000}.md\:focus\:to-white:focus{--gradient-to-color:#fff}.md\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.md\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.md\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.md\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.md\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.md\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.md\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.md\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.md\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.md\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.md\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.md\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.md\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.md\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.md\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.md\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.md\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.md\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.md\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.md\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.md\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.md\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.md\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.md\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.md\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.md\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.md\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.md\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.md\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.md\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.md\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.md\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.md\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.md\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.md\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.md\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.md\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.md\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.md\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.md\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.md\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.md\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.md\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.md\:focus\:to-green-800:focus{--gradient-to-color:#276749}.md\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.md\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.md\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.md\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.md\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.md\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.md\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.md\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.md\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.md\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.md\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.md\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.md\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.md\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.md\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.md\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.md\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.md\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.md\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.md\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.md\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.md\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.md\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.md\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.md\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.md\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.md\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.md\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.md\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.md\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.md\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.md\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.md\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.md\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.md\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.md\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.md\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.md\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.md\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.md\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.md\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.md\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.md\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.md\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.md\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.md\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.md\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.md\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.md\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.md\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.md\:bg-opacity-0{--bg-opacity:0}.md\:bg-opacity-25{--bg-opacity:0.25}.md\:bg-opacity-50{--bg-opacity:0.5}.md\:bg-opacity-75{--bg-opacity:0.75}.md\:bg-opacity-100{--bg-opacity:1}.md\:hover\:bg-opacity-0:hover{--bg-opacity:0}.md\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.md\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.md\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.md\:hover\:bg-opacity-100:hover{--bg-opacity:1}.md\:focus\:bg-opacity-0:focus{--bg-opacity:0}.md\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.md\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.md\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.md\:focus\:bg-opacity-100:focus{--bg-opacity:1}.md\:bg-bottom{background-position:bottom}.md\:bg-center{background-position:50%}.md\:bg-left{background-position:0}.md\:bg-left-bottom{background-position:0 100%}.md\:bg-left-top{background-position:0 0}.md\:bg-right{background-position:100%}.md\:bg-right-bottom{background-position:100% 100%}.md\:bg-right-top{background-position:100% 0}.md\:bg-top{background-position:top}.md\:bg-repeat{background-repeat:repeat}.md\:bg-no-repeat{background-repeat:no-repeat}.md\:bg-repeat-x{background-repeat:repeat-x}.md\:bg-repeat-y{background-repeat:repeat-y}.md\:bg-repeat-round{background-repeat:round}.md\:bg-repeat-space{background-repeat:space}.md\:bg-auto{background-size:auto}.md\:bg-cover{background-size:cover}.md\:bg-contain{background-size:contain}.md\:border-collapse{border-collapse:collapse}.md\:border-separate{border-collapse:separate}.md\:border-transparent{border-color:transparent}.md\:border-current{border-color:currentColor}.md\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:hover\:border-transparent:hover{border-color:transparent}.md\:hover\:border-current:hover{border-color:currentColor}.md\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:focus\:border-transparent:focus{border-color:transparent}.md\:focus\:border-current:focus{border-color:currentColor}.md\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:border-opacity-0{--border-opacity:0}.md\:border-opacity-25{--border-opacity:0.25}.md\:border-opacity-50{--border-opacity:0.5}.md\:border-opacity-75{--border-opacity:0.75}.md\:border-opacity-100{--border-opacity:1}.md\:hover\:border-opacity-0:hover{--border-opacity:0}.md\:hover\:border-opacity-25:hover{--border-opacity:0.25}.md\:hover\:border-opacity-50:hover{--border-opacity:0.5}.md\:hover\:border-opacity-75:hover{--border-opacity:0.75}.md\:hover\:border-opacity-100:hover{--border-opacity:1}.md\:focus\:border-opacity-0:focus{--border-opacity:0}.md\:focus\:border-opacity-25:focus{--border-opacity:0.25}.md\:focus\:border-opacity-50:focus{--border-opacity:0.5}.md\:focus\:border-opacity-75:focus{--border-opacity:0.75}.md\:focus\:border-opacity-100:focus{--border-opacity:1}.md\:rounded-none{border-radius:0}.md\:rounded-sm{border-radius:.125rem}.md\:rounded{border-radius:.25rem}.md\:rounded-md{border-radius:.375rem}.md\:rounded-lg{border-radius:.5rem}.md\:rounded-xl{border-radius:.75rem}.md\:rounded-2xl{border-radius:1rem}.md\:rounded-3xl{border-radius:1.5rem}.md\:rounded-full{border-radius:9999px}.md\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.md\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.md\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.md\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.md\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.md\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.md\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.md\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.md\:rounded-t{border-top-left-radius:.25rem}.md\:rounded-r,.md\:rounded-t{border-top-right-radius:.25rem}.md\:rounded-b,.md\:rounded-r{border-bottom-right-radius:.25rem}.md\:rounded-b,.md\:rounded-l{border-bottom-left-radius:.25rem}.md\:rounded-l{border-top-left-radius:.25rem}.md\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.md\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.md\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.md\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.md\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.md\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.md\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.md\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.md\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.md\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.md\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.md\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.md\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.md\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.md\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.md\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.md\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.md\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.md\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.md\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.md\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.md\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.md\:rounded-tl-none{border-top-left-radius:0}.md\:rounded-tr-none{border-top-right-radius:0}.md\:rounded-br-none{border-bottom-right-radius:0}.md\:rounded-bl-none{border-bottom-left-radius:0}.md\:rounded-tl-sm{border-top-left-radius:.125rem}.md\:rounded-tr-sm{border-top-right-radius:.125rem}.md\:rounded-br-sm{border-bottom-right-radius:.125rem}.md\:rounded-bl-sm{border-bottom-left-radius:.125rem}.md\:rounded-tl{border-top-left-radius:.25rem}.md\:rounded-tr{border-top-right-radius:.25rem}.md\:rounded-br{border-bottom-right-radius:.25rem}.md\:rounded-bl{border-bottom-left-radius:.25rem}.md\:rounded-tl-md{border-top-left-radius:.375rem}.md\:rounded-tr-md{border-top-right-radius:.375rem}.md\:rounded-br-md{border-bottom-right-radius:.375rem}.md\:rounded-bl-md{border-bottom-left-radius:.375rem}.md\:rounded-tl-lg{border-top-left-radius:.5rem}.md\:rounded-tr-lg{border-top-right-radius:.5rem}.md\:rounded-br-lg{border-bottom-right-radius:.5rem}.md\:rounded-bl-lg{border-bottom-left-radius:.5rem}.md\:rounded-tl-xl{border-top-left-radius:.75rem}.md\:rounded-tr-xl{border-top-right-radius:.75rem}.md\:rounded-br-xl{border-bottom-right-radius:.75rem}.md\:rounded-bl-xl{border-bottom-left-radius:.75rem}.md\:rounded-tl-2xl{border-top-left-radius:1rem}.md\:rounded-tr-2xl{border-top-right-radius:1rem}.md\:rounded-br-2xl{border-bottom-right-radius:1rem}.md\:rounded-bl-2xl{border-bottom-left-radius:1rem}.md\:rounded-tl-3xl{border-top-left-radius:1.5rem}.md\:rounded-tr-3xl{border-top-right-radius:1.5rem}.md\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.md\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.md\:rounded-tl-full{border-top-left-radius:9999px}.md\:rounded-tr-full{border-top-right-radius:9999px}.md\:rounded-br-full{border-bottom-right-radius:9999px}.md\:rounded-bl-full{border-bottom-left-radius:9999px}.md\:border-solid{border-style:solid}.md\:border-dashed{border-style:dashed}.md\:border-dotted{border-style:dotted}.md\:border-double{border-style:double}.md\:border-none{border-style:none}.md\:border-0{border-width:0}.md\:border-2{border-width:2px}.md\:border-4{border-width:4px}.md\:border-8{border-width:8px}.md\:border{border-width:1px}.md\:border-t-0{border-top-width:0}.md\:border-r-0{border-right-width:0}.md\:border-b-0{border-bottom-width:0}.md\:border-l-0{border-left-width:0}.md\:border-t-2{border-top-width:2px}.md\:border-r-2{border-right-width:2px}.md\:border-b-2{border-bottom-width:2px}.md\:border-l-2{border-left-width:2px}.md\:border-t-4{border-top-width:4px}.md\:border-r-4{border-right-width:4px}.md\:border-b-4{border-bottom-width:4px}.md\:border-l-4{border-left-width:4px}.md\:border-t-8{border-top-width:8px}.md\:border-r-8{border-right-width:8px}.md\:border-b-8{border-bottom-width:8px}.md\:border-l-8{border-left-width:8px}.md\:border-t{border-top-width:1px}.md\:border-r{border-right-width:1px}.md\:border-b{border-bottom-width:1px}.md\:border-l{border-left-width:1px}.md\:box-border{box-sizing:border-box}.md\:box-content{box-sizing:content-box}.md\:cursor-auto{cursor:auto}.md\:cursor-default{cursor:default}.md\:cursor-pointer{cursor:pointer}.md\:cursor-wait{cursor:wait}.md\:cursor-text{cursor:text}.md\:cursor-move{cursor:move}.md\:cursor-not-allowed{cursor:not-allowed}.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:table{display:table}.md\:table-caption{display:table-caption}.md\:table-cell{display:table-cell}.md\:table-column{display:table-column}.md\:table-column-group{display:table-column-group}.md\:table-footer-group{display:table-footer-group}.md\:table-header-group{display:table-header-group}.md\:table-row-group{display:table-row-group}.md\:table-row{display:table-row}.md\:flow-root{display:flow-root}.md\:grid{display:grid}.md\:inline-grid{display:inline-grid}.md\:contents{display:contents}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:flex-col-reverse{flex-direction:column-reverse}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:flex-no-wrap{flex-wrap:nowrap}.md\:place-items-auto{place-items:auto}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch}.md\:place-content-center{place-content:center}.md\:place-content-start{place-content:start}.md\:place-content-end{place-content:end}.md\:place-content-between{place-content:space-between}.md\:place-content-around{place-content:space-around}.md\:place-content-evenly{place-content:space-evenly}.md\:place-content-stretch{place-content:stretch}.md\:place-self-auto{place-self:auto}.md\:place-self-start{place-self:start}.md\:place-self-end{place-self:end}.md\:place-self-center{place-self:center}.md\:place-self-stretch{place-self:stretch}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:items-baseline{align-items:baseline}.md\:items-stretch{align-items:stretch}.md\:content-center{align-content:center}.md\:content-start{align-content:flex-start}.md\:content-end{align-content:flex-end}.md\:content-between{align-content:space-between}.md\:content-around{align-content:space-around}.md\:content-evenly{align-content:space-evenly}.md\:self-auto{align-self:auto}.md\:self-start{align-self:flex-start}.md\:self-end{align-self:flex-end}.md\:self-center{align-self:center}.md\:self-stretch{align-self:stretch}.md\:justify-items-auto{justify-items:auto}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-start{justify-content:flex-start}.md\:justify-end{justify-content:flex-end}.md\:justify-center{justify-content:center}.md\:justify-between{justify-content:space-between}.md\:justify-around{justify-content:space-around}.md\:justify-evenly{justify-content:space-evenly}.md\:justify-self-auto{justify-self:auto}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:justify-self-stretch{justify-self:stretch}.md\:flex-1{flex:1 1 0%}.md\:flex-auto{flex:1 1 auto}.md\:flex-initial{flex:0 1 auto}.md\:flex-none{flex:none}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink{flex-shrink:1}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-6{order:6}.md\:order-7{order:7}.md\:order-8{order:8}.md\:order-9{order:9}.md\:order-10{order:10}.md\:order-11{order:11}.md\:order-12{order:12}.md\:order-first{order:-9999}.md\:order-last{order:9999}.md\:order-none{order:0}.md\:float-right{float:right}.md\:float-left{float:left}.md\:float-none{float:none}.md\:clearfix:after{content:"";display:table;clear:both}.md\:clear-left{clear:left}.md\:clear-right{clear:right}.md\:clear-both{clear:both}.md\:clear-none{clear:none}.md\:font-sans{font-family: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}.md\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.md\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.md\:font-hairline{font-weight:100}.md\:font-thin{font-weight:200}.md\:font-light{font-weight:300}.md\:font-normal{font-weight:400}.md\:font-medium{font-weight:500}.md\:font-semibold{font-weight:600}.md\:font-bold{font-weight:700}.md\:font-extrabold{font-weight:800}.md\:font-black{font-weight:900}.md\:hover\:font-hairline:hover{font-weight:100}.md\:hover\:font-thin:hover{font-weight:200}.md\:hover\:font-light:hover{font-weight:300}.md\:hover\:font-normal:hover{font-weight:400}.md\:hover\:font-medium:hover{font-weight:500}.md\:hover\:font-semibold:hover{font-weight:600}.md\:hover\:font-bold:hover{font-weight:700}.md\:hover\:font-extrabold:hover{font-weight:800}.md\:hover\:font-black:hover{font-weight:900}.md\:focus\:font-hairline:focus{font-weight:100}.md\:focus\:font-thin:focus{font-weight:200}.md\:focus\:font-light:focus{font-weight:300}.md\:focus\:font-normal:focus{font-weight:400}.md\:focus\:font-medium:focus{font-weight:500}.md\:focus\:font-semibold:focus{font-weight:600}.md\:focus\:font-bold:focus{font-weight:700}.md\:focus\:font-extrabold:focus{font-weight:800}.md\:focus\:font-black:focus{font-weight:900}.md\:h-0{height:0}.md\:h-1{height:.25rem}.md\:h-2{height:.5rem}.md\:h-3{height:.75rem}.md\:h-4{height:1rem}.md\:h-5{height:1.25rem}.md\:h-6{height:1.5rem}.md\:h-8{height:2rem}.md\:h-10{height:2.5rem}.md\:h-12{height:3rem}.md\:h-16{height:4rem}.md\:h-20{height:5rem}.md\:h-24{height:6rem}.md\:h-32{height:8rem}.md\:h-40{height:10rem}.md\:h-48{height:12rem}.md\:h-56{height:14rem}.md\:h-64{height:16rem}.md\:h-auto{height:auto}.md\:h-px{height:1px}.md\:h-full{height:100%}.md\:h-screen{height:100vh}.md\:text-xs{font-size:.75rem}.md\:text-sm{font-size:.875rem}.md\:text-base{font-size:1rem}.md\:text-lg{font-size:1.125rem}.md\:text-xl{font-size:1.25rem}.md\:text-2xl{font-size:1.5rem}.md\:text-3xl{font-size:1.875rem}.md\:text-4xl{font-size:2.25rem}.md\:text-5xl{font-size:3rem}.md\:text-6xl{font-size:4rem}.md\:leading-3{line-height:.75rem}.md\:leading-4{line-height:1rem}.md\:leading-5{line-height:1.25rem}.md\:leading-6{line-height:1.5rem}.md\:leading-7{line-height:1.75rem}.md\:leading-8{line-height:2rem}.md\:leading-9{line-height:2.25rem}.md\:leading-10{line-height:2.5rem}.md\:leading-none{line-height:1}.md\:leading-tight{line-height:1.25}.md\:leading-snug{line-height:1.375}.md\:leading-normal{line-height:1.5}.md\:leading-relaxed{line-height:1.625}.md\:leading-loose{line-height:2}.md\:list-inside{list-style-position:inside}.md\:list-outside{list-style-position:outside}.md\:list-none{list-style-type:none}.md\:list-disc{list-style-type:disc}.md\:list-decimal{list-style-type:decimal}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-8{margin:2rem}.md\:m-10{margin:2.5rem}.md\:m-12{margin:3rem}.md\:m-16{margin:4rem}.md\:m-20{margin:5rem}.md\:m-24{margin:6rem}.md\:m-32{margin:8rem}.md\:m-40{margin:10rem}.md\:m-48{margin:12rem}.md\:m-56{margin:14rem}.md\:m-64{margin:16rem}.md\:m-auto{margin:auto}.md\:m-px{margin:1px}.md\:-m-1{margin:-.25rem}.md\:-m-2{margin:-.5rem}.md\:-m-3{margin:-.75rem}.md\:-m-4{margin:-1rem}.md\:-m-5{margin:-1.25rem}.md\:-m-6{margin:-1.5rem}.md\:-m-8{margin:-2rem}.md\:-m-10{margin:-2.5rem}.md\:-m-12{margin:-3rem}.md\:-m-16{margin:-4rem}.md\:-m-20{margin:-5rem}.md\:-m-24{margin:-6rem}.md\:-m-32{margin:-8rem}.md\:-m-40{margin:-10rem}.md\:-m-48{margin:-12rem}.md\:-m-56{margin:-14rem}.md\:-m-64{margin:-16rem}.md\:-m-px{margin:-1px}.md\:my-0{margin-top:0;margin-bottom:0}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-1{margin-top:.25rem;margin-bottom:.25rem}.md\:mx-1{margin-left:.25rem;margin-right:.25rem}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-2{margin-left:.5rem;margin-right:.5rem}.md\:my-3{margin-top:.75rem;margin-bottom:.75rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:my-4{margin-top:1rem;margin-bottom:1rem}.md\:mx-4{margin-left:1rem;margin-right:1rem}.md\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.md\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.md\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.md\:my-8{margin-top:2rem;margin-bottom:2rem}.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.md\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.md\:my-12{margin-top:3rem;margin-bottom:3rem}.md\:mx-12{margin-left:3rem;margin-right:3rem}.md\:my-16{margin-top:4rem;margin-bottom:4rem}.md\:mx-16{margin-left:4rem;margin-right:4rem}.md\:my-20{margin-top:5rem;margin-bottom:5rem}.md\:mx-20{margin-left:5rem;margin-right:5rem}.md\:my-24{margin-top:6rem;margin-bottom:6rem}.md\:mx-24{margin-left:6rem;margin-right:6rem}.md\:my-32{margin-top:8rem;margin-bottom:8rem}.md\:mx-32{margin-left:8rem;margin-right:8rem}.md\:my-40{margin-top:10rem;margin-bottom:10rem}.md\:mx-40{margin-left:10rem;margin-right:10rem}.md\:my-48{margin-top:12rem;margin-bottom:12rem}.md\:mx-48{margin-left:12rem;margin-right:12rem}.md\:my-56{margin-top:14rem;margin-bottom:14rem}.md\:mx-56{margin-left:14rem;margin-right:14rem}.md\:my-64{margin-top:16rem;margin-bottom:16rem}.md\:mx-64{margin-left:16rem;margin-right:16rem}.md\:my-auto{margin-top:auto;margin-bottom:auto}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:my-px{margin-top:1px;margin-bottom:1px}.md\:mx-px{margin-left:1px;margin-right:1px}.md\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.md\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.md\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.md\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.md\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.md\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.md\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.md\:-mx-4{margin-left:-1rem;margin-right:-1rem}.md\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.md\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.md\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.md\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.md\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.md\:-mx-8{margin-left:-2rem;margin-right:-2rem}.md\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.md\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.md\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.md\:-mx-12{margin-left:-3rem;margin-right:-3rem}.md\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.md\:-mx-16{margin-left:-4rem;margin-right:-4rem}.md\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.md\:-mx-20{margin-left:-5rem;margin-right:-5rem}.md\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.md\:-mx-24{margin-left:-6rem;margin-right:-6rem}.md\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.md\:-mx-32{margin-left:-8rem;margin-right:-8rem}.md\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.md\:-mx-40{margin-left:-10rem;margin-right:-10rem}.md\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.md\:-mx-48{margin-left:-12rem;margin-right:-12rem}.md\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.md\:-mx-56{margin-left:-14rem;margin-right:-14rem}.md\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.md\:-mx-64{margin-left:-16rem;margin-right:-16rem}.md\:-my-px{margin-top:-1px;margin-bottom:-1px}.md\:-mx-px{margin-left:-1px;margin-right:-1px}.md\:mt-0{margin-top:0}.md\:mr-0{margin-right:0}.md\:mb-0{margin-bottom:0}.md\:ml-0{margin-left:0}.md\:mt-1{margin-top:.25rem}.md\:mr-1{margin-right:.25rem}.md\:mb-1{margin-bottom:.25rem}.md\:ml-1{margin-left:.25rem}.md\:mt-2{margin-top:.5rem}.md\:mr-2{margin-right:.5rem}.md\:mb-2{margin-bottom:.5rem}.md\:ml-2{margin-left:.5rem}.md\:mt-3{margin-top:.75rem}.md\:mr-3{margin-right:.75rem}.md\:mb-3{margin-bottom:.75rem}.md\:ml-3{margin-left:.75rem}.md\:mt-4{margin-top:1rem}.md\:mr-4{margin-right:1rem}.md\:mb-4{margin-bottom:1rem}.md\:ml-4{margin-left:1rem}.md\:mt-5{margin-top:1.25rem}.md\:mr-5{margin-right:1.25rem}.md\:mb-5{margin-bottom:1.25rem}.md\:ml-5{margin-left:1.25rem}.md\:mt-6{margin-top:1.5rem}.md\:mr-6{margin-right:1.5rem}.md\:mb-6{margin-bottom:1.5rem}.md\:ml-6{margin-left:1.5rem}.md\:mt-8{margin-top:2rem}.md\:mr-8{margin-right:2rem}.md\:mb-8{margin-bottom:2rem}.md\:ml-8{margin-left:2rem}.md\:mt-10{margin-top:2.5rem}.md\:mr-10{margin-right:2.5rem}.md\:mb-10{margin-bottom:2.5rem}.md\:ml-10{margin-left:2.5rem}.md\:mt-12{margin-top:3rem}.md\:mr-12{margin-right:3rem}.md\:mb-12{margin-bottom:3rem}.md\:ml-12{margin-left:3rem}.md\:mt-16{margin-top:4rem}.md\:mr-16{margin-right:4rem}.md\:mb-16{margin-bottom:4rem}.md\:ml-16{margin-left:4rem}.md\:mt-20{margin-top:5rem}.md\:mr-20{margin-right:5rem}.md\:mb-20{margin-bottom:5rem}.md\:ml-20{margin-left:5rem}.md\:mt-24{margin-top:6rem}.md\:mr-24{margin-right:6rem}.md\:mb-24{margin-bottom:6rem}.md\:ml-24{margin-left:6rem}.md\:mt-32{margin-top:8rem}.md\:mr-32{margin-right:8rem}.md\:mb-32{margin-bottom:8rem}.md\:ml-32{margin-left:8rem}.md\:mt-40{margin-top:10rem}.md\:mr-40{margin-right:10rem}.md\:mb-40{margin-bottom:10rem}.md\:ml-40{margin-left:10rem}.md\:mt-48{margin-top:12rem}.md\:mr-48{margin-right:12rem}.md\:mb-48{margin-bottom:12rem}.md\:ml-48{margin-left:12rem}.md\:mt-56{margin-top:14rem}.md\:mr-56{margin-right:14rem}.md\:mb-56{margin-bottom:14rem}.md\:ml-56{margin-left:14rem}.md\:mt-64{margin-top:16rem}.md\:mr-64{margin-right:16rem}.md\:mb-64{margin-bottom:16rem}.md\:ml-64{margin-left:16rem}.md\:mt-auto{margin-top:auto}.md\:mr-auto{margin-right:auto}.md\:mb-auto{margin-bottom:auto}.md\:ml-auto{margin-left:auto}.md\:mt-px{margin-top:1px}.md\:mr-px{margin-right:1px}.md\:mb-px{margin-bottom:1px}.md\:ml-px{margin-left:1px}.md\:-mt-1{margin-top:-.25rem}.md\:-mr-1{margin-right:-.25rem}.md\:-mb-1{margin-bottom:-.25rem}.md\:-ml-1{margin-left:-.25rem}.md\:-mt-2{margin-top:-.5rem}.md\:-mr-2{margin-right:-.5rem}.md\:-mb-2{margin-bottom:-.5rem}.md\:-ml-2{margin-left:-.5rem}.md\:-mt-3{margin-top:-.75rem}.md\:-mr-3{margin-right:-.75rem}.md\:-mb-3{margin-bottom:-.75rem}.md\:-ml-3{margin-left:-.75rem}.md\:-mt-4{margin-top:-1rem}.md\:-mr-4{margin-right:-1rem}.md\:-mb-4{margin-bottom:-1rem}.md\:-ml-4{margin-left:-1rem}.md\:-mt-5{margin-top:-1.25rem}.md\:-mr-5{margin-right:-1.25rem}.md\:-mb-5{margin-bottom:-1.25rem}.md\:-ml-5{margin-left:-1.25rem}.md\:-mt-6{margin-top:-1.5rem}.md\:-mr-6{margin-right:-1.5rem}.md\:-mb-6{margin-bottom:-1.5rem}.md\:-ml-6{margin-left:-1.5rem}.md\:-mt-8{margin-top:-2rem}.md\:-mr-8{margin-right:-2rem}.md\:-mb-8{margin-bottom:-2rem}.md\:-ml-8{margin-left:-2rem}.md\:-mt-10{margin-top:-2.5rem}.md\:-mr-10{margin-right:-2.5rem}.md\:-mb-10{margin-bottom:-2.5rem}.md\:-ml-10{margin-left:-2.5rem}.md\:-mt-12{margin-top:-3rem}.md\:-mr-12{margin-right:-3rem}.md\:-mb-12{margin-bottom:-3rem}.md\:-ml-12{margin-left:-3rem}.md\:-mt-16{margin-top:-4rem}.md\:-mr-16{margin-right:-4rem}.md\:-mb-16{margin-bottom:-4rem}.md\:-ml-16{margin-left:-4rem}.md\:-mt-20{margin-top:-5rem}.md\:-mr-20{margin-right:-5rem}.md\:-mb-20{margin-bottom:-5rem}.md\:-ml-20{margin-left:-5rem}.md\:-mt-24{margin-top:-6rem}.md\:-mr-24{margin-right:-6rem}.md\:-mb-24{margin-bottom:-6rem}.md\:-ml-24{margin-left:-6rem}.md\:-mt-32{margin-top:-8rem}.md\:-mr-32{margin-right:-8rem}.md\:-mb-32{margin-bottom:-8rem}.md\:-ml-32{margin-left:-8rem}.md\:-mt-40{margin-top:-10rem}.md\:-mr-40{margin-right:-10rem}.md\:-mb-40{margin-bottom:-10rem}.md\:-ml-40{margin-left:-10rem}.md\:-mt-48{margin-top:-12rem}.md\:-mr-48{margin-right:-12rem}.md\:-mb-48{margin-bottom:-12rem}.md\:-ml-48{margin-left:-12rem}.md\:-mt-56{margin-top:-14rem}.md\:-mr-56{margin-right:-14rem}.md\:-mb-56{margin-bottom:-14rem}.md\:-ml-56{margin-left:-14rem}.md\:-mt-64{margin-top:-16rem}.md\:-mr-64{margin-right:-16rem}.md\:-mb-64{margin-bottom:-16rem}.md\:-ml-64{margin-left:-16rem}.md\:-mt-px{margin-top:-1px}.md\:-mr-px{margin-right:-1px}.md\:-mb-px{margin-bottom:-1px}.md\:-ml-px{margin-left:-1px}.md\:max-h-full{max-height:100%}.md\:max-h-screen{max-height:100vh}.md\:max-w-none{max-width:none}.md\:max-w-xs{max-width:20rem}.md\:max-w-sm{max-width:24rem}.md\:max-w-md{max-width:28rem}.md\:max-w-lg{max-width:32rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-2xl{max-width:42rem}.md\:max-w-3xl{max-width:48rem}.md\:max-w-4xl{max-width:56rem}.md\:max-w-5xl{max-width:64rem}.md\:max-w-6xl{max-width:72rem}.md\:max-w-full{max-width:100%}.md\:max-w-screen-xs{max-width:360px}.md\:max-w-screen-sm{max-width:640px}.md\:max-w-screen-md{max-width:768px}.md\:max-w-screen-lg{max-width:1024px}.md\:max-w-screen-xl{max-width:1280px}.md\:max-w-screen-xxl{max-width:1480px}.md\:min-h-0{min-height:0}.md\:min-h-full{min-height:100%}.md\:min-h-screen{min-height:100vh}.md\:min-w-0{min-width:0}.md\:min-w-full{min-width:100%}.md\:object-contain{-o-object-fit:contain;object-fit:contain}.md\:object-cover{-o-object-fit:cover;object-fit:cover}.md\:object-fill{-o-object-fit:fill;object-fit:fill}.md\:object-none{-o-object-fit:none;object-fit:none}.md\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.md\:object-bottom{-o-object-position:bottom;object-position:bottom}.md\:object-center{-o-object-position:center;object-position:center}.md\:object-left{-o-object-position:left;object-position:left}.md\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.md\:object-left-top{-o-object-position:left top;object-position:left top}.md\:object-right{-o-object-position:right;object-position:right}.md\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.md\:object-right-top{-o-object-position:right top;object-position:right top}.md\:object-top{-o-object-position:top;object-position:top}.md\:opacity-0{opacity:0}.md\:opacity-25{opacity:.25}.md\:opacity-50{opacity:.5}.md\:opacity-75{opacity:.75}.md\:opacity-100{opacity:1}.md\:hover\:opacity-0:hover{opacity:0}.md\:hover\:opacity-25:hover{opacity:.25}.md\:hover\:opacity-50:hover{opacity:.5}.md\:hover\:opacity-75:hover{opacity:.75}.md\:hover\:opacity-100:hover{opacity:1}.md\:focus\:opacity-0:focus{opacity:0}.md\:focus\:opacity-25:focus{opacity:.25}.md\:focus\:opacity-50:focus{opacity:.5}.md\:focus\:opacity-75:focus{opacity:.75}.md\:focus\:opacity-100:focus{opacity:1}.md\:outline-none{outline:2px solid transparent;outline-offset:2px}.md\:outline-white{outline:2px dotted #fff;outline-offset:2px}.md\:outline-black{outline:2px dotted #000;outline-offset:2px}.md\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.md\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.md\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.md\:overflow-auto{overflow:auto}.md\:overflow-hidden{overflow:hidden}.md\:overflow-visible{overflow:visible}.md\:overflow-scroll{overflow:scroll}.md\:overflow-x-auto{overflow-x:auto}.md\:overflow-y-auto{overflow-y:auto}.md\:overflow-x-hidden{overflow-x:hidden}.md\:overflow-y-hidden{overflow-y:hidden}.md\:overflow-x-visible{overflow-x:visible}.md\:overflow-y-visible{overflow-y:visible}.md\:overflow-x-scroll{overflow-x:scroll}.md\:overflow-y-scroll{overflow-y:scroll}.md\:scrolling-touch{-webkit-overflow-scrolling:touch}.md\:scrolling-auto{-webkit-overflow-scrolling:auto}.md\:overscroll-auto{overscroll-behavior:auto}.md\:overscroll-contain{overscroll-behavior:contain}.md\:overscroll-none{overscroll-behavior:none}.md\:overscroll-y-auto{overscroll-behavior-y:auto}.md\:overscroll-y-contain{overscroll-behavior-y:contain}.md\:overscroll-y-none{overscroll-behavior-y:none}.md\:overscroll-x-auto{overscroll-behavior-x:auto}.md\:overscroll-x-contain{overscroll-behavior-x:contain}.md\:overscroll-x-none{overscroll-behavior-x:none}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:p-10{padding:2.5rem}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-20{padding:5rem}.md\:p-24{padding:6rem}.md\:p-32{padding:8rem}.md\:p-40{padding:10rem}.md\:p-48{padding:12rem}.md\:p-56{padding:14rem}.md\:p-64{padding:16rem}.md\:p-px{padding:1px}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-0{padding-left:0;padding-right:0}.md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:px-24{padding-left:6rem;padding-right:6rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:px-32{padding-left:8rem;padding-right:8rem}.md\:py-40{padding-top:10rem;padding-bottom:10rem}.md\:px-40{padding-left:10rem;padding-right:10rem}.md\:py-48{padding-top:12rem;padding-bottom:12rem}.md\:px-48{padding-left:12rem;padding-right:12rem}.md\:py-56{padding-top:14rem;padding-bottom:14rem}.md\:px-56{padding-left:14rem;padding-right:14rem}.md\:py-64{padding-top:16rem;padding-bottom:16rem}.md\:px-64{padding-left:16rem;padding-right:16rem}.md\:py-px{padding-top:1px;padding-bottom:1px}.md\:px-px{padding-left:1px;padding-right:1px}.md\:pt-0{padding-top:0}.md\:pr-0{padding-right:0}.md\:pb-0{padding-bottom:0}.md\:pl-0{padding-left:0}.md\:pt-1{padding-top:.25rem}.md\:pr-1{padding-right:.25rem}.md\:pb-1{padding-bottom:.25rem}.md\:pl-1{padding-left:.25rem}.md\:pt-2{padding-top:.5rem}.md\:pr-2{padding-right:.5rem}.md\:pb-2{padding-bottom:.5rem}.md\:pl-2{padding-left:.5rem}.md\:pt-3{padding-top:.75rem}.md\:pr-3{padding-right:.75rem}.md\:pb-3{padding-bottom:.75rem}.md\:pl-3{padding-left:.75rem}.md\:pt-4{padding-top:1rem}.md\:pr-4{padding-right:1rem}.md\:pb-4{padding-bottom:1rem}.md\:pl-4{padding-left:1rem}.md\:pt-5{padding-top:1.25rem}.md\:pr-5{padding-right:1.25rem}.md\:pb-5{padding-bottom:1.25rem}.md\:pl-5{padding-left:1.25rem}.md\:pt-6{padding-top:1.5rem}.md\:pr-6{padding-right:1.5rem}.md\:pb-6{padding-bottom:1.5rem}.md\:pl-6{padding-left:1.5rem}.md\:pt-8{padding-top:2rem}.md\:pr-8{padding-right:2rem}.md\:pb-8{padding-bottom:2rem}.md\:pl-8{padding-left:2rem}.md\:pt-10{padding-top:2.5rem}.md\:pr-10{padding-right:2.5rem}.md\:pb-10{padding-bottom:2.5rem}.md\:pl-10{padding-left:2.5rem}.md\:pt-12{padding-top:3rem}.md\:pr-12{padding-right:3rem}.md\:pb-12{padding-bottom:3rem}.md\:pl-12{padding-left:3rem}.md\:pt-16{padding-top:4rem}.md\:pr-16{padding-right:4rem}.md\:pb-16{padding-bottom:4rem}.md\:pl-16{padding-left:4rem}.md\:pt-20{padding-top:5rem}.md\:pr-20{padding-right:5rem}.md\:pb-20{padding-bottom:5rem}.md\:pl-20{padding-left:5rem}.md\:pt-24{padding-top:6rem}.md\:pr-24{padding-right:6rem}.md\:pb-24{padding-bottom:6rem}.md\:pl-24{padding-left:6rem}.md\:pt-32{padding-top:8rem}.md\:pr-32{padding-right:8rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-32{padding-left:8rem}.md\:pt-40{padding-top:10rem}.md\:pr-40{padding-right:10rem}.md\:pb-40{padding-bottom:10rem}.md\:pl-40{padding-left:10rem}.md\:pt-48{padding-top:12rem}.md\:pr-48{padding-right:12rem}.md\:pb-48{padding-bottom:12rem}.md\:pl-48{padding-left:12rem}.md\:pt-56{padding-top:14rem}.md\:pr-56{padding-right:14rem}.md\:pb-56{padding-bottom:14rem}.md\:pl-56{padding-left:14rem}.md\:pt-64{padding-top:16rem}.md\:pr-64{padding-right:16rem}.md\:pb-64{padding-bottom:16rem}.md\:pl-64{padding-left:16rem}.md\:pt-px{padding-top:1px}.md\:pr-px{padding-right:1px}.md\:pb-px{padding-bottom:1px}.md\:pl-px{padding-left:1px}.md\:placeholder-transparent::placeholder{color:transparent}.md\:placeholder-current::placeholder{color:currentColor}.md\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.md\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.md\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.md\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.md\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.md\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.md\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.md\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.md\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.md\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.md\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.md\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.md\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.md\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.md\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.md\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.md\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.md\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.md\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.md\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.md\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.md\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.md\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.md\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.md\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.md\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.md\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.md\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.md\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.md\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.md\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.md\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.md\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.md\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.md\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.md\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.md\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.md\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.md\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.md\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.md\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.md\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.md\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.md\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.md\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.md\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.md\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.md\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.md\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.md\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.md\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.md\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.md\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.md\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.md\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.md\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.md\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.md\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.md\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.md\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.md\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.md\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.md\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.md\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.md\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.md\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.md\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.md\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.md\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.md\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.md\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.md\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.md\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.md\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.md\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.md\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.md\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.md\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.md\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.md\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.md\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.md\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.md\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.md\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.md\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.md\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.md\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.md\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.md\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.md\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.md\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.md\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.md\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.md\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.md\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.md\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.md\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.md\:focus\:placeholder-current:focus::placeholder{color:currentColor}.md\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.md\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.md\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.md\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.md\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.md\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.md\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.md\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.md\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.md\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.md\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.md\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.md\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.md\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.md\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.md\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.md\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.md\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.md\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.md\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.md\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.md\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.md\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.md\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.md\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.md\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.md\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.md\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.md\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.md\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.md\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.md\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.md\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.md\:pointer-events-none{pointer-events:none}.md\:pointer-events-auto{pointer-events:auto}.md\:static{position:static}.md\:fixed{position:fixed}.md\:absolute{position:absolute}.md\:relative{position:relative}.md\:sticky{position:sticky}.md\:inset-0{top:0;right:0;bottom:0;left:0}.md\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.md\:inset-y-0{top:0;bottom:0}.md\:inset-x-0{right:0;left:0}.md\:inset-y-auto{top:auto;bottom:auto}.md\:inset-x-auto{right:auto;left:auto}.md\:top-0{top:0}.md\:right-0{right:0}.md\:bottom-0{bottom:0}.md\:left-0{left:0}.md\:top-auto{top:auto}.md\:right-auto{right:auto}.md\:bottom-auto{bottom:auto}.md\:left-auto{left:auto}.md\:resize-none{resize:none}.md\:resize-y{resize:vertical}.md\:resize-x{resize:horizontal}.md\:resize{resize:both}.md\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:shadow-none{box-shadow:none}.md\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:hover\:shadow-none:hover{box-shadow:none}.md\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:focus\:shadow-none:focus{box-shadow:none}.md\:fill-current{fill:currentColor}.md\:stroke-current{stroke:currentColor}.md\:stroke-0{stroke-width:0}.md\:stroke-1{stroke-width:1}.md\:stroke-2{stroke-width:2}.md\:table-auto{table-layout:auto}.md\:table-fixed{table-layout:fixed}.md\:text-left{text-align:left}.md\:text-center{text-align:center}.md\:text-right{text-align:right}.md\:text-justify{text-align:justify}.md\:text-transparent{color:transparent}.md\:text-current{color:currentColor}.md\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:hover\:text-transparent:hover{color:transparent}.md\:hover\:text-current:hover{color:currentColor}.md\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:focus\:text-transparent:focus{color:transparent}.md\:focus\:text-current:focus{color:currentColor}.md\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:text-opacity-0{--text-opacity:0}.md\:text-opacity-25{--text-opacity:0.25}.md\:text-opacity-50{--text-opacity:0.5}.md\:text-opacity-75{--text-opacity:0.75}.md\:text-opacity-100{--text-opacity:1}.md\:hover\:text-opacity-0:hover{--text-opacity:0}.md\:hover\:text-opacity-25:hover{--text-opacity:0.25}.md\:hover\:text-opacity-50:hover{--text-opacity:0.5}.md\:hover\:text-opacity-75:hover{--text-opacity:0.75}.md\:hover\:text-opacity-100:hover{--text-opacity:1}.md\:focus\:text-opacity-0:focus{--text-opacity:0}.md\:focus\:text-opacity-25:focus{--text-opacity:0.25}.md\:focus\:text-opacity-50:focus{--text-opacity:0.5}.md\:focus\:text-opacity-75:focus{--text-opacity:0.75}.md\:focus\:text-opacity-100:focus{--text-opacity:1}.md\:italic{font-style:italic}.md\:not-italic{font-style:normal}.md\:uppercase{text-transform:uppercase}.md\:lowercase{text-transform:lowercase}.md\:capitalize{text-transform:capitalize}.md\:normal-case{text-transform:none}.md\:underline{text-decoration:underline}.md\:line-through{text-decoration:line-through}.md\:no-underline{text-decoration:none}.md\:hover\:underline:hover{text-decoration:underline}.md\:hover\:line-through:hover{text-decoration:line-through}.md\:hover\:no-underline:hover{text-decoration:none}.md\:focus\:underline:focus{text-decoration:underline}.md\:focus\:line-through:focus{text-decoration:line-through}.md\:focus\:no-underline:focus{text-decoration:none}.md\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.md\:diagonal-fractions,.md\:lining-nums,.md\:oldstyle-nums,.md\:ordinal,.md\:proportional-nums,.md\:slashed-zero,.md\:stacked-fractions,.md\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.md\:normal-nums{font-variant-numeric:normal}.md\:ordinal{--font-variant-numeric-ordinal:ordinal}.md\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.md\:lining-nums{--font-variant-numeric-figure:lining-nums}.md\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.md\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.md\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.md\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.md\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.md\:tracking-tighter{letter-spacing:-.05em}.md\:tracking-tight{letter-spacing:-.025em}.md\:tracking-normal{letter-spacing:0}.md\:tracking-wide{letter-spacing:.025em}.md\:tracking-wider{letter-spacing:.05em}.md\:tracking-widest{letter-spacing:.1em}.md\:select-none{-webkit-user-select:none;user-select:none}.md\:select-text{-webkit-user-select:text;user-select:text}.md\:select-all{-webkit-user-select:all;user-select:all}.md\:select-auto{-webkit-user-select:auto;user-select:auto}.md\:align-baseline{vertical-align:baseline}.md\:align-top{vertical-align:top}.md\:align-middle{vertical-align:middle}.md\:align-bottom{vertical-align:bottom}.md\:align-text-top{vertical-align:text-top}.md\:align-text-bottom{vertical-align:text-bottom}.md\:visible{visibility:visible}.md\:invisible{visibility:hidden}.md\:whitespace-normal{white-space:normal}.md\:whitespace-no-wrap{white-space:nowrap}.md\:whitespace-pre{white-space:pre}.md\:whitespace-pre-line{white-space:pre-line}.md\:whitespace-pre-wrap{white-space:pre-wrap}.md\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.md\:break-words{word-wrap:break-word;overflow-wrap:break-word}.md\:break-all{word-break:break-all}.md\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md\:w-0{width:0}.md\:w-1{width:.25rem}.md\:w-2{width:.5rem}.md\:w-3{width:.75rem}.md\:w-4{width:1rem}.md\:w-5{width:1.25rem}.md\:w-6{width:1.5rem}.md\:w-8{width:2rem}.md\:w-10{width:2.5rem}.md\:w-12{width:3rem}.md\:w-16{width:4rem}.md\:w-20{width:5rem}.md\:w-24{width:6rem}.md\:w-32{width:8rem}.md\:w-40{width:10rem}.md\:w-48{width:12rem}.md\:w-56{width:14rem}.md\:w-64{width:16rem}.md\:w-auto{width:auto}.md\:w-px{width:1px}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/4{width:25%}.md\:w-2\/4{width:50%}.md\:w-3\/4{width:75%}.md\:w-1\/5{width:20%}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:w-4\/5{width:80%}.md\:w-1\/6{width:16.666667%}.md\:w-2\/6{width:33.333333%}.md\:w-3\/6{width:50%}.md\:w-4\/6{width:66.666667%}.md\:w-5\/6{width:83.333333%}.md\:w-1\/12{width:8.333333%}.md\:w-2\/12{width:16.666667%}.md\:w-3\/12{width:25%}.md\:w-4\/12{width:33.333333%}.md\:w-5\/12{width:41.666667%}.md\:w-6\/12{width:50%}.md\:w-7\/12{width:58.333333%}.md\:w-8\/12{width:66.666667%}.md\:w-9\/12{width:75%}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-full{width:100%}.md\:w-screen{width:100vw}.md\:z-0{z-index:0}.md\:z-10{z-index:10}.md\:z-20{z-index:20}.md\:z-30{z-index:30}.md\:z-40{z-index:40}.md\:z-50{z-index:50}.md\:z-auto{z-index:auto}.md\:gap-0{grid-gap:0;gap:0}.md\:gap-1{grid-gap:.25rem;gap:.25rem}.md\:gap-2{grid-gap:.5rem;gap:.5rem}.md\:gap-3{grid-gap:.75rem;gap:.75rem}.md\:gap-4{grid-gap:1rem;gap:1rem}.md\:gap-5{grid-gap:1.25rem;gap:1.25rem}.md\:gap-6{grid-gap:1.5rem;gap:1.5rem}.md\:gap-8{grid-gap:2rem;gap:2rem}.md\:gap-10{grid-gap:2.5rem;gap:2.5rem}.md\:gap-12{grid-gap:3rem;gap:3rem}.md\:gap-16{grid-gap:4rem;gap:4rem}.md\:gap-20{grid-gap:5rem;gap:5rem}.md\:gap-24{grid-gap:6rem;gap:6rem}.md\:gap-32{grid-gap:8rem;gap:8rem}.md\:gap-40{grid-gap:10rem;gap:10rem}.md\:gap-48{grid-gap:12rem;gap:12rem}.md\:gap-56{grid-gap:14rem;gap:14rem}.md\:gap-64{grid-gap:16rem;gap:16rem}.md\:gap-px{grid-gap:1px;gap:1px}.md\:col-gap-0{grid-column-gap:0;column-gap:0}.md\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.md\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.md\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.md\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.md\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.md\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.md\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.md\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.md\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.md\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.md\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.md\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.md\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.md\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.md\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.md\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.md\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.md\:col-gap-px{grid-column-gap:1px;column-gap:1px}.md\:gap-x-0{grid-column-gap:0;column-gap:0}.md\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.md\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.md\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.md\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.md\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.md\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.md\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.md\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.md\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.md\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.md\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.md\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.md\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.md\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.md\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.md\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.md\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.md\:gap-x-px{grid-column-gap:1px;column-gap:1px}.md\:row-gap-0{grid-row-gap:0;row-gap:0}.md\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.md\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.md\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.md\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.md\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.md\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.md\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.md\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.md\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.md\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.md\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.md\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.md\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.md\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.md\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.md\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.md\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.md\:row-gap-px{grid-row-gap:1px;row-gap:1px}.md\:gap-y-0{grid-row-gap:0;row-gap:0}.md\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.md\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.md\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.md\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.md\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.md\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.md\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.md\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.md\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.md\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.md\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.md\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.md\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.md\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.md\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.md\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.md\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.md\:gap-y-px{grid-row-gap:1px;row-gap:1px}.md\:grid-flow-row{grid-auto-flow:row}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-flow-row-dense{grid-auto-flow:row dense}.md\:grid-flow-col-dense{grid-auto-flow:column dense}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-none{grid-template-columns:none}.md\:auto-cols-auto{grid-auto-columns:auto}.md\:auto-cols-min{grid-auto-columns:min-content}.md\:auto-cols-max{grid-auto-columns:max-content}.md\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.md\:col-auto{grid-column:auto}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:col-span-full{grid-column:1/-1}.md\:col-start-1{grid-column-start:1}.md\:col-start-2{grid-column-start:2}.md\:col-start-3{grid-column-start:3}.md\:col-start-4{grid-column-start:4}.md\:col-start-5{grid-column-start:5}.md\:col-start-6{grid-column-start:6}.md\:col-start-7{grid-column-start:7}.md\:col-start-8{grid-column-start:8}.md\:col-start-9{grid-column-start:9}.md\:col-start-10{grid-column-start:10}.md\:col-start-11{grid-column-start:11}.md\:col-start-12{grid-column-start:12}.md\:col-start-13{grid-column-start:13}.md\:col-start-auto{grid-column-start:auto}.md\:col-end-1{grid-column-end:1}.md\:col-end-2{grid-column-end:2}.md\:col-end-3{grid-column-end:3}.md\:col-end-4{grid-column-end:4}.md\:col-end-5{grid-column-end:5}.md\:col-end-6{grid-column-end:6}.md\:col-end-7{grid-column-end:7}.md\:col-end-8{grid-column-end:8}.md\:col-end-9{grid-column-end:9}.md\:col-end-10{grid-column-end:10}.md\:col-end-11{grid-column-end:11}.md\:col-end-12{grid-column-end:12}.md\:col-end-13{grid-column-end:13}.md\:col-end-auto{grid-column-end:auto}.md\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:grid-rows-none{grid-template-rows:none}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:auto-rows-min{grid-auto-rows:min-content}.md\:auto-rows-max{grid-auto-rows:max-content}.md\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.md\:row-auto{grid-row:auto}.md\:row-span-1{grid-row:span 1/span 1}.md\:row-span-2{grid-row:span 2/span 2}.md\:row-span-3{grid-row:span 3/span 3}.md\:row-span-4{grid-row:span 4/span 4}.md\:row-span-5{grid-row:span 5/span 5}.md\:row-span-6{grid-row:span 6/span 6}.md\:row-span-full{grid-row:1/-1}.md\:row-start-1{grid-row-start:1}.md\:row-start-2{grid-row-start:2}.md\:row-start-3{grid-row-start:3}.md\:row-start-4{grid-row-start:4}.md\:row-start-5{grid-row-start:5}.md\:row-start-6{grid-row-start:6}.md\:row-start-7{grid-row-start:7}.md\:row-start-auto{grid-row-start:auto}.md\:row-end-1{grid-row-end:1}.md\:row-end-2{grid-row-end:2}.md\:row-end-3{grid-row-end:3}.md\:row-end-4{grid-row-end:4}.md\:row-end-5{grid-row-end:5}.md\:row-end-6{grid-row-end:6}.md\:row-end-7{grid-row-end:7}.md\:row-end-auto{grid-row-end:auto}.md\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.md\:transform-none{transform:none}.md\:origin-center{transform-origin:center}.md\:origin-top{transform-origin:top}.md\:origin-top-right{transform-origin:top right}.md\:origin-right{transform-origin:right}.md\:origin-bottom-right{transform-origin:bottom right}.md\:origin-bottom{transform-origin:bottom}.md\:origin-bottom-left{transform-origin:bottom left}.md\:origin-left{transform-origin:left}.md\:origin-top-left{transform-origin:top left}.md\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.md\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.md\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.md\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.md\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.md\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.md\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:scale-x-0{--transform-scale-x:0}.md\:scale-x-50{--transform-scale-x:.5}.md\:scale-x-75{--transform-scale-x:.75}.md\:scale-x-90{--transform-scale-x:.9}.md\:scale-x-95{--transform-scale-x:.95}.md\:scale-x-100{--transform-scale-x:1}.md\:scale-x-105{--transform-scale-x:1.05}.md\:scale-x-110{--transform-scale-x:1.1}.md\:scale-x-125{--transform-scale-x:1.25}.md\:scale-x-150{--transform-scale-x:1.5}.md\:scale-y-0{--transform-scale-y:0}.md\:scale-y-50{--transform-scale-y:.5}.md\:scale-y-75{--transform-scale-y:.75}.md\:scale-y-90{--transform-scale-y:.9}.md\:scale-y-95{--transform-scale-y:.95}.md\:scale-y-100{--transform-scale-y:1}.md\:scale-y-105{--transform-scale-y:1.05}.md\:scale-y-110{--transform-scale-y:1.1}.md\:scale-y-125{--transform-scale-y:1.25}.md\:scale-y-150{--transform-scale-y:1.5}.md\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.md\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.md\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.md\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.md\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.md\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.md\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:hover\:scale-x-0:hover{--transform-scale-x:0}.md\:hover\:scale-x-50:hover{--transform-scale-x:.5}.md\:hover\:scale-x-75:hover{--transform-scale-x:.75}.md\:hover\:scale-x-90:hover{--transform-scale-x:.9}.md\:hover\:scale-x-95:hover{--transform-scale-x:.95}.md\:hover\:scale-x-100:hover{--transform-scale-x:1}.md\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.md\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.md\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.md\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.md\:hover\:scale-y-0:hover{--transform-scale-y:0}.md\:hover\:scale-y-50:hover{--transform-scale-y:.5}.md\:hover\:scale-y-75:hover{--transform-scale-y:.75}.md\:hover\:scale-y-90:hover{--transform-scale-y:.9}.md\:hover\:scale-y-95:hover{--transform-scale-y:.95}.md\:hover\:scale-y-100:hover{--transform-scale-y:1}.md\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.md\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.md\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.md\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.md\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.md\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.md\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.md\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.md\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.md\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.md\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:focus\:scale-x-0:focus{--transform-scale-x:0}.md\:focus\:scale-x-50:focus{--transform-scale-x:.5}.md\:focus\:scale-x-75:focus{--transform-scale-x:.75}.md\:focus\:scale-x-90:focus{--transform-scale-x:.9}.md\:focus\:scale-x-95:focus{--transform-scale-x:.95}.md\:focus\:scale-x-100:focus{--transform-scale-x:1}.md\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.md\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.md\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.md\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.md\:focus\:scale-y-0:focus{--transform-scale-y:0}.md\:focus\:scale-y-50:focus{--transform-scale-y:.5}.md\:focus\:scale-y-75:focus{--transform-scale-y:.75}.md\:focus\:scale-y-90:focus{--transform-scale-y:.9}.md\:focus\:scale-y-95:focus{--transform-scale-y:.95}.md\:focus\:scale-y-100:focus{--transform-scale-y:1}.md\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.md\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.md\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.md\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.md\:rotate-0{--transform-rotate:0}.md\:rotate-1{--transform-rotate:1deg}.md\:rotate-2{--transform-rotate:2deg}.md\:rotate-3{--transform-rotate:3deg}.md\:rotate-6{--transform-rotate:6deg}.md\:rotate-12{--transform-rotate:12deg}.md\:rotate-45{--transform-rotate:45deg}.md\:rotate-90{--transform-rotate:90deg}.md\:rotate-180{--transform-rotate:180deg}.md\:-rotate-180{--transform-rotate:-180deg}.md\:-rotate-90{--transform-rotate:-90deg}.md\:-rotate-45{--transform-rotate:-45deg}.md\:-rotate-12{--transform-rotate:-12deg}.md\:-rotate-6{--transform-rotate:-6deg}.md\:-rotate-3{--transform-rotate:-3deg}.md\:-rotate-2{--transform-rotate:-2deg}.md\:-rotate-1{--transform-rotate:-1deg}.md\:hover\:rotate-0:hover{--transform-rotate:0}.md\:hover\:rotate-1:hover{--transform-rotate:1deg}.md\:hover\:rotate-2:hover{--transform-rotate:2deg}.md\:hover\:rotate-3:hover{--transform-rotate:3deg}.md\:hover\:rotate-6:hover{--transform-rotate:6deg}.md\:hover\:rotate-12:hover{--transform-rotate:12deg}.md\:hover\:rotate-45:hover{--transform-rotate:45deg}.md\:hover\:rotate-90:hover{--transform-rotate:90deg}.md\:hover\:rotate-180:hover{--transform-rotate:180deg}.md\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.md\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.md\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.md\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.md\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.md\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.md\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.md\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.md\:focus\:rotate-0:focus{--transform-rotate:0}.md\:focus\:rotate-1:focus{--transform-rotate:1deg}.md\:focus\:rotate-2:focus{--transform-rotate:2deg}.md\:focus\:rotate-3:focus{--transform-rotate:3deg}.md\:focus\:rotate-6:focus{--transform-rotate:6deg}.md\:focus\:rotate-12:focus{--transform-rotate:12deg}.md\:focus\:rotate-45:focus{--transform-rotate:45deg}.md\:focus\:rotate-90:focus{--transform-rotate:90deg}.md\:focus\:rotate-180:focus{--transform-rotate:180deg}.md\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.md\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.md\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.md\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.md\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.md\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.md\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.md\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.md\:translate-x-0{--transform-translate-x:0}.md\:translate-x-1{--transform-translate-x:0.25rem}.md\:translate-x-2{--transform-translate-x:0.5rem}.md\:translate-x-3{--transform-translate-x:0.75rem}.md\:translate-x-4{--transform-translate-x:1rem}.md\:translate-x-5{--transform-translate-x:1.25rem}.md\:translate-x-6{--transform-translate-x:1.5rem}.md\:translate-x-8{--transform-translate-x:2rem}.md\:translate-x-10{--transform-translate-x:2.5rem}.md\:translate-x-12{--transform-translate-x:3rem}.md\:translate-x-16{--transform-translate-x:4rem}.md\:translate-x-20{--transform-translate-x:5rem}.md\:translate-x-24{--transform-translate-x:6rem}.md\:translate-x-32{--transform-translate-x:8rem}.md\:translate-x-40{--transform-translate-x:10rem}.md\:translate-x-48{--transform-translate-x:12rem}.md\:translate-x-56{--transform-translate-x:14rem}.md\:translate-x-64{--transform-translate-x:16rem}.md\:translate-x-px{--transform-translate-x:1px}.md\:-translate-x-1{--transform-translate-x:-0.25rem}.md\:-translate-x-2{--transform-translate-x:-0.5rem}.md\:-translate-x-3{--transform-translate-x:-0.75rem}.md\:-translate-x-4{--transform-translate-x:-1rem}.md\:-translate-x-5{--transform-translate-x:-1.25rem}.md\:-translate-x-6{--transform-translate-x:-1.5rem}.md\:-translate-x-8{--transform-translate-x:-2rem}.md\:-translate-x-10{--transform-translate-x:-2.5rem}.md\:-translate-x-12{--transform-translate-x:-3rem}.md\:-translate-x-16{--transform-translate-x:-4rem}.md\:-translate-x-20{--transform-translate-x:-5rem}.md\:-translate-x-24{--transform-translate-x:-6rem}.md\:-translate-x-32{--transform-translate-x:-8rem}.md\:-translate-x-40{--transform-translate-x:-10rem}.md\:-translate-x-48{--transform-translate-x:-12rem}.md\:-translate-x-56{--transform-translate-x:-14rem}.md\:-translate-x-64{--transform-translate-x:-16rem}.md\:-translate-x-px{--transform-translate-x:-1px}.md\:-translate-x-full{--transform-translate-x:-100%}.md\:-translate-x-1\/2{--transform-translate-x:-50%}.md\:translate-x-1\/2{--transform-translate-x:50%}.md\:translate-x-full{--transform-translate-x:100%}.md\:translate-y-0{--transform-translate-y:0}.md\:translate-y-1{--transform-translate-y:0.25rem}.md\:translate-y-2{--transform-translate-y:0.5rem}.md\:translate-y-3{--transform-translate-y:0.75rem}.md\:translate-y-4{--transform-translate-y:1rem}.md\:translate-y-5{--transform-translate-y:1.25rem}.md\:translate-y-6{--transform-translate-y:1.5rem}.md\:translate-y-8{--transform-translate-y:2rem}.md\:translate-y-10{--transform-translate-y:2.5rem}.md\:translate-y-12{--transform-translate-y:3rem}.md\:translate-y-16{--transform-translate-y:4rem}.md\:translate-y-20{--transform-translate-y:5rem}.md\:translate-y-24{--transform-translate-y:6rem}.md\:translate-y-32{--transform-translate-y:8rem}.md\:translate-y-40{--transform-translate-y:10rem}.md\:translate-y-48{--transform-translate-y:12rem}.md\:translate-y-56{--transform-translate-y:14rem}.md\:translate-y-64{--transform-translate-y:16rem}.md\:translate-y-px{--transform-translate-y:1px}.md\:-translate-y-1{--transform-translate-y:-0.25rem}.md\:-translate-y-2{--transform-translate-y:-0.5rem}.md\:-translate-y-3{--transform-translate-y:-0.75rem}.md\:-translate-y-4{--transform-translate-y:-1rem}.md\:-translate-y-5{--transform-translate-y:-1.25rem}.md\:-translate-y-6{--transform-translate-y:-1.5rem}.md\:-translate-y-8{--transform-translate-y:-2rem}.md\:-translate-y-10{--transform-translate-y:-2.5rem}.md\:-translate-y-12{--transform-translate-y:-3rem}.md\:-translate-y-16{--transform-translate-y:-4rem}.md\:-translate-y-20{--transform-translate-y:-5rem}.md\:-translate-y-24{--transform-translate-y:-6rem}.md\:-translate-y-32{--transform-translate-y:-8rem}.md\:-translate-y-40{--transform-translate-y:-10rem}.md\:-translate-y-48{--transform-translate-y:-12rem}.md\:-translate-y-56{--transform-translate-y:-14rem}.md\:-translate-y-64{--transform-translate-y:-16rem}.md\:-translate-y-px{--transform-translate-y:-1px}.md\:-translate-y-full{--transform-translate-y:-100%}.md\:-translate-y-1\/2{--transform-translate-y:-50%}.md\:translate-y-1\/2{--transform-translate-y:50%}.md\:translate-y-full{--transform-translate-y:100%}.md\:hover\:translate-x-0:hover{--transform-translate-x:0}.md\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.md\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.md\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.md\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.md\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.md\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.md\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.md\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.md\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.md\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.md\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.md\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.md\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.md\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.md\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.md\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.md\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.md\:hover\:translate-x-px:hover{--transform-translate-x:1px}.md\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.md\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.md\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.md\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.md\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.md\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.md\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.md\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.md\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.md\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.md\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.md\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.md\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.md\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.md\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.md\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.md\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.md\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.md\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.md\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.md\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.md\:hover\:translate-x-full:hover{--transform-translate-x:100%}.md\:hover\:translate-y-0:hover{--transform-translate-y:0}.md\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.md\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.md\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.md\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.md\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.md\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.md\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.md\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.md\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.md\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.md\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.md\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.md\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.md\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.md\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.md\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.md\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.md\:hover\:translate-y-px:hover{--transform-translate-y:1px}.md\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.md\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.md\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.md\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.md\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.md\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.md\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.md\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.md\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.md\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.md\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.md\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.md\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.md\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.md\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.md\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.md\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.md\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.md\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.md\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.md\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.md\:hover\:translate-y-full:hover{--transform-translate-y:100%}.md\:focus\:translate-x-0:focus{--transform-translate-x:0}.md\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.md\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.md\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.md\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.md\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.md\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.md\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.md\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.md\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.md\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.md\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.md\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.md\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.md\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.md\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.md\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.md\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.md\:focus\:translate-x-px:focus{--transform-translate-x:1px}.md\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.md\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.md\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.md\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.md\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.md\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.md\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.md\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.md\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.md\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.md\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.md\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.md\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.md\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.md\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.md\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.md\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.md\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.md\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.md\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.md\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.md\:focus\:translate-x-full:focus{--transform-translate-x:100%}.md\:focus\:translate-y-0:focus{--transform-translate-y:0}.md\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.md\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.md\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.md\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.md\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.md\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.md\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.md\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.md\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.md\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.md\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.md\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.md\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.md\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.md\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.md\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.md\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.md\:focus\:translate-y-px:focus{--transform-translate-y:1px}.md\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.md\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.md\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.md\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.md\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.md\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.md\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.md\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.md\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.md\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.md\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.md\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.md\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.md\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.md\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.md\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.md\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.md\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.md\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.md\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.md\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.md\:focus\:translate-y-full:focus{--transform-translate-y:100%}.md\:skew-x-0{--transform-skew-x:0}.md\:skew-x-1{--transform-skew-x:1deg}.md\:skew-x-2{--transform-skew-x:2deg}.md\:skew-x-3{--transform-skew-x:3deg}.md\:skew-x-6{--transform-skew-x:6deg}.md\:skew-x-12{--transform-skew-x:12deg}.md\:-skew-x-12{--transform-skew-x:-12deg}.md\:-skew-x-6{--transform-skew-x:-6deg}.md\:-skew-x-3{--transform-skew-x:-3deg}.md\:-skew-x-2{--transform-skew-x:-2deg}.md\:-skew-x-1{--transform-skew-x:-1deg}.md\:skew-y-0{--transform-skew-y:0}.md\:skew-y-1{--transform-skew-y:1deg}.md\:skew-y-2{--transform-skew-y:2deg}.md\:skew-y-3{--transform-skew-y:3deg}.md\:skew-y-6{--transform-skew-y:6deg}.md\:skew-y-12{--transform-skew-y:12deg}.md\:-skew-y-12{--transform-skew-y:-12deg}.md\:-skew-y-6{--transform-skew-y:-6deg}.md\:-skew-y-3{--transform-skew-y:-3deg}.md\:-skew-y-2{--transform-skew-y:-2deg}.md\:-skew-y-1{--transform-skew-y:-1deg}.md\:hover\:skew-x-0:hover{--transform-skew-x:0}.md\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.md\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.md\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.md\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.md\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.md\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.md\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.md\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.md\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.md\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.md\:hover\:skew-y-0:hover{--transform-skew-y:0}.md\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.md\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.md\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.md\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.md\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.md\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.md\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.md\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.md\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.md\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.md\:focus\:skew-x-0:focus{--transform-skew-x:0}.md\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.md\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.md\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.md\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.md\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.md\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.md\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.md\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.md\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.md\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.md\:focus\:skew-y-0:focus{--transform-skew-y:0}.md\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.md\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.md\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.md\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.md\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.md\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.md\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.md\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.md\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.md\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.md\:transition-none{transition-property:none}.md\:transition-all{transition-property:all}.md\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.md\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.md\:transition-opacity{transition-property:opacity}.md\:transition-shadow{transition-property:box-shadow}.md\:transition-transform{transition-property:transform}.md\:ease-linear{transition-timing-function:linear}.md\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.md\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.md\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-75{transition-duration:75ms}.md\:duration-100{transition-duration:.1s}.md\:duration-150{transition-duration:.15s}.md\:duration-200{transition-duration:.2s}.md\:duration-300{transition-duration:.3s}.md\:duration-500{transition-duration:.5s}.md\:duration-700{transition-duration:.7s}.md\:duration-1000{transition-duration:1s}.md\:delay-75{transition-delay:75ms}.md\:delay-100{transition-delay:.1s}.md\:delay-150{transition-delay:.15s}.md\:delay-200{transition-delay:.2s}.md\:delay-300{transition-delay:.3s}.md\:delay-500{transition-delay:.5s}.md\:delay-700{transition-delay:.7s}.md\:delay-1000{transition-delay:1s}.md\:animate-none{animation:none}.md\:animate-spin{animation:spin 1s linear infinite}.md\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.md\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.md\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1024px){.lg\:container{width:100%}@media (min-width:360px){.lg\:container{max-width:360px}}@media (min-width:640px){.lg\:container{max-width:640px}}@media (min-width:768px){.lg\:container{max-width:768px}}@media (min-width:1024px){.lg\:container{max-width:1024px}}@media (min-width:1280px){.lg\:container{max-width:1280px}}@media (min-width:1480px){.lg\:container{max-width:1480px}}.lg\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.lg\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.lg\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.lg\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.lg\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.lg\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.lg\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.lg\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.lg\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.lg\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.lg\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.lg\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.lg\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.lg\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.lg\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.lg\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.lg\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.lg\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.lg\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.lg\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.lg\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.lg\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.lg\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.lg\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.lg\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.lg\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.lg\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.lg\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.lg\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.lg\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.lg\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.lg\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.lg\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.lg\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.lg\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.lg\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.lg\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.lg\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.lg\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.lg\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.lg\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.lg\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.lg\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.lg\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.lg\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.lg\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.lg\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.lg\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.lg\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.lg\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.lg\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.lg\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.lg\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.lg\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.lg\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.lg\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.lg\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.lg\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.lg\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.lg\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.lg\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.lg\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.lg\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.lg\:divide-transparent>:not(template)~:not(template){border-color:transparent}.lg\:divide-current>:not(template)~:not(template){border-color:currentColor}.lg\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.lg\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.lg\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.lg\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.lg\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.lg\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.lg\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.lg\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.lg\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.lg\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.lg\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.lg\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.lg\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.lg\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.lg\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.lg\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.lg\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.lg\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.lg\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.lg\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.lg\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.lg\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.lg\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.lg\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.lg\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.lg\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.lg\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.lg\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.lg\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.lg\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.lg\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.lg\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.lg\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.lg\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.lg\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.lg\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.lg\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.lg\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.lg\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.lg\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.lg\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.lg\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.lg\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.lg\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.lg\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.lg\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.lg\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.lg\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.lg\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.lg\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.lg\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.lg\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.lg\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.lg\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.lg\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.lg\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.lg\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.lg\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.lg\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.lg\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.lg\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.lg\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.lg\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.lg\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.lg\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.lg\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.lg\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.lg\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.lg\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.lg\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.lg\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.lg\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.lg\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.lg\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.lg\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.lg\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.lg\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.lg\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.lg\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.lg\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.lg\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.lg\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.lg\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.lg\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.lg\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.lg\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.lg\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.lg\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.lg\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.lg\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.lg\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.lg\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.lg\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.lg\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.lg\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.lg\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.lg\:divide-solid>:not(template)~:not(template){border-style:solid}.lg\:divide-dashed>:not(template)~:not(template){border-style:dashed}.lg\:divide-dotted>:not(template)~:not(template){border-style:dotted}.lg\:divide-double>:not(template)~:not(template){border-style:double}.lg\:divide-none>:not(template)~:not(template){border-style:none}.lg\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.lg\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.lg\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.lg\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.lg\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.lg\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lg\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.lg\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lg\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.lg\:appearance-none{-webkit-appearance:none;appearance:none}.lg\:bg-fixed{background-attachment:fixed}.lg\:bg-local{background-attachment:local}.lg\:bg-scroll{background-attachment:scroll}.lg\:bg-clip-border{background-clip:border-box}.lg\:bg-clip-padding{background-clip:padding-box}.lg\:bg-clip-content{background-clip:content-box}.lg\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.lg\:bg-transparent{background-color:transparent}.lg\:bg-current{background-color:currentColor}.lg\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:hover\:bg-transparent:hover{background-color:transparent}.lg\:hover\:bg-current:hover{background-color:currentColor}.lg\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:focus\:bg-transparent:focus{background-color:transparent}.lg\:focus\:bg-current:focus{background-color:currentColor}.lg\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:bg-none{background-image:none}.lg\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.lg\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.lg\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.lg\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.lg\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:to-transparent{--gradient-to-color:transparent}.lg\:to-current{--gradient-to-color:currentColor}.lg\:to-black{--gradient-to-color:#000}.lg\:to-white{--gradient-to-color:#fff}.lg\:to-gray-100{--gradient-to-color:#f7fafc}.lg\:to-gray-200{--gradient-to-color:#edf2f7}.lg\:to-gray-300{--gradient-to-color:#e2e8f0}.lg\:to-gray-400{--gradient-to-color:#cbd5e0}.lg\:to-gray-500{--gradient-to-color:#a0aec0}.lg\:to-gray-600{--gradient-to-color:#718096}.lg\:to-gray-700{--gradient-to-color:#4a5568}.lg\:to-gray-800{--gradient-to-color:#2d3748}.lg\:to-gray-900{--gradient-to-color:#1a202c}.lg\:to-red-100{--gradient-to-color:#fff5f5}.lg\:to-red-200{--gradient-to-color:#fed7d7}.lg\:to-red-300{--gradient-to-color:#feb2b2}.lg\:to-red-400{--gradient-to-color:#fc8181}.lg\:to-red-500{--gradient-to-color:#f56565}.lg\:to-red-600{--gradient-to-color:#e53e3e}.lg\:to-red-700{--gradient-to-color:#c53030}.lg\:to-red-800{--gradient-to-color:#9b2c2c}.lg\:to-red-900{--gradient-to-color:#742a2a}.lg\:to-orange-100{--gradient-to-color:#fffaf0}.lg\:to-orange-200{--gradient-to-color:#feebc8}.lg\:to-orange-300{--gradient-to-color:#fbd38d}.lg\:to-orange-400{--gradient-to-color:#f6ad55}.lg\:to-orange-500{--gradient-to-color:#ed8936}.lg\:to-orange-600{--gradient-to-color:#dd6b20}.lg\:to-orange-700{--gradient-to-color:#c05621}.lg\:to-orange-800{--gradient-to-color:#9c4221}.lg\:to-orange-900{--gradient-to-color:#7b341e}.lg\:to-yellow-100{--gradient-to-color:ivory}.lg\:to-yellow-200{--gradient-to-color:#fefcbf}.lg\:to-yellow-300{--gradient-to-color:#faf089}.lg\:to-yellow-400{--gradient-to-color:#f6e05e}.lg\:to-yellow-500{--gradient-to-color:#ecc94b}.lg\:to-yellow-600{--gradient-to-color:#d69e2e}.lg\:to-yellow-700{--gradient-to-color:#b7791f}.lg\:to-yellow-800{--gradient-to-color:#975a16}.lg\:to-yellow-900{--gradient-to-color:#744210}.lg\:to-green-100{--gradient-to-color:#f0fff4}.lg\:to-green-200{--gradient-to-color:#c6f6d5}.lg\:to-green-300{--gradient-to-color:#9ae6b4}.lg\:to-green-400{--gradient-to-color:#68d391}.lg\:to-green-500{--gradient-to-color:#48bb78}.lg\:to-green-600{--gradient-to-color:#38a169}.lg\:to-green-700{--gradient-to-color:#2f855a}.lg\:to-green-800{--gradient-to-color:#276749}.lg\:to-green-900{--gradient-to-color:#22543d}.lg\:to-teal-100{--gradient-to-color:#e6fffa}.lg\:to-teal-200{--gradient-to-color:#b2f5ea}.lg\:to-teal-300{--gradient-to-color:#81e6d9}.lg\:to-teal-400{--gradient-to-color:#4fd1c5}.lg\:to-teal-500{--gradient-to-color:#38b2ac}.lg\:to-teal-600{--gradient-to-color:#319795}.lg\:to-teal-700{--gradient-to-color:#2c7a7b}.lg\:to-teal-800{--gradient-to-color:#285e61}.lg\:to-teal-900{--gradient-to-color:#234e52}.lg\:to-blue-100{--gradient-to-color:#ebf8ff}.lg\:to-blue-200{--gradient-to-color:#bee3f8}.lg\:to-blue-300{--gradient-to-color:#90cdf4}.lg\:to-blue-400{--gradient-to-color:#63b3ed}.lg\:to-blue-500{--gradient-to-color:#4299e1}.lg\:to-blue-600{--gradient-to-color:#3182ce}.lg\:to-blue-700{--gradient-to-color:#2b6cb0}.lg\:to-blue-800{--gradient-to-color:#2c5282}.lg\:to-blue-900{--gradient-to-color:#2a4365}.lg\:to-indigo-100{--gradient-to-color:#ebf4ff}.lg\:to-indigo-200{--gradient-to-color:#c3dafe}.lg\:to-indigo-300{--gradient-to-color:#a3bffa}.lg\:to-indigo-400{--gradient-to-color:#7f9cf5}.lg\:to-indigo-500{--gradient-to-color:#667eea}.lg\:to-indigo-600{--gradient-to-color:#5a67d8}.lg\:to-indigo-700{--gradient-to-color:#4c51bf}.lg\:to-indigo-800{--gradient-to-color:#434190}.lg\:to-indigo-900{--gradient-to-color:#3c366b}.lg\:to-purple-100{--gradient-to-color:#faf5ff}.lg\:to-purple-200{--gradient-to-color:#e9d8fd}.lg\:to-purple-300{--gradient-to-color:#d6bcfa}.lg\:to-purple-400{--gradient-to-color:#b794f4}.lg\:to-purple-500{--gradient-to-color:#9f7aea}.lg\:to-purple-600{--gradient-to-color:#805ad5}.lg\:to-purple-700{--gradient-to-color:#6b46c1}.lg\:to-purple-800{--gradient-to-color:#553c9a}.lg\:to-purple-900{--gradient-to-color:#44337a}.lg\:to-pink-100{--gradient-to-color:#fff5f7}.lg\:to-pink-200{--gradient-to-color:#fed7e2}.lg\:to-pink-300{--gradient-to-color:#fbb6ce}.lg\:to-pink-400{--gradient-to-color:#f687b3}.lg\:to-pink-500{--gradient-to-color:#ed64a6}.lg\:to-pink-600{--gradient-to-color:#d53f8c}.lg\:to-pink-700{--gradient-to-color:#b83280}.lg\:to-pink-800{--gradient-to-color:#97266d}.lg\:to-pink-900{--gradient-to-color:#702459}.lg\:to-primary{--gradient-to-color:#00d1ff}.lg\:to-secondary{--gradient-to-color:#e077ff}.lg\:to-greenish-blue{--gradient-to-color:#adffed}.lg\:to-blue-gray{--gradient-to-color:#cfe1e6}.lg\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:hover\:to-transparent:hover{--gradient-to-color:transparent}.lg\:hover\:to-current:hover{--gradient-to-color:currentColor}.lg\:hover\:to-black:hover{--gradient-to-color:#000}.lg\:hover\:to-white:hover{--gradient-to-color:#fff}.lg\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.lg\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.lg\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.lg\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.lg\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.lg\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.lg\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.lg\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.lg\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.lg\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.lg\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.lg\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.lg\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.lg\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.lg\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.lg\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.lg\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.lg\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.lg\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.lg\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.lg\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.lg\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.lg\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.lg\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.lg\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.lg\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.lg\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.lg\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.lg\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.lg\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.lg\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.lg\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.lg\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.lg\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.lg\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.lg\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.lg\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.lg\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.lg\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.lg\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.lg\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.lg\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.lg\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.lg\:hover\:to-green-800:hover{--gradient-to-color:#276749}.lg\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.lg\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.lg\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.lg\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.lg\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.lg\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.lg\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.lg\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.lg\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.lg\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.lg\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.lg\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.lg\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.lg\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.lg\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.lg\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.lg\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.lg\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.lg\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.lg\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.lg\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.lg\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.lg\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.lg\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.lg\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.lg\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.lg\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.lg\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.lg\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.lg\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.lg\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.lg\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.lg\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.lg\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.lg\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.lg\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.lg\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.lg\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.lg\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.lg\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.lg\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.lg\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.lg\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.lg\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.lg\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.lg\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.lg\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.lg\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.lg\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.lg\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.lg\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:focus\:to-transparent:focus{--gradient-to-color:transparent}.lg\:focus\:to-current:focus{--gradient-to-color:currentColor}.lg\:focus\:to-black:focus{--gradient-to-color:#000}.lg\:focus\:to-white:focus{--gradient-to-color:#fff}.lg\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.lg\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.lg\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.lg\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.lg\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.lg\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.lg\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.lg\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.lg\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.lg\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.lg\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.lg\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.lg\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.lg\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.lg\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.lg\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.lg\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.lg\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.lg\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.lg\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.lg\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.lg\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.lg\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.lg\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.lg\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.lg\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.lg\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.lg\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.lg\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.lg\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.lg\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.lg\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.lg\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.lg\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.lg\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.lg\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.lg\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.lg\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.lg\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.lg\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.lg\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.lg\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.lg\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.lg\:focus\:to-green-800:focus{--gradient-to-color:#276749}.lg\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.lg\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.lg\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.lg\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.lg\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.lg\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.lg\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.lg\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.lg\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.lg\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.lg\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.lg\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.lg\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.lg\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.lg\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.lg\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.lg\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.lg\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.lg\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.lg\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.lg\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.lg\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.lg\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.lg\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.lg\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.lg\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.lg\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.lg\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.lg\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.lg\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.lg\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.lg\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.lg\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.lg\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.lg\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.lg\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.lg\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.lg\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.lg\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.lg\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.lg\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.lg\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.lg\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.lg\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.lg\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.lg\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.lg\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.lg\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.lg\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.lg\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.lg\:bg-opacity-0{--bg-opacity:0}.lg\:bg-opacity-25{--bg-opacity:0.25}.lg\:bg-opacity-50{--bg-opacity:0.5}.lg\:bg-opacity-75{--bg-opacity:0.75}.lg\:bg-opacity-100{--bg-opacity:1}.lg\:hover\:bg-opacity-0:hover{--bg-opacity:0}.lg\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.lg\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.lg\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.lg\:hover\:bg-opacity-100:hover{--bg-opacity:1}.lg\:focus\:bg-opacity-0:focus{--bg-opacity:0}.lg\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.lg\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.lg\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.lg\:focus\:bg-opacity-100:focus{--bg-opacity:1}.lg\:bg-bottom{background-position:bottom}.lg\:bg-center{background-position:50%}.lg\:bg-left{background-position:0}.lg\:bg-left-bottom{background-position:0 100%}.lg\:bg-left-top{background-position:0 0}.lg\:bg-right{background-position:100%}.lg\:bg-right-bottom{background-position:100% 100%}.lg\:bg-right-top{background-position:100% 0}.lg\:bg-top{background-position:top}.lg\:bg-repeat{background-repeat:repeat}.lg\:bg-no-repeat{background-repeat:no-repeat}.lg\:bg-repeat-x{background-repeat:repeat-x}.lg\:bg-repeat-y{background-repeat:repeat-y}.lg\:bg-repeat-round{background-repeat:round}.lg\:bg-repeat-space{background-repeat:space}.lg\:bg-auto{background-size:auto}.lg\:bg-cover{background-size:cover}.lg\:bg-contain{background-size:contain}.lg\:border-collapse{border-collapse:collapse}.lg\:border-separate{border-collapse:separate}.lg\:border-transparent{border-color:transparent}.lg\:border-current{border-color:currentColor}.lg\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:hover\:border-transparent:hover{border-color:transparent}.lg\:hover\:border-current:hover{border-color:currentColor}.lg\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:focus\:border-transparent:focus{border-color:transparent}.lg\:focus\:border-current:focus{border-color:currentColor}.lg\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:border-opacity-0{--border-opacity:0}.lg\:border-opacity-25{--border-opacity:0.25}.lg\:border-opacity-50{--border-opacity:0.5}.lg\:border-opacity-75{--border-opacity:0.75}.lg\:border-opacity-100{--border-opacity:1}.lg\:hover\:border-opacity-0:hover{--border-opacity:0}.lg\:hover\:border-opacity-25:hover{--border-opacity:0.25}.lg\:hover\:border-opacity-50:hover{--border-opacity:0.5}.lg\:hover\:border-opacity-75:hover{--border-opacity:0.75}.lg\:hover\:border-opacity-100:hover{--border-opacity:1}.lg\:focus\:border-opacity-0:focus{--border-opacity:0}.lg\:focus\:border-opacity-25:focus{--border-opacity:0.25}.lg\:focus\:border-opacity-50:focus{--border-opacity:0.5}.lg\:focus\:border-opacity-75:focus{--border-opacity:0.75}.lg\:focus\:border-opacity-100:focus{--border-opacity:1}.lg\:rounded-none{border-radius:0}.lg\:rounded-sm{border-radius:.125rem}.lg\:rounded{border-radius:.25rem}.lg\:rounded-md{border-radius:.375rem}.lg\:rounded-lg{border-radius:.5rem}.lg\:rounded-xl{border-radius:.75rem}.lg\:rounded-2xl{border-radius:1rem}.lg\:rounded-3xl{border-radius:1.5rem}.lg\:rounded-full{border-radius:9999px}.lg\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.lg\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.lg\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.lg\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.lg\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.lg\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.lg\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.lg\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.lg\:rounded-t{border-top-left-radius:.25rem}.lg\:rounded-r,.lg\:rounded-t{border-top-right-radius:.25rem}.lg\:rounded-b,.lg\:rounded-r{border-bottom-right-radius:.25rem}.lg\:rounded-b,.lg\:rounded-l{border-bottom-left-radius:.25rem}.lg\:rounded-l{border-top-left-radius:.25rem}.lg\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.lg\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.lg\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.lg\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.lg\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.lg\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.lg\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.lg\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.lg\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.lg\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.lg\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.lg\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.lg\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.lg\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.lg\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.lg\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.lg\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.lg\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.lg\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.lg\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.lg\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.lg\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.lg\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.lg\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.lg\:rounded-tl-none{border-top-left-radius:0}.lg\:rounded-tr-none{border-top-right-radius:0}.lg\:rounded-br-none{border-bottom-right-radius:0}.lg\:rounded-bl-none{border-bottom-left-radius:0}.lg\:rounded-tl-sm{border-top-left-radius:.125rem}.lg\:rounded-tr-sm{border-top-right-radius:.125rem}.lg\:rounded-br-sm{border-bottom-right-radius:.125rem}.lg\:rounded-bl-sm{border-bottom-left-radius:.125rem}.lg\:rounded-tl{border-top-left-radius:.25rem}.lg\:rounded-tr{border-top-right-radius:.25rem}.lg\:rounded-br{border-bottom-right-radius:.25rem}.lg\:rounded-bl{border-bottom-left-radius:.25rem}.lg\:rounded-tl-md{border-top-left-radius:.375rem}.lg\:rounded-tr-md{border-top-right-radius:.375rem}.lg\:rounded-br-md{border-bottom-right-radius:.375rem}.lg\:rounded-bl-md{border-bottom-left-radius:.375rem}.lg\:rounded-tl-lg{border-top-left-radius:.5rem}.lg\:rounded-tr-lg{border-top-right-radius:.5rem}.lg\:rounded-br-lg{border-bottom-right-radius:.5rem}.lg\:rounded-bl-lg{border-bottom-left-radius:.5rem}.lg\:rounded-tl-xl{border-top-left-radius:.75rem}.lg\:rounded-tr-xl{border-top-right-radius:.75rem}.lg\:rounded-br-xl{border-bottom-right-radius:.75rem}.lg\:rounded-bl-xl{border-bottom-left-radius:.75rem}.lg\:rounded-tl-2xl{border-top-left-radius:1rem}.lg\:rounded-tr-2xl{border-top-right-radius:1rem}.lg\:rounded-br-2xl{border-bottom-right-radius:1rem}.lg\:rounded-bl-2xl{border-bottom-left-radius:1rem}.lg\:rounded-tl-3xl{border-top-left-radius:1.5rem}.lg\:rounded-tr-3xl{border-top-right-radius:1.5rem}.lg\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.lg\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.lg\:rounded-tl-full{border-top-left-radius:9999px}.lg\:rounded-tr-full{border-top-right-radius:9999px}.lg\:rounded-br-full{border-bottom-right-radius:9999px}.lg\:rounded-bl-full{border-bottom-left-radius:9999px}.lg\:border-solid{border-style:solid}.lg\:border-dashed{border-style:dashed}.lg\:border-dotted{border-style:dotted}.lg\:border-double{border-style:double}.lg\:border-none{border-style:none}.lg\:border-0{border-width:0}.lg\:border-2{border-width:2px}.lg\:border-4{border-width:4px}.lg\:border-8{border-width:8px}.lg\:border{border-width:1px}.lg\:border-t-0{border-top-width:0}.lg\:border-r-0{border-right-width:0}.lg\:border-b-0{border-bottom-width:0}.lg\:border-l-0{border-left-width:0}.lg\:border-t-2{border-top-width:2px}.lg\:border-r-2{border-right-width:2px}.lg\:border-b-2{border-bottom-width:2px}.lg\:border-l-2{border-left-width:2px}.lg\:border-t-4{border-top-width:4px}.lg\:border-r-4{border-right-width:4px}.lg\:border-b-4{border-bottom-width:4px}.lg\:border-l-4{border-left-width:4px}.lg\:border-t-8{border-top-width:8px}.lg\:border-r-8{border-right-width:8px}.lg\:border-b-8{border-bottom-width:8px}.lg\:border-l-8{border-left-width:8px}.lg\:border-t{border-top-width:1px}.lg\:border-r{border-right-width:1px}.lg\:border-b{border-bottom-width:1px}.lg\:border-l{border-left-width:1px}.lg\:box-border{box-sizing:border-box}.lg\:box-content{box-sizing:content-box}.lg\:cursor-auto{cursor:auto}.lg\:cursor-default{cursor:default}.lg\:cursor-pointer{cursor:pointer}.lg\:cursor-wait{cursor:wait}.lg\:cursor-text{cursor:text}.lg\:cursor-move{cursor:move}.lg\:cursor-not-allowed{cursor:not-allowed}.lg\:block{display:block}.lg\:inline-block{display:inline-block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:table{display:table}.lg\:table-caption{display:table-caption}.lg\:table-cell{display:table-cell}.lg\:table-column{display:table-column}.lg\:table-column-group{display:table-column-group}.lg\:table-footer-group{display:table-footer-group}.lg\:table-header-group{display:table-header-group}.lg\:table-row-group{display:table-row-group}.lg\:table-row{display:table-row}.lg\:flow-root{display:flow-root}.lg\:grid{display:grid}.lg\:inline-grid{display:inline-grid}.lg\:contents{display:contents}.lg\:hidden{display:none}.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-col{flex-direction:column}.lg\:flex-col-reverse{flex-direction:column-reverse}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:flex-no-wrap{flex-wrap:nowrap}.lg\:place-items-auto{place-items:auto}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch}.lg\:place-content-center{place-content:center}.lg\:place-content-start{place-content:start}.lg\:place-content-end{place-content:end}.lg\:place-content-between{place-content:space-between}.lg\:place-content-around{place-content:space-around}.lg\:place-content-evenly{place-content:space-evenly}.lg\:place-content-stretch{place-content:stretch}.lg\:place-self-auto{place-self:auto}.lg\:place-self-start{place-self:start}.lg\:place-self-end{place-self:end}.lg\:place-self-center{place-self:center}.lg\:place-self-stretch{place-self:stretch}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:items-baseline{align-items:baseline}.lg\:items-stretch{align-items:stretch}.lg\:content-center{align-content:center}.lg\:content-start{align-content:flex-start}.lg\:content-end{align-content:flex-end}.lg\:content-between{align-content:space-between}.lg\:content-around{align-content:space-around}.lg\:content-evenly{align-content:space-evenly}.lg\:self-auto{align-self:auto}.lg\:self-start{align-self:flex-start}.lg\:self-end{align-self:flex-end}.lg\:self-center{align-self:center}.lg\:self-stretch{align-self:stretch}.lg\:justify-items-auto{justify-items:auto}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:justify-center{justify-content:center}.lg\:justify-between{justify-content:space-between}.lg\:justify-around{justify-content:space-around}.lg\:justify-evenly{justify-content:space-evenly}.lg\:justify-self-auto{justify-self:auto}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:justify-self-stretch{justify-self:stretch}.lg\:flex-1{flex:1 1 0%}.lg\:flex-auto{flex:1 1 auto}.lg\:flex-initial{flex:0 1 auto}.lg\:flex-none{flex:none}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink{flex-shrink:1}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-6{order:6}.lg\:order-7{order:7}.lg\:order-8{order:8}.lg\:order-9{order:9}.lg\:order-10{order:10}.lg\:order-11{order:11}.lg\:order-12{order:12}.lg\:order-first{order:-9999}.lg\:order-last{order:9999}.lg\:order-none{order:0}.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:float-none{float:none}.lg\:clearfix:after{content:"";display:table;clear:both}.lg\:clear-left{clear:left}.lg\:clear-right{clear:right}.lg\:clear-both{clear:both}.lg\:clear-none{clear:none}.lg\:font-sans{font-family: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}.lg\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.lg\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lg\:font-hairline{font-weight:100}.lg\:font-thin{font-weight:200}.lg\:font-light{font-weight:300}.lg\:font-normal{font-weight:400}.lg\:font-medium{font-weight:500}.lg\:font-semibold{font-weight:600}.lg\:font-bold{font-weight:700}.lg\:font-extrabold{font-weight:800}.lg\:font-black{font-weight:900}.lg\:hover\:font-hairline:hover{font-weight:100}.lg\:hover\:font-thin:hover{font-weight:200}.lg\:hover\:font-light:hover{font-weight:300}.lg\:hover\:font-normal:hover{font-weight:400}.lg\:hover\:font-medium:hover{font-weight:500}.lg\:hover\:font-semibold:hover{font-weight:600}.lg\:hover\:font-bold:hover{font-weight:700}.lg\:hover\:font-extrabold:hover{font-weight:800}.lg\:hover\:font-black:hover{font-weight:900}.lg\:focus\:font-hairline:focus{font-weight:100}.lg\:focus\:font-thin:focus{font-weight:200}.lg\:focus\:font-light:focus{font-weight:300}.lg\:focus\:font-normal:focus{font-weight:400}.lg\:focus\:font-medium:focus{font-weight:500}.lg\:focus\:font-semibold:focus{font-weight:600}.lg\:focus\:font-bold:focus{font-weight:700}.lg\:focus\:font-extrabold:focus{font-weight:800}.lg\:focus\:font-black:focus{font-weight:900}.lg\:h-0{height:0}.lg\:h-1{height:.25rem}.lg\:h-2{height:.5rem}.lg\:h-3{height:.75rem}.lg\:h-4{height:1rem}.lg\:h-5{height:1.25rem}.lg\:h-6{height:1.5rem}.lg\:h-8{height:2rem}.lg\:h-10{height:2.5rem}.lg\:h-12{height:3rem}.lg\:h-16{height:4rem}.lg\:h-20{height:5rem}.lg\:h-24{height:6rem}.lg\:h-32{height:8rem}.lg\:h-40{height:10rem}.lg\:h-48{height:12rem}.lg\:h-56{height:14rem}.lg\:h-64{height:16rem}.lg\:h-auto{height:auto}.lg\:h-px{height:1px}.lg\:h-full{height:100%}.lg\:h-screen{height:100vh}.lg\:text-xs{font-size:.75rem}.lg\:text-sm{font-size:.875rem}.lg\:text-base{font-size:1rem}.lg\:text-lg{font-size:1.125rem}.lg\:text-xl{font-size:1.25rem}.lg\:text-2xl{font-size:1.5rem}.lg\:text-3xl{font-size:1.875rem}.lg\:text-4xl{font-size:2.25rem}.lg\:text-5xl{font-size:3rem}.lg\:text-6xl{font-size:4rem}.lg\:leading-3{line-height:.75rem}.lg\:leading-4{line-height:1rem}.lg\:leading-5{line-height:1.25rem}.lg\:leading-6{line-height:1.5rem}.lg\:leading-7{line-height:1.75rem}.lg\:leading-8{line-height:2rem}.lg\:leading-9{line-height:2.25rem}.lg\:leading-10{line-height:2.5rem}.lg\:leading-none{line-height:1}.lg\:leading-tight{line-height:1.25}.lg\:leading-snug{line-height:1.375}.lg\:leading-normal{line-height:1.5}.lg\:leading-relaxed{line-height:1.625}.lg\:leading-loose{line-height:2}.lg\:list-inside{list-style-position:inside}.lg\:list-outside{list-style-position:outside}.lg\:list-none{list-style-type:none}.lg\:list-disc{list-style-type:disc}.lg\:list-decimal{list-style-type:decimal}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-8{margin:2rem}.lg\:m-10{margin:2.5rem}.lg\:m-12{margin:3rem}.lg\:m-16{margin:4rem}.lg\:m-20{margin:5rem}.lg\:m-24{margin:6rem}.lg\:m-32{margin:8rem}.lg\:m-40{margin:10rem}.lg\:m-48{margin:12rem}.lg\:m-56{margin:14rem}.lg\:m-64{margin:16rem}.lg\:m-auto{margin:auto}.lg\:m-px{margin:1px}.lg\:-m-1{margin:-.25rem}.lg\:-m-2{margin:-.5rem}.lg\:-m-3{margin:-.75rem}.lg\:-m-4{margin:-1rem}.lg\:-m-5{margin:-1.25rem}.lg\:-m-6{margin:-1.5rem}.lg\:-m-8{margin:-2rem}.lg\:-m-10{margin:-2.5rem}.lg\:-m-12{margin:-3rem}.lg\:-m-16{margin:-4rem}.lg\:-m-20{margin:-5rem}.lg\:-m-24{margin:-6rem}.lg\:-m-32{margin:-8rem}.lg\:-m-40{margin:-10rem}.lg\:-m-48{margin:-12rem}.lg\:-m-56{margin:-14rem}.lg\:-m-64{margin:-16rem}.lg\:-m-px{margin:-1px}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:my-1{margin-top:.25rem;margin-bottom:.25rem}.lg\:mx-1{margin-left:.25rem;margin-right:.25rem}.lg\:my-2{margin-top:.5rem;margin-bottom:.5rem}.lg\:mx-2{margin-left:.5rem;margin-right:.5rem}.lg\:my-3{margin-top:.75rem;margin-bottom:.75rem}.lg\:mx-3{margin-left:.75rem;margin-right:.75rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:my-8{margin-top:2rem;margin-bottom:2rem}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.lg\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:mx-12{margin-left:3rem;margin-right:3rem}.lg\:my-16{margin-top:4rem;margin-bottom:4rem}.lg\:mx-16{margin-left:4rem;margin-right:4rem}.lg\:my-20{margin-top:5rem;margin-bottom:5rem}.lg\:mx-20{margin-left:5rem;margin-right:5rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-24{margin-left:6rem;margin-right:6rem}.lg\:my-32{margin-top:8rem;margin-bottom:8rem}.lg\:mx-32{margin-left:8rem;margin-right:8rem}.lg\:my-40{margin-top:10rem;margin-bottom:10rem}.lg\:mx-40{margin-left:10rem;margin-right:10rem}.lg\:my-48{margin-top:12rem;margin-bottom:12rem}.lg\:mx-48{margin-left:12rem;margin-right:12rem}.lg\:my-56{margin-top:14rem;margin-bottom:14rem}.lg\:mx-56{margin-left:14rem;margin-right:14rem}.lg\:my-64{margin-top:16rem;margin-bottom:16rem}.lg\:mx-64{margin-left:16rem;margin-right:16rem}.lg\:my-auto{margin-top:auto;margin-bottom:auto}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:my-px{margin-top:1px;margin-bottom:1px}.lg\:mx-px{margin-left:1px;margin-right:1px}.lg\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.lg\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lg\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.lg\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.lg\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.lg\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.lg\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.lg\:-mx-4{margin-left:-1rem;margin-right:-1rem}.lg\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.lg\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lg\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.lg\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.lg\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.lg\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.lg\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.lg\:-mx-12{margin-left:-3rem;margin-right:-3rem}.lg\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.lg\:-mx-16{margin-left:-4rem;margin-right:-4rem}.lg\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.lg\:-mx-20{margin-left:-5rem;margin-right:-5rem}.lg\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.lg\:-mx-24{margin-left:-6rem;margin-right:-6rem}.lg\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.lg\:-mx-32{margin-left:-8rem;margin-right:-8rem}.lg\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.lg\:-mx-40{margin-left:-10rem;margin-right:-10rem}.lg\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.lg\:-mx-48{margin-left:-12rem;margin-right:-12rem}.lg\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.lg\:-mx-56{margin-left:-14rem;margin-right:-14rem}.lg\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.lg\:-mx-64{margin-left:-16rem;margin-right:-16rem}.lg\:-my-px{margin-top:-1px;margin-bottom:-1px}.lg\:-mx-px{margin-left:-1px;margin-right:-1px}.lg\:mt-0{margin-top:0}.lg\:mr-0{margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:ml-0{margin-left:0}.lg\:mt-1{margin-top:.25rem}.lg\:mr-1{margin-right:.25rem}.lg\:mb-1{margin-bottom:.25rem}.lg\:ml-1{margin-left:.25rem}.lg\:mt-2{margin-top:.5rem}.lg\:mr-2{margin-right:.5rem}.lg\:mb-2{margin-bottom:.5rem}.lg\:ml-2{margin-left:.5rem}.lg\:mt-3{margin-top:.75rem}.lg\:mr-3{margin-right:.75rem}.lg\:mb-3{margin-bottom:.75rem}.lg\:ml-3{margin-left:.75rem}.lg\:mt-4{margin-top:1rem}.lg\:mr-4{margin-right:1rem}.lg\:mb-4{margin-bottom:1rem}.lg\:ml-4{margin-left:1rem}.lg\:mt-5{margin-top:1.25rem}.lg\:mr-5{margin-right:1.25rem}.lg\:mb-5{margin-bottom:1.25rem}.lg\:ml-5{margin-left:1.25rem}.lg\:mt-6{margin-top:1.5rem}.lg\:mr-6{margin-right:1.5rem}.lg\:mb-6{margin-bottom:1.5rem}.lg\:ml-6{margin-left:1.5rem}.lg\:mt-8{margin-top:2rem}.lg\:mr-8{margin-right:2rem}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-8{margin-left:2rem}.lg\:mt-10{margin-top:2.5rem}.lg\:mr-10{margin-right:2.5rem}.lg\:mb-10{margin-bottom:2.5rem}.lg\:ml-10{margin-left:2.5rem}.lg\:mt-12{margin-top:3rem}.lg\:mr-12{margin-right:3rem}.lg\:mb-12{margin-bottom:3rem}.lg\:ml-12{margin-left:3rem}.lg\:mt-16{margin-top:4rem}.lg\:mr-16{margin-right:4rem}.lg\:mb-16{margin-bottom:4rem}.lg\:ml-16{margin-left:4rem}.lg\:mt-20{margin-top:5rem}.lg\:mr-20{margin-right:5rem}.lg\:mb-20{margin-bottom:5rem}.lg\:ml-20{margin-left:5rem}.lg\:mt-24{margin-top:6rem}.lg\:mr-24{margin-right:6rem}.lg\:mb-24{margin-bottom:6rem}.lg\:ml-24{margin-left:6rem}.lg\:mt-32{margin-top:8rem}.lg\:mr-32{margin-right:8rem}.lg\:mb-32{margin-bottom:8rem}.lg\:ml-32{margin-left:8rem}.lg\:mt-40{margin-top:10rem}.lg\:mr-40{margin-right:10rem}.lg\:mb-40{margin-bottom:10rem}.lg\:ml-40{margin-left:10rem}.lg\:mt-48{margin-top:12rem}.lg\:mr-48{margin-right:12rem}.lg\:mb-48{margin-bottom:12rem}.lg\:ml-48{margin-left:12rem}.lg\:mt-56{margin-top:14rem}.lg\:mr-56{margin-right:14rem}.lg\:mb-56{margin-bottom:14rem}.lg\:ml-56{margin-left:14rem}.lg\:mt-64{margin-top:16rem}.lg\:mr-64{margin-right:16rem}.lg\:mb-64{margin-bottom:16rem}.lg\:ml-64{margin-left:16rem}.lg\:mt-auto{margin-top:auto}.lg\:mr-auto{margin-right:auto}.lg\:mb-auto{margin-bottom:auto}.lg\:ml-auto{margin-left:auto}.lg\:mt-px{margin-top:1px}.lg\:mr-px{margin-right:1px}.lg\:mb-px{margin-bottom:1px}.lg\:ml-px{margin-left:1px}.lg\:-mt-1{margin-top:-.25rem}.lg\:-mr-1{margin-right:-.25rem}.lg\:-mb-1{margin-bottom:-.25rem}.lg\:-ml-1{margin-left:-.25rem}.lg\:-mt-2{margin-top:-.5rem}.lg\:-mr-2{margin-right:-.5rem}.lg\:-mb-2{margin-bottom:-.5rem}.lg\:-ml-2{margin-left:-.5rem}.lg\:-mt-3{margin-top:-.75rem}.lg\:-mr-3{margin-right:-.75rem}.lg\:-mb-3{margin-bottom:-.75rem}.lg\:-ml-3{margin-left:-.75rem}.lg\:-mt-4{margin-top:-1rem}.lg\:-mr-4{margin-right:-1rem}.lg\:-mb-4{margin-bottom:-1rem}.lg\:-ml-4{margin-left:-1rem}.lg\:-mt-5{margin-top:-1.25rem}.lg\:-mr-5{margin-right:-1.25rem}.lg\:-mb-5{margin-bottom:-1.25rem}.lg\:-ml-5{margin-left:-1.25rem}.lg\:-mt-6{margin-top:-1.5rem}.lg\:-mr-6{margin-right:-1.5rem}.lg\:-mb-6{margin-bottom:-1.5rem}.lg\:-ml-6{margin-left:-1.5rem}.lg\:-mt-8{margin-top:-2rem}.lg\:-mr-8{margin-right:-2rem}.lg\:-mb-8{margin-bottom:-2rem}.lg\:-ml-8{margin-left:-2rem}.lg\:-mt-10{margin-top:-2.5rem}.lg\:-mr-10{margin-right:-2.5rem}.lg\:-mb-10{margin-bottom:-2.5rem}.lg\:-ml-10{margin-left:-2.5rem}.lg\:-mt-12{margin-top:-3rem}.lg\:-mr-12{margin-right:-3rem}.lg\:-mb-12{margin-bottom:-3rem}.lg\:-ml-12{margin-left:-3rem}.lg\:-mt-16{margin-top:-4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:-mb-16{margin-bottom:-4rem}.lg\:-ml-16{margin-left:-4rem}.lg\:-mt-20{margin-top:-5rem}.lg\:-mr-20{margin-right:-5rem}.lg\:-mb-20{margin-bottom:-5rem}.lg\:-ml-20{margin-left:-5rem}.lg\:-mt-24{margin-top:-6rem}.lg\:-mr-24{margin-right:-6rem}.lg\:-mb-24{margin-bottom:-6rem}.lg\:-ml-24{margin-left:-6rem}.lg\:-mt-32{margin-top:-8rem}.lg\:-mr-32{margin-right:-8rem}.lg\:-mb-32{margin-bottom:-8rem}.lg\:-ml-32{margin-left:-8rem}.lg\:-mt-40{margin-top:-10rem}.lg\:-mr-40{margin-right:-10rem}.lg\:-mb-40{margin-bottom:-10rem}.lg\:-ml-40{margin-left:-10rem}.lg\:-mt-48{margin-top:-12rem}.lg\:-mr-48{margin-right:-12rem}.lg\:-mb-48{margin-bottom:-12rem}.lg\:-ml-48{margin-left:-12rem}.lg\:-mt-56{margin-top:-14rem}.lg\:-mr-56{margin-right:-14rem}.lg\:-mb-56{margin-bottom:-14rem}.lg\:-ml-56{margin-left:-14rem}.lg\:-mt-64{margin-top:-16rem}.lg\:-mr-64{margin-right:-16rem}.lg\:-mb-64{margin-bottom:-16rem}.lg\:-ml-64{margin-left:-16rem}.lg\:-mt-px{margin-top:-1px}.lg\:-mr-px{margin-right:-1px}.lg\:-mb-px{margin-bottom:-1px}.lg\:-ml-px{margin-left:-1px}.lg\:max-h-full{max-height:100%}.lg\:max-h-screen{max-height:100vh}.lg\:max-w-none{max-width:none}.lg\:max-w-xs{max-width:20rem}.lg\:max-w-sm{max-width:24rem}.lg\:max-w-md{max-width:28rem}.lg\:max-w-lg{max-width:32rem}.lg\:max-w-xl{max-width:36rem}.lg\:max-w-2xl{max-width:42rem}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-5xl{max-width:64rem}.lg\:max-w-6xl{max-width:72rem}.lg\:max-w-full{max-width:100%}.lg\:max-w-screen-xs{max-width:360px}.lg\:max-w-screen-sm{max-width:640px}.lg\:max-w-screen-md{max-width:768px}.lg\:max-w-screen-lg{max-width:1024px}.lg\:max-w-screen-xl{max-width:1280px}.lg\:max-w-screen-xxl{max-width:1480px}.lg\:min-h-0{min-height:0}.lg\:min-h-full{min-height:100%}.lg\:min-h-screen{min-height:100vh}.lg\:min-w-0{min-width:0}.lg\:min-w-full{min-width:100%}.lg\:object-contain{-o-object-fit:contain;object-fit:contain}.lg\:object-cover{-o-object-fit:cover;object-fit:cover}.lg\:object-fill{-o-object-fit:fill;object-fit:fill}.lg\:object-none{-o-object-fit:none;object-fit:none}.lg\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.lg\:object-bottom{-o-object-position:bottom;object-position:bottom}.lg\:object-center{-o-object-position:center;object-position:center}.lg\:object-left{-o-object-position:left;object-position:left}.lg\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.lg\:object-left-top{-o-object-position:left top;object-position:left top}.lg\:object-right{-o-object-position:right;object-position:right}.lg\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.lg\:object-right-top{-o-object-position:right top;object-position:right top}.lg\:object-top{-o-object-position:top;object-position:top}.lg\:opacity-0{opacity:0}.lg\:opacity-25{opacity:.25}.lg\:opacity-50{opacity:.5}.lg\:opacity-75{opacity:.75}.lg\:opacity-100{opacity:1}.lg\:hover\:opacity-0:hover{opacity:0}.lg\:hover\:opacity-25:hover{opacity:.25}.lg\:hover\:opacity-50:hover{opacity:.5}.lg\:hover\:opacity-75:hover{opacity:.75}.lg\:hover\:opacity-100:hover{opacity:1}.lg\:focus\:opacity-0:focus{opacity:0}.lg\:focus\:opacity-25:focus{opacity:.25}.lg\:focus\:opacity-50:focus{opacity:.5}.lg\:focus\:opacity-75:focus{opacity:.75}.lg\:focus\:opacity-100:focus{opacity:1}.lg\:outline-none{outline:2px solid transparent;outline-offset:2px}.lg\:outline-white{outline:2px dotted #fff;outline-offset:2px}.lg\:outline-black{outline:2px dotted #000;outline-offset:2px}.lg\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lg\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.lg\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.lg\:overflow-auto{overflow:auto}.lg\:overflow-hidden{overflow:hidden}.lg\:overflow-visible{overflow:visible}.lg\:overflow-scroll{overflow:scroll}.lg\:overflow-x-auto{overflow-x:auto}.lg\:overflow-y-auto{overflow-y:auto}.lg\:overflow-x-hidden{overflow-x:hidden}.lg\:overflow-y-hidden{overflow-y:hidden}.lg\:overflow-x-visible{overflow-x:visible}.lg\:overflow-y-visible{overflow-y:visible}.lg\:overflow-x-scroll{overflow-x:scroll}.lg\:overflow-y-scroll{overflow-y:scroll}.lg\:scrolling-touch{-webkit-overflow-scrolling:touch}.lg\:scrolling-auto{-webkit-overflow-scrolling:auto}.lg\:overscroll-auto{overscroll-behavior:auto}.lg\:overscroll-contain{overscroll-behavior:contain}.lg\:overscroll-none{overscroll-behavior:none}.lg\:overscroll-y-auto{overscroll-behavior-y:auto}.lg\:overscroll-y-contain{overscroll-behavior-y:contain}.lg\:overscroll-y-none{overscroll-behavior-y:none}.lg\:overscroll-x-auto{overscroll-behavior-x:auto}.lg\:overscroll-x-contain{overscroll-behavior-x:contain}.lg\:overscroll-x-none{overscroll-behavior-x:none}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:p-10{padding:2.5rem}.lg\:p-12{padding:3rem}.lg\:p-16{padding:4rem}.lg\:p-20{padding:5rem}.lg\:p-24{padding:6rem}.lg\:p-32{padding:8rem}.lg\:p-40{padding:10rem}.lg\:p-48{padding:12rem}.lg\:p-56{padding:14rem}.lg\:p-64{padding:16rem}.lg\:p-px{padding:1px}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:px-0{padding-left:0;padding-right:0}.lg\:py-1{padding-top:.25rem;padding-bottom:.25rem}.lg\:px-1{padding-left:.25rem;padding-right:.25rem}.lg\:py-2{padding-top:.5rem;padding-bottom:.5rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:py-3{padding-top:.75rem;padding-bottom:.75rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:px-20{padding-left:5rem;padding-right:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:px-24{padding-left:6rem;padding-right:6rem}.lg\:py-32{padding-top:8rem;padding-bottom:8rem}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:py-40{padding-top:10rem;padding-bottom:10rem}.lg\:px-40{padding-left:10rem;padding-right:10rem}.lg\:py-48{padding-top:12rem;padding-bottom:12rem}.lg\:px-48{padding-left:12rem;padding-right:12rem}.lg\:py-56{padding-top:14rem;padding-bottom:14rem}.lg\:px-56{padding-left:14rem;padding-right:14rem}.lg\:py-64{padding-top:16rem;padding-bottom:16rem}.lg\:px-64{padding-left:16rem;padding-right:16rem}.lg\:py-px{padding-top:1px;padding-bottom:1px}.lg\:px-px{padding-left:1px;padding-right:1px}.lg\:pt-0{padding-top:0}.lg\:pr-0{padding-right:0}.lg\:pb-0{padding-bottom:0}.lg\:pl-0{padding-left:0}.lg\:pt-1{padding-top:.25rem}.lg\:pr-1{padding-right:.25rem}.lg\:pb-1{padding-bottom:.25rem}.lg\:pl-1{padding-left:.25rem}.lg\:pt-2{padding-top:.5rem}.lg\:pr-2{padding-right:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:pt-3{padding-top:.75rem}.lg\:pr-3{padding-right:.75rem}.lg\:pb-3{padding-bottom:.75rem}.lg\:pl-3{padding-left:.75rem}.lg\:pt-4{padding-top:1rem}.lg\:pr-4{padding-right:1rem}.lg\:pb-4{padding-bottom:1rem}.lg\:pl-4{padding-left:1rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pr-5{padding-right:1.25rem}.lg\:pb-5{padding-bottom:1.25rem}.lg\:pl-5{padding-left:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:pr-6{padding-right:1.5rem}.lg\:pb-6{padding-bottom:1.5rem}.lg\:pl-6{padding-left:1.5rem}.lg\:pt-8{padding-top:2rem}.lg\:pr-8{padding-right:2rem}.lg\:pb-8{padding-bottom:2rem}.lg\:pl-8{padding-left:2rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pr-10{padding-right:2.5rem}.lg\:pb-10{padding-bottom:2.5rem}.lg\:pl-10{padding-left:2.5rem}.lg\:pt-12{padding-top:3rem}.lg\:pr-12{padding-right:3rem}.lg\:pb-12{padding-bottom:3rem}.lg\:pl-12{padding-left:3rem}.lg\:pt-16{padding-top:4rem}.lg\:pr-16{padding-right:4rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pl-16{padding-left:4rem}.lg\:pt-20{padding-top:5rem}.lg\:pr-20{padding-right:5rem}.lg\:pb-20{padding-bottom:5rem}.lg\:pl-20{padding-left:5rem}.lg\:pt-24{padding-top:6rem}.lg\:pr-24{padding-right:6rem}.lg\:pb-24{padding-bottom:6rem}.lg\:pl-24{padding-left:6rem}.lg\:pt-32{padding-top:8rem}.lg\:pr-32{padding-right:8rem}.lg\:pb-32{padding-bottom:8rem}.lg\:pl-32{padding-left:8rem}.lg\:pt-40{padding-top:10rem}.lg\:pr-40{padding-right:10rem}.lg\:pb-40{padding-bottom:10rem}.lg\:pl-40{padding-left:10rem}.lg\:pt-48{padding-top:12rem}.lg\:pr-48{padding-right:12rem}.lg\:pb-48{padding-bottom:12rem}.lg\:pl-48{padding-left:12rem}.lg\:pt-56{padding-top:14rem}.lg\:pr-56{padding-right:14rem}.lg\:pb-56{padding-bottom:14rem}.lg\:pl-56{padding-left:14rem}.lg\:pt-64{padding-top:16rem}.lg\:pr-64{padding-right:16rem}.lg\:pb-64{padding-bottom:16rem}.lg\:pl-64{padding-left:16rem}.lg\:pt-px{padding-top:1px}.lg\:pr-px{padding-right:1px}.lg\:pb-px{padding-bottom:1px}.lg\:pl-px{padding-left:1px}.lg\:placeholder-transparent::placeholder{color:transparent}.lg\:placeholder-current::placeholder{color:currentColor}.lg\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.lg\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.lg\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.lg\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.lg\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.lg\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.lg\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.lg\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.lg\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.lg\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.lg\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.lg\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.lg\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.lg\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.lg\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.lg\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.lg\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.lg\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.lg\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.lg\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.lg\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.lg\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.lg\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.lg\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.lg\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.lg\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.lg\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.lg\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.lg\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.lg\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.lg\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.lg\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.lg\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.lg\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.lg\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.lg\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.lg\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.lg\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.lg\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.lg\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.lg\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.lg\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.lg\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.lg\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.lg\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.lg\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.lg\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.lg\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.lg\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.lg\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.lg\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.lg\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.lg\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.lg\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.lg\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.lg\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.lg\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.lg\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.lg\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.lg\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.lg\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.lg\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.lg\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.lg\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.lg\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.lg\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.lg\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.lg\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.lg\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.lg\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.lg\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.lg\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.lg\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.lg\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.lg\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.lg\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.lg\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.lg\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.lg\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.lg\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.lg\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.lg\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.lg\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.lg\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.lg\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.lg\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.lg\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.lg\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.lg\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.lg\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.lg\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.lg\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.lg\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.lg\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.lg\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.lg\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.lg\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.lg\:focus\:placeholder-current:focus::placeholder{color:currentColor}.lg\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.lg\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.lg\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.lg\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.lg\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.lg\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.lg\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.lg\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.lg\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.lg\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.lg\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.lg\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.lg\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.lg\:pointer-events-none{pointer-events:none}.lg\:pointer-events-auto{pointer-events:auto}.lg\:static{position:static}.lg\:fixed{position:fixed}.lg\:absolute{position:absolute}.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:inset-0{top:0;right:0;bottom:0;left:0}.lg\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.lg\:inset-y-0{top:0;bottom:0}.lg\:inset-x-0{right:0;left:0}.lg\:inset-y-auto{top:auto;bottom:auto}.lg\:inset-x-auto{right:auto;left:auto}.lg\:top-0{top:0}.lg\:right-0{right:0}.lg\:bottom-0{bottom:0}.lg\:left-0{left:0}.lg\:top-auto{top:auto}.lg\:right-auto{right:auto}.lg\:bottom-auto{bottom:auto}.lg\:left-auto{left:auto}.lg\:resize-none{resize:none}.lg\:resize-y{resize:vertical}.lg\:resize-x{resize:horizontal}.lg\:resize{resize:both}.lg\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:shadow-none{box-shadow:none}.lg\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:hover\:shadow-none:hover{box-shadow:none}.lg\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:focus\:shadow-none:focus{box-shadow:none}.lg\:fill-current{fill:currentColor}.lg\:stroke-current{stroke:currentColor}.lg\:stroke-0{stroke-width:0}.lg\:stroke-1{stroke-width:1}.lg\:stroke-2{stroke-width:2}.lg\:table-auto{table-layout:auto}.lg\:table-fixed{table-layout:fixed}.lg\:text-left{text-align:left}.lg\:text-center{text-align:center}.lg\:text-right{text-align:right}.lg\:text-justify{text-align:justify}.lg\:text-transparent{color:transparent}.lg\:text-current{color:currentColor}.lg\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:hover\:text-transparent:hover{color:transparent}.lg\:hover\:text-current:hover{color:currentColor}.lg\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:focus\:text-transparent:focus{color:transparent}.lg\:focus\:text-current:focus{color:currentColor}.lg\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:text-opacity-0{--text-opacity:0}.lg\:text-opacity-25{--text-opacity:0.25}.lg\:text-opacity-50{--text-opacity:0.5}.lg\:text-opacity-75{--text-opacity:0.75}.lg\:text-opacity-100{--text-opacity:1}.lg\:hover\:text-opacity-0:hover{--text-opacity:0}.lg\:hover\:text-opacity-25:hover{--text-opacity:0.25}.lg\:hover\:text-opacity-50:hover{--text-opacity:0.5}.lg\:hover\:text-opacity-75:hover{--text-opacity:0.75}.lg\:hover\:text-opacity-100:hover{--text-opacity:1}.lg\:focus\:text-opacity-0:focus{--text-opacity:0}.lg\:focus\:text-opacity-25:focus{--text-opacity:0.25}.lg\:focus\:text-opacity-50:focus{--text-opacity:0.5}.lg\:focus\:text-opacity-75:focus{--text-opacity:0.75}.lg\:focus\:text-opacity-100:focus{--text-opacity:1}.lg\:italic{font-style:italic}.lg\:not-italic{font-style:normal}.lg\:uppercase{text-transform:uppercase}.lg\:lowercase{text-transform:lowercase}.lg\:capitalize{text-transform:capitalize}.lg\:normal-case{text-transform:none}.lg\:underline{text-decoration:underline}.lg\:line-through{text-decoration:line-through}.lg\:no-underline{text-decoration:none}.lg\:hover\:underline:hover{text-decoration:underline}.lg\:hover\:line-through:hover{text-decoration:line-through}.lg\:hover\:no-underline:hover{text-decoration:none}.lg\:focus\:underline:focus{text-decoration:underline}.lg\:focus\:line-through:focus{text-decoration:line-through}.lg\:focus\:no-underline:focus{text-decoration:none}.lg\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.lg\:diagonal-fractions,.lg\:lining-nums,.lg\:oldstyle-nums,.lg\:ordinal,.lg\:proportional-nums,.lg\:slashed-zero,.lg\:stacked-fractions,.lg\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.lg\:normal-nums{font-variant-numeric:normal}.lg\:ordinal{--font-variant-numeric-ordinal:ordinal}.lg\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.lg\:lining-nums{--font-variant-numeric-figure:lining-nums}.lg\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.lg\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.lg\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.lg\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.lg\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.lg\:tracking-tighter{letter-spacing:-.05em}.lg\:tracking-tight{letter-spacing:-.025em}.lg\:tracking-normal{letter-spacing:0}.lg\:tracking-wide{letter-spacing:.025em}.lg\:tracking-wider{letter-spacing:.05em}.lg\:tracking-widest{letter-spacing:.1em}.lg\:select-none{-webkit-user-select:none;user-select:none}.lg\:select-text{-webkit-user-select:text;user-select:text}.lg\:select-all{-webkit-user-select:all;user-select:all}.lg\:select-auto{-webkit-user-select:auto;user-select:auto}.lg\:align-baseline{vertical-align:baseline}.lg\:align-top{vertical-align:top}.lg\:align-middle{vertical-align:middle}.lg\:align-bottom{vertical-align:bottom}.lg\:align-text-top{vertical-align:text-top}.lg\:align-text-bottom{vertical-align:text-bottom}.lg\:visible{visibility:visible}.lg\:invisible{visibility:hidden}.lg\:whitespace-normal{white-space:normal}.lg\:whitespace-no-wrap{white-space:nowrap}.lg\:whitespace-pre{white-space:pre}.lg\:whitespace-pre-line{white-space:pre-line}.lg\:whitespace-pre-wrap{white-space:pre-wrap}.lg\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.lg\:break-words{word-wrap:break-word;overflow-wrap:break-word}.lg\:break-all{word-break:break-all}.lg\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg\:w-0{width:0}.lg\:w-1{width:.25rem}.lg\:w-2{width:.5rem}.lg\:w-3{width:.75rem}.lg\:w-4{width:1rem}.lg\:w-5{width:1.25rem}.lg\:w-6{width:1.5rem}.lg\:w-8{width:2rem}.lg\:w-10{width:2.5rem}.lg\:w-12{width:3rem}.lg\:w-16{width:4rem}.lg\:w-20{width:5rem}.lg\:w-24{width:6rem}.lg\:w-32{width:8rem}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-56{width:14rem}.lg\:w-64{width:16rem}.lg\:w-auto{width:auto}.lg\:w-px{width:1px}.lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:w-1\/4{width:25%}.lg\:w-2\/4{width:50%}.lg\:w-3\/4{width:75%}.lg\:w-1\/5{width:20%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-4\/5{width:80%}.lg\:w-1\/6{width:16.666667%}.lg\:w-2\/6{width:33.333333%}.lg\:w-3\/6{width:50%}.lg\:w-4\/6{width:66.666667%}.lg\:w-5\/6{width:83.333333%}.lg\:w-1\/12{width:8.333333%}.lg\:w-2\/12{width:16.666667%}.lg\:w-3\/12{width:25%}.lg\:w-4\/12{width:33.333333%}.lg\:w-5\/12{width:41.666667%}.lg\:w-6\/12{width:50%}.lg\:w-7\/12{width:58.333333%}.lg\:w-8\/12{width:66.666667%}.lg\:w-9\/12{width:75%}.lg\:w-10\/12{width:83.333333%}.lg\:w-11\/12{width:91.666667%}.lg\:w-full{width:100%}.lg\:w-screen{width:100vw}.lg\:z-0{z-index:0}.lg\:z-10{z-index:10}.lg\:z-20{z-index:20}.lg\:z-30{z-index:30}.lg\:z-40{z-index:40}.lg\:z-50{z-index:50}.lg\:z-auto{z-index:auto}.lg\:gap-0{grid-gap:0;gap:0}.lg\:gap-1{grid-gap:.25rem;gap:.25rem}.lg\:gap-2{grid-gap:.5rem;gap:.5rem}.lg\:gap-3{grid-gap:.75rem;gap:.75rem}.lg\:gap-4{grid-gap:1rem;gap:1rem}.lg\:gap-5{grid-gap:1.25rem;gap:1.25rem}.lg\:gap-6{grid-gap:1.5rem;gap:1.5rem}.lg\:gap-8{grid-gap:2rem;gap:2rem}.lg\:gap-10{grid-gap:2.5rem;gap:2.5rem}.lg\:gap-12{grid-gap:3rem;gap:3rem}.lg\:gap-16{grid-gap:4rem;gap:4rem}.lg\:gap-20{grid-gap:5rem;gap:5rem}.lg\:gap-24{grid-gap:6rem;gap:6rem}.lg\:gap-32{grid-gap:8rem;gap:8rem}.lg\:gap-40{grid-gap:10rem;gap:10rem}.lg\:gap-48{grid-gap:12rem;gap:12rem}.lg\:gap-56{grid-gap:14rem;gap:14rem}.lg\:gap-64{grid-gap:16rem;gap:16rem}.lg\:gap-px{grid-gap:1px;gap:1px}.lg\:col-gap-0{grid-column-gap:0;column-gap:0}.lg\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.lg\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.lg\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.lg\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.lg\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.lg\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.lg\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.lg\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.lg\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.lg\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.lg\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.lg\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.lg\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.lg\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.lg\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.lg\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.lg\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.lg\:col-gap-px{grid-column-gap:1px;column-gap:1px}.lg\:gap-x-0{grid-column-gap:0;column-gap:0}.lg\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.lg\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.lg\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.lg\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.lg\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.lg\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.lg\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.lg\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.lg\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.lg\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.lg\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.lg\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.lg\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.lg\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.lg\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.lg\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.lg\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.lg\:gap-x-px{grid-column-gap:1px;column-gap:1px}.lg\:row-gap-0{grid-row-gap:0;row-gap:0}.lg\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.lg\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.lg\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.lg\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.lg\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.lg\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.lg\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.lg\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.lg\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.lg\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.lg\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.lg\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.lg\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.lg\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.lg\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.lg\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.lg\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.lg\:row-gap-px{grid-row-gap:1px;row-gap:1px}.lg\:gap-y-0{grid-row-gap:0;row-gap:0}.lg\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.lg\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.lg\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.lg\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.lg\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.lg\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.lg\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.lg\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.lg\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.lg\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.lg\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.lg\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.lg\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.lg\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.lg\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.lg\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.lg\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.lg\:gap-y-px{grid-row-gap:1px;row-gap:1px}.lg\:grid-flow-row{grid-auto-flow:row}.lg\:grid-flow-col{grid-auto-flow:column}.lg\:grid-flow-row-dense{grid-auto-flow:row dense}.lg\:grid-flow-col-dense{grid-auto-flow:column dense}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-none{grid-template-columns:none}.lg\:auto-cols-auto{grid-auto-columns:auto}.lg\:auto-cols-min{grid-auto-columns:min-content}.lg\:auto-cols-max{grid-auto-columns:max-content}.lg\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.lg\:col-auto{grid-column:auto}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:col-span-full{grid-column:1/-1}.lg\:col-start-1{grid-column-start:1}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:col-start-5{grid-column-start:5}.lg\:col-start-6{grid-column-start:6}.lg\:col-start-7{grid-column-start:7}.lg\:col-start-8{grid-column-start:8}.lg\:col-start-9{grid-column-start:9}.lg\:col-start-10{grid-column-start:10}.lg\:col-start-11{grid-column-start:11}.lg\:col-start-12{grid-column-start:12}.lg\:col-start-13{grid-column-start:13}.lg\:col-start-auto{grid-column-start:auto}.lg\:col-end-1{grid-column-end:1}.lg\:col-end-2{grid-column-end:2}.lg\:col-end-3{grid-column-end:3}.lg\:col-end-4{grid-column-end:4}.lg\:col-end-5{grid-column-end:5}.lg\:col-end-6{grid-column-end:6}.lg\:col-end-7{grid-column-end:7}.lg\:col-end-8{grid-column-end:8}.lg\:col-end-9{grid-column-end:9}.lg\:col-end-10{grid-column-end:10}.lg\:col-end-11{grid-column-end:11}.lg\:col-end-12{grid-column-end:12}.lg\:col-end-13{grid-column-end:13}.lg\:col-end-auto{grid-column-end:auto}.lg\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.lg\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:grid-rows-none{grid-template-rows:none}.lg\:auto-rows-auto{grid-auto-rows:auto}.lg\:auto-rows-min{grid-auto-rows:min-content}.lg\:auto-rows-max{grid-auto-rows:max-content}.lg\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.lg\:row-auto{grid-row:auto}.lg\:row-span-1{grid-row:span 1/span 1}.lg\:row-span-2{grid-row:span 2/span 2}.lg\:row-span-3{grid-row:span 3/span 3}.lg\:row-span-4{grid-row:span 4/span 4}.lg\:row-span-5{grid-row:span 5/span 5}.lg\:row-span-6{grid-row:span 6/span 6}.lg\:row-span-full{grid-row:1/-1}.lg\:row-start-1{grid-row-start:1}.lg\:row-start-2{grid-row-start:2}.lg\:row-start-3{grid-row-start:3}.lg\:row-start-4{grid-row-start:4}.lg\:row-start-5{grid-row-start:5}.lg\:row-start-6{grid-row-start:6}.lg\:row-start-7{grid-row-start:7}.lg\:row-start-auto{grid-row-start:auto}.lg\:row-end-1{grid-row-end:1}.lg\:row-end-2{grid-row-end:2}.lg\:row-end-3{grid-row-end:3}.lg\:row-end-4{grid-row-end:4}.lg\:row-end-5{grid-row-end:5}.lg\:row-end-6{grid-row-end:6}.lg\:row-end-7{grid-row-end:7}.lg\:row-end-auto{grid-row-end:auto}.lg\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.lg\:transform-none{transform:none}.lg\:origin-center{transform-origin:center}.lg\:origin-top{transform-origin:top}.lg\:origin-top-right{transform-origin:top right}.lg\:origin-right{transform-origin:right}.lg\:origin-bottom-right{transform-origin:bottom right}.lg\:origin-bottom{transform-origin:bottom}.lg\:origin-bottom-left{transform-origin:bottom left}.lg\:origin-left{transform-origin:left}.lg\:origin-top-left{transform-origin:top left}.lg\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.lg\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.lg\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:scale-x-0{--transform-scale-x:0}.lg\:scale-x-50{--transform-scale-x:.5}.lg\:scale-x-75{--transform-scale-x:.75}.lg\:scale-x-90{--transform-scale-x:.9}.lg\:scale-x-95{--transform-scale-x:.95}.lg\:scale-x-100{--transform-scale-x:1}.lg\:scale-x-105{--transform-scale-x:1.05}.lg\:scale-x-110{--transform-scale-x:1.1}.lg\:scale-x-125{--transform-scale-x:1.25}.lg\:scale-x-150{--transform-scale-x:1.5}.lg\:scale-y-0{--transform-scale-y:0}.lg\:scale-y-50{--transform-scale-y:.5}.lg\:scale-y-75{--transform-scale-y:.75}.lg\:scale-y-90{--transform-scale-y:.9}.lg\:scale-y-95{--transform-scale-y:.95}.lg\:scale-y-100{--transform-scale-y:1}.lg\:scale-y-105{--transform-scale-y:1.05}.lg\:scale-y-110{--transform-scale-y:1.1}.lg\:scale-y-125{--transform-scale-y:1.25}.lg\:scale-y-150{--transform-scale-y:1.5}.lg\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.lg\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.lg\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:hover\:scale-x-0:hover{--transform-scale-x:0}.lg\:hover\:scale-x-50:hover{--transform-scale-x:.5}.lg\:hover\:scale-x-75:hover{--transform-scale-x:.75}.lg\:hover\:scale-x-90:hover{--transform-scale-x:.9}.lg\:hover\:scale-x-95:hover{--transform-scale-x:.95}.lg\:hover\:scale-x-100:hover{--transform-scale-x:1}.lg\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.lg\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.lg\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.lg\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.lg\:hover\:scale-y-0:hover{--transform-scale-y:0}.lg\:hover\:scale-y-50:hover{--transform-scale-y:.5}.lg\:hover\:scale-y-75:hover{--transform-scale-y:.75}.lg\:hover\:scale-y-90:hover{--transform-scale-y:.9}.lg\:hover\:scale-y-95:hover{--transform-scale-y:.95}.lg\:hover\:scale-y-100:hover{--transform-scale-y:1}.lg\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.lg\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.lg\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.lg\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.lg\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.lg\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.lg\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:focus\:scale-x-0:focus{--transform-scale-x:0}.lg\:focus\:scale-x-50:focus{--transform-scale-x:.5}.lg\:focus\:scale-x-75:focus{--transform-scale-x:.75}.lg\:focus\:scale-x-90:focus{--transform-scale-x:.9}.lg\:focus\:scale-x-95:focus{--transform-scale-x:.95}.lg\:focus\:scale-x-100:focus{--transform-scale-x:1}.lg\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.lg\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.lg\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.lg\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.lg\:focus\:scale-y-0:focus{--transform-scale-y:0}.lg\:focus\:scale-y-50:focus{--transform-scale-y:.5}.lg\:focus\:scale-y-75:focus{--transform-scale-y:.75}.lg\:focus\:scale-y-90:focus{--transform-scale-y:.9}.lg\:focus\:scale-y-95:focus{--transform-scale-y:.95}.lg\:focus\:scale-y-100:focus{--transform-scale-y:1}.lg\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.lg\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.lg\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.lg\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.lg\:rotate-0{--transform-rotate:0}.lg\:rotate-1{--transform-rotate:1deg}.lg\:rotate-2{--transform-rotate:2deg}.lg\:rotate-3{--transform-rotate:3deg}.lg\:rotate-6{--transform-rotate:6deg}.lg\:rotate-12{--transform-rotate:12deg}.lg\:rotate-45{--transform-rotate:45deg}.lg\:rotate-90{--transform-rotate:90deg}.lg\:rotate-180{--transform-rotate:180deg}.lg\:-rotate-180{--transform-rotate:-180deg}.lg\:-rotate-90{--transform-rotate:-90deg}.lg\:-rotate-45{--transform-rotate:-45deg}.lg\:-rotate-12{--transform-rotate:-12deg}.lg\:-rotate-6{--transform-rotate:-6deg}.lg\:-rotate-3{--transform-rotate:-3deg}.lg\:-rotate-2{--transform-rotate:-2deg}.lg\:-rotate-1{--transform-rotate:-1deg}.lg\:hover\:rotate-0:hover{--transform-rotate:0}.lg\:hover\:rotate-1:hover{--transform-rotate:1deg}.lg\:hover\:rotate-2:hover{--transform-rotate:2deg}.lg\:hover\:rotate-3:hover{--transform-rotate:3deg}.lg\:hover\:rotate-6:hover{--transform-rotate:6deg}.lg\:hover\:rotate-12:hover{--transform-rotate:12deg}.lg\:hover\:rotate-45:hover{--transform-rotate:45deg}.lg\:hover\:rotate-90:hover{--transform-rotate:90deg}.lg\:hover\:rotate-180:hover{--transform-rotate:180deg}.lg\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.lg\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.lg\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.lg\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.lg\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.lg\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.lg\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.lg\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.lg\:focus\:rotate-0:focus{--transform-rotate:0}.lg\:focus\:rotate-1:focus{--transform-rotate:1deg}.lg\:focus\:rotate-2:focus{--transform-rotate:2deg}.lg\:focus\:rotate-3:focus{--transform-rotate:3deg}.lg\:focus\:rotate-6:focus{--transform-rotate:6deg}.lg\:focus\:rotate-12:focus{--transform-rotate:12deg}.lg\:focus\:rotate-45:focus{--transform-rotate:45deg}.lg\:focus\:rotate-90:focus{--transform-rotate:90deg}.lg\:focus\:rotate-180:focus{--transform-rotate:180deg}.lg\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.lg\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.lg\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.lg\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.lg\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.lg\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.lg\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.lg\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.lg\:translate-x-0{--transform-translate-x:0}.lg\:translate-x-1{--transform-translate-x:0.25rem}.lg\:translate-x-2{--transform-translate-x:0.5rem}.lg\:translate-x-3{--transform-translate-x:0.75rem}.lg\:translate-x-4{--transform-translate-x:1rem}.lg\:translate-x-5{--transform-translate-x:1.25rem}.lg\:translate-x-6{--transform-translate-x:1.5rem}.lg\:translate-x-8{--transform-translate-x:2rem}.lg\:translate-x-10{--transform-translate-x:2.5rem}.lg\:translate-x-12{--transform-translate-x:3rem}.lg\:translate-x-16{--transform-translate-x:4rem}.lg\:translate-x-20{--transform-translate-x:5rem}.lg\:translate-x-24{--transform-translate-x:6rem}.lg\:translate-x-32{--transform-translate-x:8rem}.lg\:translate-x-40{--transform-translate-x:10rem}.lg\:translate-x-48{--transform-translate-x:12rem}.lg\:translate-x-56{--transform-translate-x:14rem}.lg\:translate-x-64{--transform-translate-x:16rem}.lg\:translate-x-px{--transform-translate-x:1px}.lg\:-translate-x-1{--transform-translate-x:-0.25rem}.lg\:-translate-x-2{--transform-translate-x:-0.5rem}.lg\:-translate-x-3{--transform-translate-x:-0.75rem}.lg\:-translate-x-4{--transform-translate-x:-1rem}.lg\:-translate-x-5{--transform-translate-x:-1.25rem}.lg\:-translate-x-6{--transform-translate-x:-1.5rem}.lg\:-translate-x-8{--transform-translate-x:-2rem}.lg\:-translate-x-10{--transform-translate-x:-2.5rem}.lg\:-translate-x-12{--transform-translate-x:-3rem}.lg\:-translate-x-16{--transform-translate-x:-4rem}.lg\:-translate-x-20{--transform-translate-x:-5rem}.lg\:-translate-x-24{--transform-translate-x:-6rem}.lg\:-translate-x-32{--transform-translate-x:-8rem}.lg\:-translate-x-40{--transform-translate-x:-10rem}.lg\:-translate-x-48{--transform-translate-x:-12rem}.lg\:-translate-x-56{--transform-translate-x:-14rem}.lg\:-translate-x-64{--transform-translate-x:-16rem}.lg\:-translate-x-px{--transform-translate-x:-1px}.lg\:-translate-x-full{--transform-translate-x:-100%}.lg\:-translate-x-1\/2{--transform-translate-x:-50%}.lg\:translate-x-1\/2{--transform-translate-x:50%}.lg\:translate-x-full{--transform-translate-x:100%}.lg\:translate-y-0{--transform-translate-y:0}.lg\:translate-y-1{--transform-translate-y:0.25rem}.lg\:translate-y-2{--transform-translate-y:0.5rem}.lg\:translate-y-3{--transform-translate-y:0.75rem}.lg\:translate-y-4{--transform-translate-y:1rem}.lg\:translate-y-5{--transform-translate-y:1.25rem}.lg\:translate-y-6{--transform-translate-y:1.5rem}.lg\:translate-y-8{--transform-translate-y:2rem}.lg\:translate-y-10{--transform-translate-y:2.5rem}.lg\:translate-y-12{--transform-translate-y:3rem}.lg\:translate-y-16{--transform-translate-y:4rem}.lg\:translate-y-20{--transform-translate-y:5rem}.lg\:translate-y-24{--transform-translate-y:6rem}.lg\:translate-y-32{--transform-translate-y:8rem}.lg\:translate-y-40{--transform-translate-y:10rem}.lg\:translate-y-48{--transform-translate-y:12rem}.lg\:translate-y-56{--transform-translate-y:14rem}.lg\:translate-y-64{--transform-translate-y:16rem}.lg\:translate-y-px{--transform-translate-y:1px}.lg\:-translate-y-1{--transform-translate-y:-0.25rem}.lg\:-translate-y-2{--transform-translate-y:-0.5rem}.lg\:-translate-y-3{--transform-translate-y:-0.75rem}.lg\:-translate-y-4{--transform-translate-y:-1rem}.lg\:-translate-y-5{--transform-translate-y:-1.25rem}.lg\:-translate-y-6{--transform-translate-y:-1.5rem}.lg\:-translate-y-8{--transform-translate-y:-2rem}.lg\:-translate-y-10{--transform-translate-y:-2.5rem}.lg\:-translate-y-12{--transform-translate-y:-3rem}.lg\:-translate-y-16{--transform-translate-y:-4rem}.lg\:-translate-y-20{--transform-translate-y:-5rem}.lg\:-translate-y-24{--transform-translate-y:-6rem}.lg\:-translate-y-32{--transform-translate-y:-8rem}.lg\:-translate-y-40{--transform-translate-y:-10rem}.lg\:-translate-y-48{--transform-translate-y:-12rem}.lg\:-translate-y-56{--transform-translate-y:-14rem}.lg\:-translate-y-64{--transform-translate-y:-16rem}.lg\:-translate-y-px{--transform-translate-y:-1px}.lg\:-translate-y-full{--transform-translate-y:-100%}.lg\:-translate-y-1\/2{--transform-translate-y:-50%}.lg\:translate-y-1\/2{--transform-translate-y:50%}.lg\:translate-y-full{--transform-translate-y:100%}.lg\:hover\:translate-x-0:hover{--transform-translate-x:0}.lg\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.lg\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.lg\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.lg\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.lg\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.lg\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.lg\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.lg\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.lg\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.lg\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.lg\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.lg\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.lg\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.lg\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.lg\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.lg\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.lg\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.lg\:hover\:translate-x-px:hover{--transform-translate-x:1px}.lg\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.lg\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.lg\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.lg\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.lg\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.lg\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.lg\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.lg\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.lg\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.lg\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.lg\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.lg\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.lg\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.lg\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.lg\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.lg\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.lg\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.lg\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.lg\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.lg\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.lg\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.lg\:hover\:translate-x-full:hover{--transform-translate-x:100%}.lg\:hover\:translate-y-0:hover{--transform-translate-y:0}.lg\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.lg\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.lg\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.lg\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.lg\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.lg\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.lg\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.lg\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.lg\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.lg\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.lg\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.lg\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.lg\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.lg\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.lg\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.lg\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.lg\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.lg\:hover\:translate-y-px:hover{--transform-translate-y:1px}.lg\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.lg\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.lg\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.lg\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.lg\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.lg\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.lg\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.lg\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.lg\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.lg\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.lg\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.lg\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.lg\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.lg\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.lg\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.lg\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.lg\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.lg\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.lg\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.lg\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.lg\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.lg\:hover\:translate-y-full:hover{--transform-translate-y:100%}.lg\:focus\:translate-x-0:focus{--transform-translate-x:0}.lg\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.lg\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.lg\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.lg\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.lg\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.lg\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.lg\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.lg\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.lg\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.lg\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.lg\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.lg\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.lg\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.lg\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.lg\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.lg\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.lg\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.lg\:focus\:translate-x-px:focus{--transform-translate-x:1px}.lg\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.lg\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.lg\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.lg\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.lg\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.lg\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.lg\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.lg\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.lg\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.lg\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.lg\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.lg\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.lg\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.lg\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.lg\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.lg\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.lg\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.lg\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.lg\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.lg\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.lg\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.lg\:focus\:translate-x-full:focus{--transform-translate-x:100%}.lg\:focus\:translate-y-0:focus{--transform-translate-y:0}.lg\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.lg\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.lg\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.lg\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.lg\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.lg\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.lg\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.lg\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.lg\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.lg\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.lg\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.lg\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.lg\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.lg\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.lg\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.lg\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.lg\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.lg\:focus\:translate-y-px:focus{--transform-translate-y:1px}.lg\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.lg\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.lg\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.lg\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.lg\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.lg\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.lg\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.lg\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.lg\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.lg\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.lg\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.lg\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.lg\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.lg\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.lg\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.lg\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.lg\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.lg\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.lg\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.lg\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.lg\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.lg\:focus\:translate-y-full:focus{--transform-translate-y:100%}.lg\:skew-x-0{--transform-skew-x:0}.lg\:skew-x-1{--transform-skew-x:1deg}.lg\:skew-x-2{--transform-skew-x:2deg}.lg\:skew-x-3{--transform-skew-x:3deg}.lg\:skew-x-6{--transform-skew-x:6deg}.lg\:skew-x-12{--transform-skew-x:12deg}.lg\:-skew-x-12{--transform-skew-x:-12deg}.lg\:-skew-x-6{--transform-skew-x:-6deg}.lg\:-skew-x-3{--transform-skew-x:-3deg}.lg\:-skew-x-2{--transform-skew-x:-2deg}.lg\:-skew-x-1{--transform-skew-x:-1deg}.lg\:skew-y-0{--transform-skew-y:0}.lg\:skew-y-1{--transform-skew-y:1deg}.lg\:skew-y-2{--transform-skew-y:2deg}.lg\:skew-y-3{--transform-skew-y:3deg}.lg\:skew-y-6{--transform-skew-y:6deg}.lg\:skew-y-12{--transform-skew-y:12deg}.lg\:-skew-y-12{--transform-skew-y:-12deg}.lg\:-skew-y-6{--transform-skew-y:-6deg}.lg\:-skew-y-3{--transform-skew-y:-3deg}.lg\:-skew-y-2{--transform-skew-y:-2deg}.lg\:-skew-y-1{--transform-skew-y:-1deg}.lg\:hover\:skew-x-0:hover{--transform-skew-x:0}.lg\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.lg\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.lg\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.lg\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.lg\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.lg\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.lg\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.lg\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.lg\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.lg\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.lg\:hover\:skew-y-0:hover{--transform-skew-y:0}.lg\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.lg\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.lg\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.lg\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.lg\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.lg\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.lg\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.lg\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.lg\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.lg\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.lg\:focus\:skew-x-0:focus{--transform-skew-x:0}.lg\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.lg\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.lg\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.lg\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.lg\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.lg\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.lg\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.lg\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.lg\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.lg\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.lg\:focus\:skew-y-0:focus{--transform-skew-y:0}.lg\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.lg\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.lg\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.lg\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.lg\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.lg\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.lg\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.lg\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.lg\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.lg\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.lg\:transition-none{transition-property:none}.lg\:transition-all{transition-property:all}.lg\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.lg\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.lg\:transition-opacity{transition-property:opacity}.lg\:transition-shadow{transition-property:box-shadow}.lg\:transition-transform{transition-property:transform}.lg\:ease-linear{transition-timing-function:linear}.lg\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lg\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.lg\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lg\:duration-75{transition-duration:75ms}.lg\:duration-100{transition-duration:.1s}.lg\:duration-150{transition-duration:.15s}.lg\:duration-200{transition-duration:.2s}.lg\:duration-300{transition-duration:.3s}.lg\:duration-500{transition-duration:.5s}.lg\:duration-700{transition-duration:.7s}.lg\:duration-1000{transition-duration:1s}.lg\:delay-75{transition-delay:75ms}.lg\:delay-100{transition-delay:.1s}.lg\:delay-150{transition-delay:.15s}.lg\:delay-200{transition-delay:.2s}.lg\:delay-300{transition-delay:.3s}.lg\:delay-500{transition-delay:.5s}.lg\:delay-700{transition-delay:.7s}.lg\:delay-1000{transition-delay:1s}.lg\:animate-none{animation:none}.lg\:animate-spin{animation:spin 1s linear infinite}.lg\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.lg\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.lg\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1280px){.xl\:container{width:100%}@media (min-width:360px){.xl\:container{max-width:360px}}@media (min-width:640px){.xl\:container{max-width:640px}}@media (min-width:768px){.xl\:container{max-width:768px}}@media (min-width:1024px){.xl\:container{max-width:1024px}}@media (min-width:1280px){.xl\:container{max-width:1280px}}@media (min-width:1480px){.xl\:container{max-width:1480px}}.xl\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xl\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xl\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xl\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xl\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xl\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xl\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xl\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xl\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xl\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xl\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xl\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xl\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xl\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xl\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xl\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xl\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xl\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xl\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xl\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xl\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xl\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xl\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xl\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xl\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xl\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xl\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xl\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xl\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xl\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xl\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xl\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xl\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xl\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xl\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xl\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xl\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xl\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xl\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xl\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xl\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xl\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xl\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xl\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xl\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xl\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xl\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xl\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xl\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xl\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xl\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xl\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xl\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xl\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xl\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xl\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xl\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xl\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xl\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xl\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xl\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xl\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xl\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xl\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xl\:divide-current>:not(template)~:not(template){border-color:currentColor}.xl\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xl\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xl\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xl\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xl\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xl\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xl\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xl\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xl\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xl\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xl\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xl\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xl\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xl\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xl\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xl\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xl\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xl\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xl\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xl\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xl\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xl\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xl\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xl\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xl\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xl\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xl\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xl\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xl\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xl\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xl\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xl\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xl\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xl\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xl\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xl\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xl\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xl\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xl\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xl\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xl\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xl\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xl\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xl\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xl\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xl\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xl\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xl\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xl\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xl\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xl\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xl\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xl\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xl\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xl\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xl\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xl\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xl\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xl\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xl\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xl\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xl\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xl\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xl\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xl\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xl\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xl\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xl\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xl\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xl\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xl\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xl\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xl\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xl\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xl\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xl\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xl\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xl\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xl\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xl\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xl\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xl\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xl\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xl\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xl\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xl\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xl\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xl\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xl\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xl\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xl\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xl\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xl\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xl\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xl\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xl\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xl\:divide-solid>:not(template)~:not(template){border-style:solid}.xl\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xl\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xl\:divide-double>:not(template)~:not(template){border-style:double}.xl\:divide-none>:not(template)~:not(template){border-style:none}.xl\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xl\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xl\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xl\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xl\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xl\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xl\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xl\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xl\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xl\:appearance-none{-webkit-appearance:none;appearance:none}.xl\:bg-fixed{background-attachment:fixed}.xl\:bg-local{background-attachment:local}.xl\:bg-scroll{background-attachment:scroll}.xl\:bg-clip-border{background-clip:border-box}.xl\:bg-clip-padding{background-clip:padding-box}.xl\:bg-clip-content{background-clip:content-box}.xl\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xl\:bg-transparent{background-color:transparent}.xl\:bg-current{background-color:currentColor}.xl\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:hover\:bg-transparent:hover{background-color:transparent}.xl\:hover\:bg-current:hover{background-color:currentColor}.xl\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:focus\:bg-transparent:focus{background-color:transparent}.xl\:focus\:bg-current:focus{background-color:currentColor}.xl\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:bg-none{background-image:none}.xl\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xl\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xl\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xl\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xl\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:to-transparent{--gradient-to-color:transparent}.xl\:to-current{--gradient-to-color:currentColor}.xl\:to-black{--gradient-to-color:#000}.xl\:to-white{--gradient-to-color:#fff}.xl\:to-gray-100{--gradient-to-color:#f7fafc}.xl\:to-gray-200{--gradient-to-color:#edf2f7}.xl\:to-gray-300{--gradient-to-color:#e2e8f0}.xl\:to-gray-400{--gradient-to-color:#cbd5e0}.xl\:to-gray-500{--gradient-to-color:#a0aec0}.xl\:to-gray-600{--gradient-to-color:#718096}.xl\:to-gray-700{--gradient-to-color:#4a5568}.xl\:to-gray-800{--gradient-to-color:#2d3748}.xl\:to-gray-900{--gradient-to-color:#1a202c}.xl\:to-red-100{--gradient-to-color:#fff5f5}.xl\:to-red-200{--gradient-to-color:#fed7d7}.xl\:to-red-300{--gradient-to-color:#feb2b2}.xl\:to-red-400{--gradient-to-color:#fc8181}.xl\:to-red-500{--gradient-to-color:#f56565}.xl\:to-red-600{--gradient-to-color:#e53e3e}.xl\:to-red-700{--gradient-to-color:#c53030}.xl\:to-red-800{--gradient-to-color:#9b2c2c}.xl\:to-red-900{--gradient-to-color:#742a2a}.xl\:to-orange-100{--gradient-to-color:#fffaf0}.xl\:to-orange-200{--gradient-to-color:#feebc8}.xl\:to-orange-300{--gradient-to-color:#fbd38d}.xl\:to-orange-400{--gradient-to-color:#f6ad55}.xl\:to-orange-500{--gradient-to-color:#ed8936}.xl\:to-orange-600{--gradient-to-color:#dd6b20}.xl\:to-orange-700{--gradient-to-color:#c05621}.xl\:to-orange-800{--gradient-to-color:#9c4221}.xl\:to-orange-900{--gradient-to-color:#7b341e}.xl\:to-yellow-100{--gradient-to-color:ivory}.xl\:to-yellow-200{--gradient-to-color:#fefcbf}.xl\:to-yellow-300{--gradient-to-color:#faf089}.xl\:to-yellow-400{--gradient-to-color:#f6e05e}.xl\:to-yellow-500{--gradient-to-color:#ecc94b}.xl\:to-yellow-600{--gradient-to-color:#d69e2e}.xl\:to-yellow-700{--gradient-to-color:#b7791f}.xl\:to-yellow-800{--gradient-to-color:#975a16}.xl\:to-yellow-900{--gradient-to-color:#744210}.xl\:to-green-100{--gradient-to-color:#f0fff4}.xl\:to-green-200{--gradient-to-color:#c6f6d5}.xl\:to-green-300{--gradient-to-color:#9ae6b4}.xl\:to-green-400{--gradient-to-color:#68d391}.xl\:to-green-500{--gradient-to-color:#48bb78}.xl\:to-green-600{--gradient-to-color:#38a169}.xl\:to-green-700{--gradient-to-color:#2f855a}.xl\:to-green-800{--gradient-to-color:#276749}.xl\:to-green-900{--gradient-to-color:#22543d}.xl\:to-teal-100{--gradient-to-color:#e6fffa}.xl\:to-teal-200{--gradient-to-color:#b2f5ea}.xl\:to-teal-300{--gradient-to-color:#81e6d9}.xl\:to-teal-400{--gradient-to-color:#4fd1c5}.xl\:to-teal-500{--gradient-to-color:#38b2ac}.xl\:to-teal-600{--gradient-to-color:#319795}.xl\:to-teal-700{--gradient-to-color:#2c7a7b}.xl\:to-teal-800{--gradient-to-color:#285e61}.xl\:to-teal-900{--gradient-to-color:#234e52}.xl\:to-blue-100{--gradient-to-color:#ebf8ff}.xl\:to-blue-200{--gradient-to-color:#bee3f8}.xl\:to-blue-300{--gradient-to-color:#90cdf4}.xl\:to-blue-400{--gradient-to-color:#63b3ed}.xl\:to-blue-500{--gradient-to-color:#4299e1}.xl\:to-blue-600{--gradient-to-color:#3182ce}.xl\:to-blue-700{--gradient-to-color:#2b6cb0}.xl\:to-blue-800{--gradient-to-color:#2c5282}.xl\:to-blue-900{--gradient-to-color:#2a4365}.xl\:to-indigo-100{--gradient-to-color:#ebf4ff}.xl\:to-indigo-200{--gradient-to-color:#c3dafe}.xl\:to-indigo-300{--gradient-to-color:#a3bffa}.xl\:to-indigo-400{--gradient-to-color:#7f9cf5}.xl\:to-indigo-500{--gradient-to-color:#667eea}.xl\:to-indigo-600{--gradient-to-color:#5a67d8}.xl\:to-indigo-700{--gradient-to-color:#4c51bf}.xl\:to-indigo-800{--gradient-to-color:#434190}.xl\:to-indigo-900{--gradient-to-color:#3c366b}.xl\:to-purple-100{--gradient-to-color:#faf5ff}.xl\:to-purple-200{--gradient-to-color:#e9d8fd}.xl\:to-purple-300{--gradient-to-color:#d6bcfa}.xl\:to-purple-400{--gradient-to-color:#b794f4}.xl\:to-purple-500{--gradient-to-color:#9f7aea}.xl\:to-purple-600{--gradient-to-color:#805ad5}.xl\:to-purple-700{--gradient-to-color:#6b46c1}.xl\:to-purple-800{--gradient-to-color:#553c9a}.xl\:to-purple-900{--gradient-to-color:#44337a}.xl\:to-pink-100{--gradient-to-color:#fff5f7}.xl\:to-pink-200{--gradient-to-color:#fed7e2}.xl\:to-pink-300{--gradient-to-color:#fbb6ce}.xl\:to-pink-400{--gradient-to-color:#f687b3}.xl\:to-pink-500{--gradient-to-color:#ed64a6}.xl\:to-pink-600{--gradient-to-color:#d53f8c}.xl\:to-pink-700{--gradient-to-color:#b83280}.xl\:to-pink-800{--gradient-to-color:#97266d}.xl\:to-pink-900{--gradient-to-color:#702459}.xl\:to-primary{--gradient-to-color:#00d1ff}.xl\:to-secondary{--gradient-to-color:#e077ff}.xl\:to-greenish-blue{--gradient-to-color:#adffed}.xl\:to-blue-gray{--gradient-to-color:#cfe1e6}.xl\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xl\:hover\:to-current:hover{--gradient-to-color:currentColor}.xl\:hover\:to-black:hover{--gradient-to-color:#000}.xl\:hover\:to-white:hover{--gradient-to-color:#fff}.xl\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xl\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xl\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xl\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xl\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xl\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xl\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xl\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xl\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xl\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xl\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xl\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xl\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xl\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xl\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xl\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xl\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xl\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xl\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xl\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xl\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xl\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xl\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xl\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xl\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xl\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xl\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xl\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xl\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xl\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xl\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xl\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xl\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xl\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xl\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xl\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xl\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xl\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xl\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xl\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xl\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xl\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xl\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xl\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xl\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xl\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xl\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xl\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xl\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xl\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xl\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xl\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xl\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xl\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xl\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xl\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xl\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xl\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xl\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xl\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xl\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xl\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xl\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xl\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xl\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xl\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xl\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xl\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xl\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xl\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xl\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xl\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xl\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xl\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xl\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xl\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xl\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xl\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xl\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xl\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xl\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xl\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xl\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xl\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xl\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xl\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xl\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xl\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xl\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xl\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xl\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xl\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xl\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xl\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xl\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xl\:focus\:to-current:focus{--gradient-to-color:currentColor}.xl\:focus\:to-black:focus{--gradient-to-color:#000}.xl\:focus\:to-white:focus{--gradient-to-color:#fff}.xl\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xl\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xl\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xl\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xl\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xl\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xl\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xl\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xl\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xl\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xl\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xl\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xl\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xl\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xl\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xl\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xl\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xl\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xl\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xl\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xl\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xl\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xl\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xl\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xl\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xl\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xl\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xl\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xl\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xl\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xl\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xl\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xl\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xl\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xl\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xl\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xl\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xl\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xl\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xl\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xl\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xl\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xl\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xl\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xl\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xl\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xl\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xl\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xl\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xl\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xl\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xl\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xl\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xl\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xl\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xl\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xl\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xl\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xl\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xl\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xl\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xl\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xl\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xl\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xl\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xl\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xl\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xl\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xl\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xl\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xl\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xl\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xl\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xl\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xl\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xl\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xl\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xl\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xl\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xl\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xl\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xl\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xl\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xl\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xl\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xl\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xl\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xl\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xl\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xl\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xl\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xl\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xl\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xl\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xl\:bg-opacity-0{--bg-opacity:0}.xl\:bg-opacity-25{--bg-opacity:0.25}.xl\:bg-opacity-50{--bg-opacity:0.5}.xl\:bg-opacity-75{--bg-opacity:0.75}.xl\:bg-opacity-100{--bg-opacity:1}.xl\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xl\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xl\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xl\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xl\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xl\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xl\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xl\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xl\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xl\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xl\:bg-bottom{background-position:bottom}.xl\:bg-center{background-position:50%}.xl\:bg-left{background-position:0}.xl\:bg-left-bottom{background-position:0 100%}.xl\:bg-left-top{background-position:0 0}.xl\:bg-right{background-position:100%}.xl\:bg-right-bottom{background-position:100% 100%}.xl\:bg-right-top{background-position:100% 0}.xl\:bg-top{background-position:top}.xl\:bg-repeat{background-repeat:repeat}.xl\:bg-no-repeat{background-repeat:no-repeat}.xl\:bg-repeat-x{background-repeat:repeat-x}.xl\:bg-repeat-y{background-repeat:repeat-y}.xl\:bg-repeat-round{background-repeat:round}.xl\:bg-repeat-space{background-repeat:space}.xl\:bg-auto{background-size:auto}.xl\:bg-cover{background-size:cover}.xl\:bg-contain{background-size:contain}.xl\:border-collapse{border-collapse:collapse}.xl\:border-separate{border-collapse:separate}.xl\:border-transparent{border-color:transparent}.xl\:border-current{border-color:currentColor}.xl\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:hover\:border-transparent:hover{border-color:transparent}.xl\:hover\:border-current:hover{border-color:currentColor}.xl\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:focus\:border-transparent:focus{border-color:transparent}.xl\:focus\:border-current:focus{border-color:currentColor}.xl\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:border-opacity-0{--border-opacity:0}.xl\:border-opacity-25{--border-opacity:0.25}.xl\:border-opacity-50{--border-opacity:0.5}.xl\:border-opacity-75{--border-opacity:0.75}.xl\:border-opacity-100{--border-opacity:1}.xl\:hover\:border-opacity-0:hover{--border-opacity:0}.xl\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xl\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xl\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xl\:hover\:border-opacity-100:hover{--border-opacity:1}.xl\:focus\:border-opacity-0:focus{--border-opacity:0}.xl\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xl\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xl\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xl\:focus\:border-opacity-100:focus{--border-opacity:1}.xl\:rounded-none{border-radius:0}.xl\:rounded-sm{border-radius:.125rem}.xl\:rounded{border-radius:.25rem}.xl\:rounded-md{border-radius:.375rem}.xl\:rounded-lg{border-radius:.5rem}.xl\:rounded-xl{border-radius:.75rem}.xl\:rounded-2xl{border-radius:1rem}.xl\:rounded-3xl{border-radius:1.5rem}.xl\:rounded-full{border-radius:9999px}.xl\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xl\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xl\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xl\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xl\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xl\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xl\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xl\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xl\:rounded-t{border-top-left-radius:.25rem}.xl\:rounded-r,.xl\:rounded-t{border-top-right-radius:.25rem}.xl\:rounded-b,.xl\:rounded-r{border-bottom-right-radius:.25rem}.xl\:rounded-b,.xl\:rounded-l{border-bottom-left-radius:.25rem}.xl\:rounded-l{border-top-left-radius:.25rem}.xl\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xl\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xl\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xl\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xl\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xl\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xl\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xl\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xl\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xl\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xl\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xl\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xl\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xl\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xl\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xl\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xl\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xl\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xl\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xl\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xl\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xl\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xl\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xl\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xl\:rounded-tl-none{border-top-left-radius:0}.xl\:rounded-tr-none{border-top-right-radius:0}.xl\:rounded-br-none{border-bottom-right-radius:0}.xl\:rounded-bl-none{border-bottom-left-radius:0}.xl\:rounded-tl-sm{border-top-left-radius:.125rem}.xl\:rounded-tr-sm{border-top-right-radius:.125rem}.xl\:rounded-br-sm{border-bottom-right-radius:.125rem}.xl\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xl\:rounded-tl{border-top-left-radius:.25rem}.xl\:rounded-tr{border-top-right-radius:.25rem}.xl\:rounded-br{border-bottom-right-radius:.25rem}.xl\:rounded-bl{border-bottom-left-radius:.25rem}.xl\:rounded-tl-md{border-top-left-radius:.375rem}.xl\:rounded-tr-md{border-top-right-radius:.375rem}.xl\:rounded-br-md{border-bottom-right-radius:.375rem}.xl\:rounded-bl-md{border-bottom-left-radius:.375rem}.xl\:rounded-tl-lg{border-top-left-radius:.5rem}.xl\:rounded-tr-lg{border-top-right-radius:.5rem}.xl\:rounded-br-lg{border-bottom-right-radius:.5rem}.xl\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xl\:rounded-tl-xl{border-top-left-radius:.75rem}.xl\:rounded-tr-xl{border-top-right-radius:.75rem}.xl\:rounded-br-xl{border-bottom-right-radius:.75rem}.xl\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xl\:rounded-tl-2xl{border-top-left-radius:1rem}.xl\:rounded-tr-2xl{border-top-right-radius:1rem}.xl\:rounded-br-2xl{border-bottom-right-radius:1rem}.xl\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xl\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xl\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xl\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xl\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xl\:rounded-tl-full{border-top-left-radius:9999px}.xl\:rounded-tr-full{border-top-right-radius:9999px}.xl\:rounded-br-full{border-bottom-right-radius:9999px}.xl\:rounded-bl-full{border-bottom-left-radius:9999px}.xl\:border-solid{border-style:solid}.xl\:border-dashed{border-style:dashed}.xl\:border-dotted{border-style:dotted}.xl\:border-double{border-style:double}.xl\:border-none{border-style:none}.xl\:border-0{border-width:0}.xl\:border-2{border-width:2px}.xl\:border-4{border-width:4px}.xl\:border-8{border-width:8px}.xl\:border{border-width:1px}.xl\:border-t-0{border-top-width:0}.xl\:border-r-0{border-right-width:0}.xl\:border-b-0{border-bottom-width:0}.xl\:border-l-0{border-left-width:0}.xl\:border-t-2{border-top-width:2px}.xl\:border-r-2{border-right-width:2px}.xl\:border-b-2{border-bottom-width:2px}.xl\:border-l-2{border-left-width:2px}.xl\:border-t-4{border-top-width:4px}.xl\:border-r-4{border-right-width:4px}.xl\:border-b-4{border-bottom-width:4px}.xl\:border-l-4{border-left-width:4px}.xl\:border-t-8{border-top-width:8px}.xl\:border-r-8{border-right-width:8px}.xl\:border-b-8{border-bottom-width:8px}.xl\:border-l-8{border-left-width:8px}.xl\:border-t{border-top-width:1px}.xl\:border-r{border-right-width:1px}.xl\:border-b{border-bottom-width:1px}.xl\:border-l{border-left-width:1px}.xl\:box-border{box-sizing:border-box}.xl\:box-content{box-sizing:content-box}.xl\:cursor-auto{cursor:auto}.xl\:cursor-default{cursor:default}.xl\:cursor-pointer{cursor:pointer}.xl\:cursor-wait{cursor:wait}.xl\:cursor-text{cursor:text}.xl\:cursor-move{cursor:move}.xl\:cursor-not-allowed{cursor:not-allowed}.xl\:block{display:block}.xl\:inline-block{display:inline-block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:inline-flex{display:inline-flex}.xl\:table{display:table}.xl\:table-caption{display:table-caption}.xl\:table-cell{display:table-cell}.xl\:table-column{display:table-column}.xl\:table-column-group{display:table-column-group}.xl\:table-footer-group{display:table-footer-group}.xl\:table-header-group{display:table-header-group}.xl\:table-row-group{display:table-row-group}.xl\:table-row{display:table-row}.xl\:flow-root{display:flow-root}.xl\:grid{display:grid}.xl\:inline-grid{display:inline-grid}.xl\:contents{display:contents}.xl\:hidden{display:none}.xl\:flex-row{flex-direction:row}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-col{flex-direction:column}.xl\:flex-col-reverse{flex-direction:column-reverse}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:flex-no-wrap{flex-wrap:nowrap}.xl\:place-items-auto{place-items:auto}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch}.xl\:place-content-center{place-content:center}.xl\:place-content-start{place-content:start}.xl\:place-content-end{place-content:end}.xl\:place-content-between{place-content:space-between}.xl\:place-content-around{place-content:space-around}.xl\:place-content-evenly{place-content:space-evenly}.xl\:place-content-stretch{place-content:stretch}.xl\:place-self-auto{place-self:auto}.xl\:place-self-start{place-self:start}.xl\:place-self-end{place-self:end}.xl\:place-self-center{place-self:center}.xl\:place-self-stretch{place-self:stretch}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:items-baseline{align-items:baseline}.xl\:items-stretch{align-items:stretch}.xl\:content-center{align-content:center}.xl\:content-start{align-content:flex-start}.xl\:content-end{align-content:flex-end}.xl\:content-between{align-content:space-between}.xl\:content-around{align-content:space-around}.xl\:content-evenly{align-content:space-evenly}.xl\:self-auto{align-self:auto}.xl\:self-start{align-self:flex-start}.xl\:self-end{align-self:flex-end}.xl\:self-center{align-self:center}.xl\:self-stretch{align-self:stretch}.xl\:justify-items-auto{justify-items:auto}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-start{justify-content:flex-start}.xl\:justify-end{justify-content:flex-end}.xl\:justify-center{justify-content:center}.xl\:justify-between{justify-content:space-between}.xl\:justify-around{justify-content:space-around}.xl\:justify-evenly{justify-content:space-evenly}.xl\:justify-self-auto{justify-self:auto}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:justify-self-stretch{justify-self:stretch}.xl\:flex-1{flex:1 1 0%}.xl\:flex-auto{flex:1 1 auto}.xl\:flex-initial{flex:0 1 auto}.xl\:flex-none{flex:none}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink{flex-shrink:1}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-6{order:6}.xl\:order-7{order:7}.xl\:order-8{order:8}.xl\:order-9{order:9}.xl\:order-10{order:10}.xl\:order-11{order:11}.xl\:order-12{order:12}.xl\:order-first{order:-9999}.xl\:order-last{order:9999}.xl\:order-none{order:0}.xl\:float-right{float:right}.xl\:float-left{float:left}.xl\:float-none{float:none}.xl\:clearfix:after{content:"";display:table;clear:both}.xl\:clear-left{clear:left}.xl\:clear-right{clear:right}.xl\:clear-both{clear:both}.xl\:clear-none{clear:none}.xl\:font-sans{font-family: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}.xl\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xl\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xl\:font-hairline{font-weight:100}.xl\:font-thin{font-weight:200}.xl\:font-light{font-weight:300}.xl\:font-normal{font-weight:400}.xl\:font-medium{font-weight:500}.xl\:font-semibold{font-weight:600}.xl\:font-bold{font-weight:700}.xl\:font-extrabold{font-weight:800}.xl\:font-black{font-weight:900}.xl\:hover\:font-hairline:hover{font-weight:100}.xl\:hover\:font-thin:hover{font-weight:200}.xl\:hover\:font-light:hover{font-weight:300}.xl\:hover\:font-normal:hover{font-weight:400}.xl\:hover\:font-medium:hover{font-weight:500}.xl\:hover\:font-semibold:hover{font-weight:600}.xl\:hover\:font-bold:hover{font-weight:700}.xl\:hover\:font-extrabold:hover{font-weight:800}.xl\:hover\:font-black:hover{font-weight:900}.xl\:focus\:font-hairline:focus{font-weight:100}.xl\:focus\:font-thin:focus{font-weight:200}.xl\:focus\:font-light:focus{font-weight:300}.xl\:focus\:font-normal:focus{font-weight:400}.xl\:focus\:font-medium:focus{font-weight:500}.xl\:focus\:font-semibold:focus{font-weight:600}.xl\:focus\:font-bold:focus{font-weight:700}.xl\:focus\:font-extrabold:focus{font-weight:800}.xl\:focus\:font-black:focus{font-weight:900}.xl\:h-0{height:0}.xl\:h-1{height:.25rem}.xl\:h-2{height:.5rem}.xl\:h-3{height:.75rem}.xl\:h-4{height:1rem}.xl\:h-5{height:1.25rem}.xl\:h-6{height:1.5rem}.xl\:h-8{height:2rem}.xl\:h-10{height:2.5rem}.xl\:h-12{height:3rem}.xl\:h-16{height:4rem}.xl\:h-20{height:5rem}.xl\:h-24{height:6rem}.xl\:h-32{height:8rem}.xl\:h-40{height:10rem}.xl\:h-48{height:12rem}.xl\:h-56{height:14rem}.xl\:h-64{height:16rem}.xl\:h-auto{height:auto}.xl\:h-px{height:1px}.xl\:h-full{height:100%}.xl\:h-screen{height:100vh}.xl\:text-xs{font-size:.75rem}.xl\:text-sm{font-size:.875rem}.xl\:text-base{font-size:1rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.25rem}.xl\:text-2xl{font-size:1.5rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.25rem}.xl\:text-5xl{font-size:3rem}.xl\:text-6xl{font-size:4rem}.xl\:leading-3{line-height:.75rem}.xl\:leading-4{line-height:1rem}.xl\:leading-5{line-height:1.25rem}.xl\:leading-6{line-height:1.5rem}.xl\:leading-7{line-height:1.75rem}.xl\:leading-8{line-height:2rem}.xl\:leading-9{line-height:2.25rem}.xl\:leading-10{line-height:2.5rem}.xl\:leading-none{line-height:1}.xl\:leading-tight{line-height:1.25}.xl\:leading-snug{line-height:1.375}.xl\:leading-normal{line-height:1.5}.xl\:leading-relaxed{line-height:1.625}.xl\:leading-loose{line-height:2}.xl\:list-inside{list-style-position:inside}.xl\:list-outside{list-style-position:outside}.xl\:list-none{list-style-type:none}.xl\:list-disc{list-style-type:disc}.xl\:list-decimal{list-style-type:decimal}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-8{margin:2rem}.xl\:m-10{margin:2.5rem}.xl\:m-12{margin:3rem}.xl\:m-16{margin:4rem}.xl\:m-20{margin:5rem}.xl\:m-24{margin:6rem}.xl\:m-32{margin:8rem}.xl\:m-40{margin:10rem}.xl\:m-48{margin:12rem}.xl\:m-56{margin:14rem}.xl\:m-64{margin:16rem}.xl\:m-auto{margin:auto}.xl\:m-px{margin:1px}.xl\:-m-1{margin:-.25rem}.xl\:-m-2{margin:-.5rem}.xl\:-m-3{margin:-.75rem}.xl\:-m-4{margin:-1rem}.xl\:-m-5{margin:-1.25rem}.xl\:-m-6{margin:-1.5rem}.xl\:-m-8{margin:-2rem}.xl\:-m-10{margin:-2.5rem}.xl\:-m-12{margin:-3rem}.xl\:-m-16{margin:-4rem}.xl\:-m-20{margin:-5rem}.xl\:-m-24{margin:-6rem}.xl\:-m-32{margin:-8rem}.xl\:-m-40{margin:-10rem}.xl\:-m-48{margin:-12rem}.xl\:-m-56{margin:-14rem}.xl\:-m-64{margin:-16rem}.xl\:-m-px{margin:-1px}.xl\:my-0{margin-top:0;margin-bottom:0}.xl\:mx-0{margin-left:0;margin-right:0}.xl\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xl\:mx-1{margin-left:.25rem;margin-right:.25rem}.xl\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xl\:mx-2{margin-left:.5rem;margin-right:.5rem}.xl\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xl\:mx-3{margin-left:.75rem;margin-right:.75rem}.xl\:my-4{margin-top:1rem;margin-bottom:1rem}.xl\:mx-4{margin-left:1rem;margin-right:1rem}.xl\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xl\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xl\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xl\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xl\:my-8{margin-top:2rem;margin-bottom:2rem}.xl\:mx-8{margin-left:2rem;margin-right:2rem}.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xl\:my-12{margin-top:3rem;margin-bottom:3rem}.xl\:mx-12{margin-left:3rem;margin-right:3rem}.xl\:my-16{margin-top:4rem;margin-bottom:4rem}.xl\:mx-16{margin-left:4rem;margin-right:4rem}.xl\:my-20{margin-top:5rem;margin-bottom:5rem}.xl\:mx-20{margin-left:5rem;margin-right:5rem}.xl\:my-24{margin-top:6rem;margin-bottom:6rem}.xl\:mx-24{margin-left:6rem;margin-right:6rem}.xl\:my-32{margin-top:8rem;margin-bottom:8rem}.xl\:mx-32{margin-left:8rem;margin-right:8rem}.xl\:my-40{margin-top:10rem;margin-bottom:10rem}.xl\:mx-40{margin-left:10rem;margin-right:10rem}.xl\:my-48{margin-top:12rem;margin-bottom:12rem}.xl\:mx-48{margin-left:12rem;margin-right:12rem}.xl\:my-56{margin-top:14rem;margin-bottom:14rem}.xl\:mx-56{margin-left:14rem;margin-right:14rem}.xl\:my-64{margin-top:16rem;margin-bottom:16rem}.xl\:mx-64{margin-left:16rem;margin-right:16rem}.xl\:my-auto{margin-top:auto;margin-bottom:auto}.xl\:mx-auto{margin-left:auto;margin-right:auto}.xl\:my-px{margin-top:1px;margin-bottom:1px}.xl\:mx-px{margin-left:1px;margin-right:1px}.xl\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xl\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xl\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xl\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xl\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xl\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xl\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xl\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xl\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xl\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xl\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xl\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xl\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xl\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xl\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xl\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xl\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xl\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xl\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xl\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xl\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xl\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xl\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xl\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xl\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xl\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xl\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xl\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xl\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xl\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xl\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xl\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xl\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xl\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xl\:-my-px{margin-top:-1px;margin-bottom:-1px}.xl\:-mx-px{margin-left:-1px;margin-right:-1px}.xl\:mt-0{margin-top:0}.xl\:mr-0{margin-right:0}.xl\:mb-0{margin-bottom:0}.xl\:ml-0{margin-left:0}.xl\:mt-1{margin-top:.25rem}.xl\:mr-1{margin-right:.25rem}.xl\:mb-1{margin-bottom:.25rem}.xl\:ml-1{margin-left:.25rem}.xl\:mt-2{margin-top:.5rem}.xl\:mr-2{margin-right:.5rem}.xl\:mb-2{margin-bottom:.5rem}.xl\:ml-2{margin-left:.5rem}.xl\:mt-3{margin-top:.75rem}.xl\:mr-3{margin-right:.75rem}.xl\:mb-3{margin-bottom:.75rem}.xl\:ml-3{margin-left:.75rem}.xl\:mt-4{margin-top:1rem}.xl\:mr-4{margin-right:1rem}.xl\:mb-4{margin-bottom:1rem}.xl\:ml-4{margin-left:1rem}.xl\:mt-5{margin-top:1.25rem}.xl\:mr-5{margin-right:1.25rem}.xl\:mb-5{margin-bottom:1.25rem}.xl\:ml-5{margin-left:1.25rem}.xl\:mt-6{margin-top:1.5rem}.xl\:mr-6{margin-right:1.5rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:ml-6{margin-left:1.5rem}.xl\:mt-8{margin-top:2rem}.xl\:mr-8{margin-right:2rem}.xl\:mb-8{margin-bottom:2rem}.xl\:ml-8{margin-left:2rem}.xl\:mt-10{margin-top:2.5rem}.xl\:mr-10{margin-right:2.5rem}.xl\:mb-10{margin-bottom:2.5rem}.xl\:ml-10{margin-left:2.5rem}.xl\:mt-12{margin-top:3rem}.xl\:mr-12{margin-right:3rem}.xl\:mb-12{margin-bottom:3rem}.xl\:ml-12{margin-left:3rem}.xl\:mt-16{margin-top:4rem}.xl\:mr-16{margin-right:4rem}.xl\:mb-16{margin-bottom:4rem}.xl\:ml-16{margin-left:4rem}.xl\:mt-20{margin-top:5rem}.xl\:mr-20{margin-right:5rem}.xl\:mb-20{margin-bottom:5rem}.xl\:ml-20{margin-left:5rem}.xl\:mt-24{margin-top:6rem}.xl\:mr-24{margin-right:6rem}.xl\:mb-24{margin-bottom:6rem}.xl\:ml-24{margin-left:6rem}.xl\:mt-32{margin-top:8rem}.xl\:mr-32{margin-right:8rem}.xl\:mb-32{margin-bottom:8rem}.xl\:ml-32{margin-left:8rem}.xl\:mt-40{margin-top:10rem}.xl\:mr-40{margin-right:10rem}.xl\:mb-40{margin-bottom:10rem}.xl\:ml-40{margin-left:10rem}.xl\:mt-48{margin-top:12rem}.xl\:mr-48{margin-right:12rem}.xl\:mb-48{margin-bottom:12rem}.xl\:ml-48{margin-left:12rem}.xl\:mt-56{margin-top:14rem}.xl\:mr-56{margin-right:14rem}.xl\:mb-56{margin-bottom:14rem}.xl\:ml-56{margin-left:14rem}.xl\:mt-64{margin-top:16rem}.xl\:mr-64{margin-right:16rem}.xl\:mb-64{margin-bottom:16rem}.xl\:ml-64{margin-left:16rem}.xl\:mt-auto{margin-top:auto}.xl\:mr-auto{margin-right:auto}.xl\:mb-auto{margin-bottom:auto}.xl\:ml-auto{margin-left:auto}.xl\:mt-px{margin-top:1px}.xl\:mr-px{margin-right:1px}.xl\:mb-px{margin-bottom:1px}.xl\:ml-px{margin-left:1px}.xl\:-mt-1{margin-top:-.25rem}.xl\:-mr-1{margin-right:-.25rem}.xl\:-mb-1{margin-bottom:-.25rem}.xl\:-ml-1{margin-left:-.25rem}.xl\:-mt-2{margin-top:-.5rem}.xl\:-mr-2{margin-right:-.5rem}.xl\:-mb-2{margin-bottom:-.5rem}.xl\:-ml-2{margin-left:-.5rem}.xl\:-mt-3{margin-top:-.75rem}.xl\:-mr-3{margin-right:-.75rem}.xl\:-mb-3{margin-bottom:-.75rem}.xl\:-ml-3{margin-left:-.75rem}.xl\:-mt-4{margin-top:-1rem}.xl\:-mr-4{margin-right:-1rem}.xl\:-mb-4{margin-bottom:-1rem}.xl\:-ml-4{margin-left:-1rem}.xl\:-mt-5{margin-top:-1.25rem}.xl\:-mr-5{margin-right:-1.25rem}.xl\:-mb-5{margin-bottom:-1.25rem}.xl\:-ml-5{margin-left:-1.25rem}.xl\:-mt-6{margin-top:-1.5rem}.xl\:-mr-6{margin-right:-1.5rem}.xl\:-mb-6{margin-bottom:-1.5rem}.xl\:-ml-6{margin-left:-1.5rem}.xl\:-mt-8{margin-top:-2rem}.xl\:-mr-8{margin-right:-2rem}.xl\:-mb-8{margin-bottom:-2rem}.xl\:-ml-8{margin-left:-2rem}.xl\:-mt-10{margin-top:-2.5rem}.xl\:-mr-10{margin-right:-2.5rem}.xl\:-mb-10{margin-bottom:-2.5rem}.xl\:-ml-10{margin-left:-2.5rem}.xl\:-mt-12{margin-top:-3rem}.xl\:-mr-12{margin-right:-3rem}.xl\:-mb-12{margin-bottom:-3rem}.xl\:-ml-12{margin-left:-3rem}.xl\:-mt-16{margin-top:-4rem}.xl\:-mr-16{margin-right:-4rem}.xl\:-mb-16{margin-bottom:-4rem}.xl\:-ml-16{margin-left:-4rem}.xl\:-mt-20{margin-top:-5rem}.xl\:-mr-20{margin-right:-5rem}.xl\:-mb-20{margin-bottom:-5rem}.xl\:-ml-20{margin-left:-5rem}.xl\:-mt-24{margin-top:-6rem}.xl\:-mr-24{margin-right:-6rem}.xl\:-mb-24{margin-bottom:-6rem}.xl\:-ml-24{margin-left:-6rem}.xl\:-mt-32{margin-top:-8rem}.xl\:-mr-32{margin-right:-8rem}.xl\:-mb-32{margin-bottom:-8rem}.xl\:-ml-32{margin-left:-8rem}.xl\:-mt-40{margin-top:-10rem}.xl\:-mr-40{margin-right:-10rem}.xl\:-mb-40{margin-bottom:-10rem}.xl\:-ml-40{margin-left:-10rem}.xl\:-mt-48{margin-top:-12rem}.xl\:-mr-48{margin-right:-12rem}.xl\:-mb-48{margin-bottom:-12rem}.xl\:-ml-48{margin-left:-12rem}.xl\:-mt-56{margin-top:-14rem}.xl\:-mr-56{margin-right:-14rem}.xl\:-mb-56{margin-bottom:-14rem}.xl\:-ml-56{margin-left:-14rem}.xl\:-mt-64{margin-top:-16rem}.xl\:-mr-64{margin-right:-16rem}.xl\:-mb-64{margin-bottom:-16rem}.xl\:-ml-64{margin-left:-16rem}.xl\:-mt-px{margin-top:-1px}.xl\:-mr-px{margin-right:-1px}.xl\:-mb-px{margin-bottom:-1px}.xl\:-ml-px{margin-left:-1px}.xl\:max-h-full{max-height:100%}.xl\:max-h-screen{max-height:100vh}.xl\:max-w-none{max-width:none}.xl\:max-w-xs{max-width:20rem}.xl\:max-w-sm{max-width:24rem}.xl\:max-w-md{max-width:28rem}.xl\:max-w-lg{max-width:32rem}.xl\:max-w-xl{max-width:36rem}.xl\:max-w-2xl{max-width:42rem}.xl\:max-w-3xl{max-width:48rem}.xl\:max-w-4xl{max-width:56rem}.xl\:max-w-5xl{max-width:64rem}.xl\:max-w-6xl{max-width:72rem}.xl\:max-w-full{max-width:100%}.xl\:max-w-screen-xs{max-width:360px}.xl\:max-w-screen-sm{max-width:640px}.xl\:max-w-screen-md{max-width:768px}.xl\:max-w-screen-lg{max-width:1024px}.xl\:max-w-screen-xl{max-width:1280px}.xl\:max-w-screen-xxl{max-width:1480px}.xl\:min-h-0{min-height:0}.xl\:min-h-full{min-height:100%}.xl\:min-h-screen{min-height:100vh}.xl\:min-w-0{min-width:0}.xl\:min-w-full{min-width:100%}.xl\:object-contain{-o-object-fit:contain;object-fit:contain}.xl\:object-cover{-o-object-fit:cover;object-fit:cover}.xl\:object-fill{-o-object-fit:fill;object-fit:fill}.xl\:object-none{-o-object-fit:none;object-fit:none}.xl\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xl\:object-bottom{-o-object-position:bottom;object-position:bottom}.xl\:object-center{-o-object-position:center;object-position:center}.xl\:object-left{-o-object-position:left;object-position:left}.xl\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xl\:object-left-top{-o-object-position:left top;object-position:left top}.xl\:object-right{-o-object-position:right;object-position:right}.xl\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xl\:object-right-top{-o-object-position:right top;object-position:right top}.xl\:object-top{-o-object-position:top;object-position:top}.xl\:opacity-0{opacity:0}.xl\:opacity-25{opacity:.25}.xl\:opacity-50{opacity:.5}.xl\:opacity-75{opacity:.75}.xl\:opacity-100{opacity:1}.xl\:hover\:opacity-0:hover{opacity:0}.xl\:hover\:opacity-25:hover{opacity:.25}.xl\:hover\:opacity-50:hover{opacity:.5}.xl\:hover\:opacity-75:hover{opacity:.75}.xl\:hover\:opacity-100:hover{opacity:1}.xl\:focus\:opacity-0:focus{opacity:0}.xl\:focus\:opacity-25:focus{opacity:.25}.xl\:focus\:opacity-50:focus{opacity:.5}.xl\:focus\:opacity-75:focus{opacity:.75}.xl\:focus\:opacity-100:focus{opacity:1}.xl\:outline-none{outline:2px solid transparent;outline-offset:2px}.xl\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xl\:outline-black{outline:2px dotted #000;outline-offset:2px}.xl\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xl\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xl\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xl\:overflow-auto{overflow:auto}.xl\:overflow-hidden{overflow:hidden}.xl\:overflow-visible{overflow:visible}.xl\:overflow-scroll{overflow:scroll}.xl\:overflow-x-auto{overflow-x:auto}.xl\:overflow-y-auto{overflow-y:auto}.xl\:overflow-x-hidden{overflow-x:hidden}.xl\:overflow-y-hidden{overflow-y:hidden}.xl\:overflow-x-visible{overflow-x:visible}.xl\:overflow-y-visible{overflow-y:visible}.xl\:overflow-x-scroll{overflow-x:scroll}.xl\:overflow-y-scroll{overflow-y:scroll}.xl\:scrolling-touch{-webkit-overflow-scrolling:touch}.xl\:scrolling-auto{-webkit-overflow-scrolling:auto}.xl\:overscroll-auto{overscroll-behavior:auto}.xl\:overscroll-contain{overscroll-behavior:contain}.xl\:overscroll-none{overscroll-behavior:none}.xl\:overscroll-y-auto{overscroll-behavior-y:auto}.xl\:overscroll-y-contain{overscroll-behavior-y:contain}.xl\:overscroll-y-none{overscroll-behavior-y:none}.xl\:overscroll-x-auto{overscroll-behavior-x:auto}.xl\:overscroll-x-contain{overscroll-behavior-x:contain}.xl\:overscroll-x-none{overscroll-behavior-x:none}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-8{padding:2rem}.xl\:p-10{padding:2.5rem}.xl\:p-12{padding:3rem}.xl\:p-16{padding:4rem}.xl\:p-20{padding:5rem}.xl\:p-24{padding:6rem}.xl\:p-32{padding:8rem}.xl\:p-40{padding:10rem}.xl\:p-48{padding:12rem}.xl\:p-56{padding:14rem}.xl\:p-64{padding:16rem}.xl\:p-px{padding:1px}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:px-0{padding-left:0;padding-right:0}.xl\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xl\:px-1{padding-left:.25rem;padding-right:.25rem}.xl\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xl\:px-2{padding-left:.5rem;padding-right:.5rem}.xl\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xl\:py-8{padding-top:2rem;padding-bottom:2rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:py-12{padding-top:3rem;padding-bottom:3rem}.xl\:px-12{padding-left:3rem;padding-right:3rem}.xl\:py-16{padding-top:4rem;padding-bottom:4rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:py-20{padding-top:5rem;padding-bottom:5rem}.xl\:px-20{padding-left:5rem;padding-right:5rem}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:px-24{padding-left:6rem;padding-right:6rem}.xl\:py-32{padding-top:8rem;padding-bottom:8rem}.xl\:px-32{padding-left:8rem;padding-right:8rem}.xl\:py-40{padding-top:10rem;padding-bottom:10rem}.xl\:px-40{padding-left:10rem;padding-right:10rem}.xl\:py-48{padding-top:12rem;padding-bottom:12rem}.xl\:px-48{padding-left:12rem;padding-right:12rem}.xl\:py-56{padding-top:14rem;padding-bottom:14rem}.xl\:px-56{padding-left:14rem;padding-right:14rem}.xl\:py-64{padding-top:16rem;padding-bottom:16rem}.xl\:px-64{padding-left:16rem;padding-right:16rem}.xl\:py-px{padding-top:1px;padding-bottom:1px}.xl\:px-px{padding-left:1px;padding-right:1px}.xl\:pt-0{padding-top:0}.xl\:pr-0{padding-right:0}.xl\:pb-0{padding-bottom:0}.xl\:pl-0{padding-left:0}.xl\:pt-1{padding-top:.25rem}.xl\:pr-1{padding-right:.25rem}.xl\:pb-1{padding-bottom:.25rem}.xl\:pl-1{padding-left:.25rem}.xl\:pt-2{padding-top:.5rem}.xl\:pr-2{padding-right:.5rem}.xl\:pb-2{padding-bottom:.5rem}.xl\:pl-2{padding-left:.5rem}.xl\:pt-3{padding-top:.75rem}.xl\:pr-3{padding-right:.75rem}.xl\:pb-3{padding-bottom:.75rem}.xl\:pl-3{padding-left:.75rem}.xl\:pt-4{padding-top:1rem}.xl\:pr-4{padding-right:1rem}.xl\:pb-4{padding-bottom:1rem}.xl\:pl-4{padding-left:1rem}.xl\:pt-5{padding-top:1.25rem}.xl\:pr-5{padding-right:1.25rem}.xl\:pb-5{padding-bottom:1.25rem}.xl\:pl-5{padding-left:1.25rem}.xl\:pt-6{padding-top:1.5rem}.xl\:pr-6{padding-right:1.5rem}.xl\:pb-6{padding-bottom:1.5rem}.xl\:pl-6{padding-left:1.5rem}.xl\:pt-8{padding-top:2rem}.xl\:pr-8{padding-right:2rem}.xl\:pb-8{padding-bottom:2rem}.xl\:pl-8{padding-left:2rem}.xl\:pt-10{padding-top:2.5rem}.xl\:pr-10{padding-right:2.5rem}.xl\:pb-10{padding-bottom:2.5rem}.xl\:pl-10{padding-left:2.5rem}.xl\:pt-12{padding-top:3rem}.xl\:pr-12{padding-right:3rem}.xl\:pb-12{padding-bottom:3rem}.xl\:pl-12{padding-left:3rem}.xl\:pt-16{padding-top:4rem}.xl\:pr-16{padding-right:4rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pl-16{padding-left:4rem}.xl\:pt-20{padding-top:5rem}.xl\:pr-20{padding-right:5rem}.xl\:pb-20{padding-bottom:5rem}.xl\:pl-20{padding-left:5rem}.xl\:pt-24{padding-top:6rem}.xl\:pr-24{padding-right:6rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pl-24{padding-left:6rem}.xl\:pt-32{padding-top:8rem}.xl\:pr-32{padding-right:8rem}.xl\:pb-32{padding-bottom:8rem}.xl\:pl-32{padding-left:8rem}.xl\:pt-40{padding-top:10rem}.xl\:pr-40{padding-right:10rem}.xl\:pb-40{padding-bottom:10rem}.xl\:pl-40{padding-left:10rem}.xl\:pt-48{padding-top:12rem}.xl\:pr-48{padding-right:12rem}.xl\:pb-48{padding-bottom:12rem}.xl\:pl-48{padding-left:12rem}.xl\:pt-56{padding-top:14rem}.xl\:pr-56{padding-right:14rem}.xl\:pb-56{padding-bottom:14rem}.xl\:pl-56{padding-left:14rem}.xl\:pt-64{padding-top:16rem}.xl\:pr-64{padding-right:16rem}.xl\:pb-64{padding-bottom:16rem}.xl\:pl-64{padding-left:16rem}.xl\:pt-px{padding-top:1px}.xl\:pr-px{padding-right:1px}.xl\:pb-px{padding-bottom:1px}.xl\:pl-px{padding-left:1px}.xl\:placeholder-transparent::placeholder{color:transparent}.xl\:placeholder-current::placeholder{color:currentColor}.xl\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xl\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xl\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xl\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xl\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xl\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xl\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xl\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xl\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xl\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xl\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xl\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xl\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xl\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xl\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xl\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xl\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xl\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xl\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xl\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xl\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xl\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xl\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xl\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xl\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xl\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xl\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xl\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xl\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xl\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xl\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xl\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xl\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xl\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xl\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xl\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xl\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xl\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xl\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xl\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xl\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xl\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xl\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xl\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xl\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xl\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xl\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xl\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xl\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xl\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xl\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xl\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xl\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xl\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xl\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xl\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xl\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xl\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xl\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xl\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xl\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xl\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xl\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xl\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xl\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xl\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xl\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xl\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xl\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xl\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xl\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xl\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xl\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xl\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xl\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xl\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xl\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xl\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xl\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xl\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xl\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xl\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xl\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xl\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xl\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xl\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xl\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xl\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xl\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xl\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xl\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xl\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xl\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xl\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xl\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xl\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xl\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xl\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xl\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xl\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xl\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xl\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xl\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xl\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xl\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xl\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xl\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xl\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xl\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xl\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xl\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xl\:pointer-events-none{pointer-events:none}.xl\:pointer-events-auto{pointer-events:auto}.xl\:static{position:static}.xl\:fixed{position:fixed}.xl\:absolute{position:absolute}.xl\:relative{position:relative}.xl\:sticky{position:sticky}.xl\:inset-0{top:0;right:0;bottom:0;left:0}.xl\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xl\:inset-y-0{top:0;bottom:0}.xl\:inset-x-0{right:0;left:0}.xl\:inset-y-auto{top:auto;bottom:auto}.xl\:inset-x-auto{right:auto;left:auto}.xl\:top-0{top:0}.xl\:right-0{right:0}.xl\:bottom-0{bottom:0}.xl\:left-0{left:0}.xl\:top-auto{top:auto}.xl\:right-auto{right:auto}.xl\:bottom-auto{bottom:auto}.xl\:left-auto{left:auto}.xl\:resize-none{resize:none}.xl\:resize-y{resize:vertical}.xl\:resize-x{resize:horizontal}.xl\:resize{resize:both}.xl\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:shadow-none{box-shadow:none}.xl\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:hover\:shadow-none:hover{box-shadow:none}.xl\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:focus\:shadow-none:focus{box-shadow:none}.xl\:fill-current{fill:currentColor}.xl\:stroke-current{stroke:currentColor}.xl\:stroke-0{stroke-width:0}.xl\:stroke-1{stroke-width:1}.xl\:stroke-2{stroke-width:2}.xl\:table-auto{table-layout:auto}.xl\:table-fixed{table-layout:fixed}.xl\:text-left{text-align:left}.xl\:text-center{text-align:center}.xl\:text-right{text-align:right}.xl\:text-justify{text-align:justify}.xl\:text-transparent{color:transparent}.xl\:text-current{color:currentColor}.xl\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:hover\:text-transparent:hover{color:transparent}.xl\:hover\:text-current:hover{color:currentColor}.xl\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:focus\:text-transparent:focus{color:transparent}.xl\:focus\:text-current:focus{color:currentColor}.xl\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:text-opacity-0{--text-opacity:0}.xl\:text-opacity-25{--text-opacity:0.25}.xl\:text-opacity-50{--text-opacity:0.5}.xl\:text-opacity-75{--text-opacity:0.75}.xl\:text-opacity-100{--text-opacity:1}.xl\:hover\:text-opacity-0:hover{--text-opacity:0}.xl\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xl\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xl\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xl\:hover\:text-opacity-100:hover{--text-opacity:1}.xl\:focus\:text-opacity-0:focus{--text-opacity:0}.xl\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xl\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xl\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xl\:focus\:text-opacity-100:focus{--text-opacity:1}.xl\:italic{font-style:italic}.xl\:not-italic{font-style:normal}.xl\:uppercase{text-transform:uppercase}.xl\:lowercase{text-transform:lowercase}.xl\:capitalize{text-transform:capitalize}.xl\:normal-case{text-transform:none}.xl\:underline{text-decoration:underline}.xl\:line-through{text-decoration:line-through}.xl\:no-underline{text-decoration:none}.xl\:hover\:underline:hover{text-decoration:underline}.xl\:hover\:line-through:hover{text-decoration:line-through}.xl\:hover\:no-underline:hover{text-decoration:none}.xl\:focus\:underline:focus{text-decoration:underline}.xl\:focus\:line-through:focus{text-decoration:line-through}.xl\:focus\:no-underline:focus{text-decoration:none}.xl\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xl\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xl\:diagonal-fractions,.xl\:lining-nums,.xl\:oldstyle-nums,.xl\:ordinal,.xl\:proportional-nums,.xl\:slashed-zero,.xl\:stacked-fractions,.xl\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xl\:normal-nums{font-variant-numeric:normal}.xl\:ordinal{--font-variant-numeric-ordinal:ordinal}.xl\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xl\:lining-nums{--font-variant-numeric-figure:lining-nums}.xl\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xl\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xl\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xl\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xl\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xl\:tracking-tighter{letter-spacing:-.05em}.xl\:tracking-tight{letter-spacing:-.025em}.xl\:tracking-normal{letter-spacing:0}.xl\:tracking-wide{letter-spacing:.025em}.xl\:tracking-wider{letter-spacing:.05em}.xl\:tracking-widest{letter-spacing:.1em}.xl\:select-none{-webkit-user-select:none;user-select:none}.xl\:select-text{-webkit-user-select:text;user-select:text}.xl\:select-all{-webkit-user-select:all;user-select:all}.xl\:select-auto{-webkit-user-select:auto;user-select:auto}.xl\:align-baseline{vertical-align:baseline}.xl\:align-top{vertical-align:top}.xl\:align-middle{vertical-align:middle}.xl\:align-bottom{vertical-align:bottom}.xl\:align-text-top{vertical-align:text-top}.xl\:align-text-bottom{vertical-align:text-bottom}.xl\:visible{visibility:visible}.xl\:invisible{visibility:hidden}.xl\:whitespace-normal{white-space:normal}.xl\:whitespace-no-wrap{white-space:nowrap}.xl\:whitespace-pre{white-space:pre}.xl\:whitespace-pre-line{white-space:pre-line}.xl\:whitespace-pre-wrap{white-space:pre-wrap}.xl\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xl\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xl\:break-all{word-break:break-all}.xl\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xl\:w-0{width:0}.xl\:w-1{width:.25rem}.xl\:w-2{width:.5rem}.xl\:w-3{width:.75rem}.xl\:w-4{width:1rem}.xl\:w-5{width:1.25rem}.xl\:w-6{width:1.5rem}.xl\:w-8{width:2rem}.xl\:w-10{width:2.5rem}.xl\:w-12{width:3rem}.xl\:w-16{width:4rem}.xl\:w-20{width:5rem}.xl\:w-24{width:6rem}.xl\:w-32{width:8rem}.xl\:w-40{width:10rem}.xl\:w-48{width:12rem}.xl\:w-56{width:14rem}.xl\:w-64{width:16rem}.xl\:w-auto{width:auto}.xl\:w-px{width:1px}.xl\:w-1\/2{width:50%}.xl\:w-1\/3{width:33.333333%}.xl\:w-2\/3{width:66.666667%}.xl\:w-1\/4{width:25%}.xl\:w-2\/4{width:50%}.xl\:w-3\/4{width:75%}.xl\:w-1\/5{width:20%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-4\/5{width:80%}.xl\:w-1\/6{width:16.666667%}.xl\:w-2\/6{width:33.333333%}.xl\:w-3\/6{width:50%}.xl\:w-4\/6{width:66.666667%}.xl\:w-5\/6{width:83.333333%}.xl\:w-1\/12{width:8.333333%}.xl\:w-2\/12{width:16.666667%}.xl\:w-3\/12{width:25%}.xl\:w-4\/12{width:33.333333%}.xl\:w-5\/12{width:41.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}.xl\:w-8\/12{width:66.666667%}.xl\:w-9\/12{width:75%}.xl\:w-10\/12{width:83.333333%}.xl\:w-11\/12{width:91.666667%}.xl\:w-full{width:100%}.xl\:w-screen{width:100vw}.xl\:z-0{z-index:0}.xl\:z-10{z-index:10}.xl\:z-20{z-index:20}.xl\:z-30{z-index:30}.xl\:z-40{z-index:40}.xl\:z-50{z-index:50}.xl\:z-auto{z-index:auto}.xl\:gap-0{grid-gap:0;gap:0}.xl\:gap-1{grid-gap:.25rem;gap:.25rem}.xl\:gap-2{grid-gap:.5rem;gap:.5rem}.xl\:gap-3{grid-gap:.75rem;gap:.75rem}.xl\:gap-4{grid-gap:1rem;gap:1rem}.xl\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xl\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xl\:gap-8{grid-gap:2rem;gap:2rem}.xl\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xl\:gap-12{grid-gap:3rem;gap:3rem}.xl\:gap-16{grid-gap:4rem;gap:4rem}.xl\:gap-20{grid-gap:5rem;gap:5rem}.xl\:gap-24{grid-gap:6rem;gap:6rem}.xl\:gap-32{grid-gap:8rem;gap:8rem}.xl\:gap-40{grid-gap:10rem;gap:10rem}.xl\:gap-48{grid-gap:12rem;gap:12rem}.xl\:gap-56{grid-gap:14rem;gap:14rem}.xl\:gap-64{grid-gap:16rem;gap:16rem}.xl\:gap-px{grid-gap:1px;gap:1px}.xl\:col-gap-0{grid-column-gap:0;column-gap:0}.xl\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xl\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xl\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xl\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xl\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xl\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xl\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xl\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xl\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xl\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xl\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xl\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xl\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xl\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xl\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xl\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xl\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xl\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xl\:gap-x-0{grid-column-gap:0;column-gap:0}.xl\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xl\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xl\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xl\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xl\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xl\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xl\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xl\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xl\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xl\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xl\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xl\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xl\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xl\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xl\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xl\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xl\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xl\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xl\:row-gap-0{grid-row-gap:0;row-gap:0}.xl\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xl\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xl\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xl\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xl\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xl\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xl\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xl\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xl\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xl\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xl\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xl\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xl\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xl\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xl\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xl\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xl\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xl\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xl\:gap-y-0{grid-row-gap:0;row-gap:0}.xl\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xl\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xl\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xl\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xl\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xl\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xl\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xl\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xl\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xl\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xl\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xl\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xl\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xl\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xl\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xl\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xl\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xl\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xl\:grid-flow-row{grid-auto-flow:row}.xl\:grid-flow-col{grid-auto-flow:column}.xl\:grid-flow-row-dense{grid-auto-flow:row dense}.xl\:grid-flow-col-dense{grid-auto-flow:column dense}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-none{grid-template-columns:none}.xl\:auto-cols-auto{grid-auto-columns:auto}.xl\:auto-cols-min{grid-auto-columns:min-content}.xl\:auto-cols-max{grid-auto-columns:max-content}.xl\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xl\:col-auto{grid-column:auto}.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:col-span-full{grid-column:1/-1}.xl\:col-start-1{grid-column-start:1}.xl\:col-start-2{grid-column-start:2}.xl\:col-start-3{grid-column-start:3}.xl\:col-start-4{grid-column-start:4}.xl\:col-start-5{grid-column-start:5}.xl\:col-start-6{grid-column-start:6}.xl\:col-start-7{grid-column-start:7}.xl\:col-start-8{grid-column-start:8}.xl\:col-start-9{grid-column-start:9}.xl\:col-start-10{grid-column-start:10}.xl\:col-start-11{grid-column-start:11}.xl\:col-start-12{grid-column-start:12}.xl\:col-start-13{grid-column-start:13}.xl\:col-start-auto{grid-column-start:auto}.xl\:col-end-1{grid-column-end:1}.xl\:col-end-2{grid-column-end:2}.xl\:col-end-3{grid-column-end:3}.xl\:col-end-4{grid-column-end:4}.xl\:col-end-5{grid-column-end:5}.xl\:col-end-6{grid-column-end:6}.xl\:col-end-7{grid-column-end:7}.xl\:col-end-8{grid-column-end:8}.xl\:col-end-9{grid-column-end:9}.xl\:col-end-10{grid-column-end:10}.xl\:col-end-11{grid-column-end:11}.xl\:col-end-12{grid-column-end:12}.xl\:col-end-13{grid-column-end:13}.xl\:col-end-auto{grid-column-end:auto}.xl\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:grid-rows-none{grid-template-rows:none}.xl\:auto-rows-auto{grid-auto-rows:auto}.xl\:auto-rows-min{grid-auto-rows:min-content}.xl\:auto-rows-max{grid-auto-rows:max-content}.xl\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xl\:row-auto{grid-row:auto}.xl\:row-span-1{grid-row:span 1/span 1}.xl\:row-span-2{grid-row:span 2/span 2}.xl\:row-span-3{grid-row:span 3/span 3}.xl\:row-span-4{grid-row:span 4/span 4}.xl\:row-span-5{grid-row:span 5/span 5}.xl\:row-span-6{grid-row:span 6/span 6}.xl\:row-span-full{grid-row:1/-1}.xl\:row-start-1{grid-row-start:1}.xl\:row-start-2{grid-row-start:2}.xl\:row-start-3{grid-row-start:3}.xl\:row-start-4{grid-row-start:4}.xl\:row-start-5{grid-row-start:5}.xl\:row-start-6{grid-row-start:6}.xl\:row-start-7{grid-row-start:7}.xl\:row-start-auto{grid-row-start:auto}.xl\:row-end-1{grid-row-end:1}.xl\:row-end-2{grid-row-end:2}.xl\:row-end-3{grid-row-end:3}.xl\:row-end-4{grid-row-end:4}.xl\:row-end-5{grid-row-end:5}.xl\:row-end-6{grid-row-end:6}.xl\:row-end-7{grid-row-end:7}.xl\:row-end-auto{grid-row-end:auto}.xl\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xl\:transform-none{transform:none}.xl\:origin-center{transform-origin:center}.xl\:origin-top{transform-origin:top}.xl\:origin-top-right{transform-origin:top right}.xl\:origin-right{transform-origin:right}.xl\:origin-bottom-right{transform-origin:bottom right}.xl\:origin-bottom{transform-origin:bottom}.xl\:origin-bottom-left{transform-origin:bottom left}.xl\:origin-left{transform-origin:left}.xl\:origin-top-left{transform-origin:top left}.xl\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xl\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xl\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:scale-x-0{--transform-scale-x:0}.xl\:scale-x-50{--transform-scale-x:.5}.xl\:scale-x-75{--transform-scale-x:.75}.xl\:scale-x-90{--transform-scale-x:.9}.xl\:scale-x-95{--transform-scale-x:.95}.xl\:scale-x-100{--transform-scale-x:1}.xl\:scale-x-105{--transform-scale-x:1.05}.xl\:scale-x-110{--transform-scale-x:1.1}.xl\:scale-x-125{--transform-scale-x:1.25}.xl\:scale-x-150{--transform-scale-x:1.5}.xl\:scale-y-0{--transform-scale-y:0}.xl\:scale-y-50{--transform-scale-y:.5}.xl\:scale-y-75{--transform-scale-y:.75}.xl\:scale-y-90{--transform-scale-y:.9}.xl\:scale-y-95{--transform-scale-y:.95}.xl\:scale-y-100{--transform-scale-y:1}.xl\:scale-y-105{--transform-scale-y:1.05}.xl\:scale-y-110{--transform-scale-y:1.1}.xl\:scale-y-125{--transform-scale-y:1.25}.xl\:scale-y-150{--transform-scale-y:1.5}.xl\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xl\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xl\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:hover\:scale-x-0:hover{--transform-scale-x:0}.xl\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xl\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xl\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xl\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xl\:hover\:scale-x-100:hover{--transform-scale-x:1}.xl\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xl\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xl\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xl\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xl\:hover\:scale-y-0:hover{--transform-scale-y:0}.xl\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xl\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xl\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xl\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xl\:hover\:scale-y-100:hover{--transform-scale-y:1}.xl\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xl\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xl\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xl\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xl\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xl\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xl\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:focus\:scale-x-0:focus{--transform-scale-x:0}.xl\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xl\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xl\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xl\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xl\:focus\:scale-x-100:focus{--transform-scale-x:1}.xl\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xl\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xl\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xl\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xl\:focus\:scale-y-0:focus{--transform-scale-y:0}.xl\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xl\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xl\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xl\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xl\:focus\:scale-y-100:focus{--transform-scale-y:1}.xl\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xl\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xl\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xl\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xl\:rotate-0{--transform-rotate:0}.xl\:rotate-1{--transform-rotate:1deg}.xl\:rotate-2{--transform-rotate:2deg}.xl\:rotate-3{--transform-rotate:3deg}.xl\:rotate-6{--transform-rotate:6deg}.xl\:rotate-12{--transform-rotate:12deg}.xl\:rotate-45{--transform-rotate:45deg}.xl\:rotate-90{--transform-rotate:90deg}.xl\:rotate-180{--transform-rotate:180deg}.xl\:-rotate-180{--transform-rotate:-180deg}.xl\:-rotate-90{--transform-rotate:-90deg}.xl\:-rotate-45{--transform-rotate:-45deg}.xl\:-rotate-12{--transform-rotate:-12deg}.xl\:-rotate-6{--transform-rotate:-6deg}.xl\:-rotate-3{--transform-rotate:-3deg}.xl\:-rotate-2{--transform-rotate:-2deg}.xl\:-rotate-1{--transform-rotate:-1deg}.xl\:hover\:rotate-0:hover{--transform-rotate:0}.xl\:hover\:rotate-1:hover{--transform-rotate:1deg}.xl\:hover\:rotate-2:hover{--transform-rotate:2deg}.xl\:hover\:rotate-3:hover{--transform-rotate:3deg}.xl\:hover\:rotate-6:hover{--transform-rotate:6deg}.xl\:hover\:rotate-12:hover{--transform-rotate:12deg}.xl\:hover\:rotate-45:hover{--transform-rotate:45deg}.xl\:hover\:rotate-90:hover{--transform-rotate:90deg}.xl\:hover\:rotate-180:hover{--transform-rotate:180deg}.xl\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xl\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xl\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xl\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xl\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xl\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xl\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xl\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xl\:focus\:rotate-0:focus{--transform-rotate:0}.xl\:focus\:rotate-1:focus{--transform-rotate:1deg}.xl\:focus\:rotate-2:focus{--transform-rotate:2deg}.xl\:focus\:rotate-3:focus{--transform-rotate:3deg}.xl\:focus\:rotate-6:focus{--transform-rotate:6deg}.xl\:focus\:rotate-12:focus{--transform-rotate:12deg}.xl\:focus\:rotate-45:focus{--transform-rotate:45deg}.xl\:focus\:rotate-90:focus{--transform-rotate:90deg}.xl\:focus\:rotate-180:focus{--transform-rotate:180deg}.xl\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xl\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xl\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xl\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xl\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xl\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xl\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xl\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xl\:translate-x-0{--transform-translate-x:0}.xl\:translate-x-1{--transform-translate-x:0.25rem}.xl\:translate-x-2{--transform-translate-x:0.5rem}.xl\:translate-x-3{--transform-translate-x:0.75rem}.xl\:translate-x-4{--transform-translate-x:1rem}.xl\:translate-x-5{--transform-translate-x:1.25rem}.xl\:translate-x-6{--transform-translate-x:1.5rem}.xl\:translate-x-8{--transform-translate-x:2rem}.xl\:translate-x-10{--transform-translate-x:2.5rem}.xl\:translate-x-12{--transform-translate-x:3rem}.xl\:translate-x-16{--transform-translate-x:4rem}.xl\:translate-x-20{--transform-translate-x:5rem}.xl\:translate-x-24{--transform-translate-x:6rem}.xl\:translate-x-32{--transform-translate-x:8rem}.xl\:translate-x-40{--transform-translate-x:10rem}.xl\:translate-x-48{--transform-translate-x:12rem}.xl\:translate-x-56{--transform-translate-x:14rem}.xl\:translate-x-64{--transform-translate-x:16rem}.xl\:translate-x-px{--transform-translate-x:1px}.xl\:-translate-x-1{--transform-translate-x:-0.25rem}.xl\:-translate-x-2{--transform-translate-x:-0.5rem}.xl\:-translate-x-3{--transform-translate-x:-0.75rem}.xl\:-translate-x-4{--transform-translate-x:-1rem}.xl\:-translate-x-5{--transform-translate-x:-1.25rem}.xl\:-translate-x-6{--transform-translate-x:-1.5rem}.xl\:-translate-x-8{--transform-translate-x:-2rem}.xl\:-translate-x-10{--transform-translate-x:-2.5rem}.xl\:-translate-x-12{--transform-translate-x:-3rem}.xl\:-translate-x-16{--transform-translate-x:-4rem}.xl\:-translate-x-20{--transform-translate-x:-5rem}.xl\:-translate-x-24{--transform-translate-x:-6rem}.xl\:-translate-x-32{--transform-translate-x:-8rem}.xl\:-translate-x-40{--transform-translate-x:-10rem}.xl\:-translate-x-48{--transform-translate-x:-12rem}.xl\:-translate-x-56{--transform-translate-x:-14rem}.xl\:-translate-x-64{--transform-translate-x:-16rem}.xl\:-translate-x-px{--transform-translate-x:-1px}.xl\:-translate-x-full{--transform-translate-x:-100%}.xl\:-translate-x-1\/2{--transform-translate-x:-50%}.xl\:translate-x-1\/2{--transform-translate-x:50%}.xl\:translate-x-full{--transform-translate-x:100%}.xl\:translate-y-0{--transform-translate-y:0}.xl\:translate-y-1{--transform-translate-y:0.25rem}.xl\:translate-y-2{--transform-translate-y:0.5rem}.xl\:translate-y-3{--transform-translate-y:0.75rem}.xl\:translate-y-4{--transform-translate-y:1rem}.xl\:translate-y-5{--transform-translate-y:1.25rem}.xl\:translate-y-6{--transform-translate-y:1.5rem}.xl\:translate-y-8{--transform-translate-y:2rem}.xl\:translate-y-10{--transform-translate-y:2.5rem}.xl\:translate-y-12{--transform-translate-y:3rem}.xl\:translate-y-16{--transform-translate-y:4rem}.xl\:translate-y-20{--transform-translate-y:5rem}.xl\:translate-y-24{--transform-translate-y:6rem}.xl\:translate-y-32{--transform-translate-y:8rem}.xl\:translate-y-40{--transform-translate-y:10rem}.xl\:translate-y-48{--transform-translate-y:12rem}.xl\:translate-y-56{--transform-translate-y:14rem}.xl\:translate-y-64{--transform-translate-y:16rem}.xl\:translate-y-px{--transform-translate-y:1px}.xl\:-translate-y-1{--transform-translate-y:-0.25rem}.xl\:-translate-y-2{--transform-translate-y:-0.5rem}.xl\:-translate-y-3{--transform-translate-y:-0.75rem}.xl\:-translate-y-4{--transform-translate-y:-1rem}.xl\:-translate-y-5{--transform-translate-y:-1.25rem}.xl\:-translate-y-6{--transform-translate-y:-1.5rem}.xl\:-translate-y-8{--transform-translate-y:-2rem}.xl\:-translate-y-10{--transform-translate-y:-2.5rem}.xl\:-translate-y-12{--transform-translate-y:-3rem}.xl\:-translate-y-16{--transform-translate-y:-4rem}.xl\:-translate-y-20{--transform-translate-y:-5rem}.xl\:-translate-y-24{--transform-translate-y:-6rem}.xl\:-translate-y-32{--transform-translate-y:-8rem}.xl\:-translate-y-40{--transform-translate-y:-10rem}.xl\:-translate-y-48{--transform-translate-y:-12rem}.xl\:-translate-y-56{--transform-translate-y:-14rem}.xl\:-translate-y-64{--transform-translate-y:-16rem}.xl\:-translate-y-px{--transform-translate-y:-1px}.xl\:-translate-y-full{--transform-translate-y:-100%}.xl\:-translate-y-1\/2{--transform-translate-y:-50%}.xl\:translate-y-1\/2{--transform-translate-y:50%}.xl\:translate-y-full{--transform-translate-y:100%}.xl\:hover\:translate-x-0:hover{--transform-translate-x:0}.xl\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xl\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xl\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xl\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xl\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xl\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xl\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xl\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xl\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xl\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xl\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xl\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xl\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xl\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xl\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xl\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xl\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xl\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xl\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xl\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xl\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xl\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xl\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xl\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xl\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xl\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xl\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xl\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xl\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xl\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xl\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xl\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xl\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xl\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xl\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xl\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xl\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xl\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xl\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xl\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xl\:hover\:translate-y-0:hover{--transform-translate-y:0}.xl\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xl\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xl\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xl\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xl\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xl\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xl\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xl\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xl\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xl\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xl\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xl\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xl\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xl\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xl\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xl\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xl\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xl\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xl\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xl\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xl\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xl\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xl\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xl\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xl\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xl\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xl\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xl\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xl\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xl\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xl\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xl\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xl\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xl\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xl\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xl\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xl\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xl\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xl\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xl\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xl\:focus\:translate-x-0:focus{--transform-translate-x:0}.xl\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xl\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xl\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xl\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xl\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xl\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xl\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xl\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xl\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xl\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xl\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xl\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xl\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xl\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xl\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xl\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xl\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xl\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xl\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xl\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xl\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xl\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xl\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xl\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xl\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xl\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xl\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xl\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xl\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xl\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xl\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xl\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xl\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xl\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xl\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xl\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xl\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xl\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xl\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xl\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xl\:focus\:translate-y-0:focus{--transform-translate-y:0}.xl\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xl\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xl\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xl\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xl\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xl\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xl\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xl\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xl\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xl\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xl\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xl\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xl\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xl\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xl\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xl\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xl\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xl\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xl\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xl\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xl\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xl\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xl\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xl\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xl\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xl\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xl\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xl\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xl\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xl\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xl\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xl\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xl\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xl\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xl\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xl\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xl\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xl\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xl\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xl\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xl\:skew-x-0{--transform-skew-x:0}.xl\:skew-x-1{--transform-skew-x:1deg}.xl\:skew-x-2{--transform-skew-x:2deg}.xl\:skew-x-3{--transform-skew-x:3deg}.xl\:skew-x-6{--transform-skew-x:6deg}.xl\:skew-x-12{--transform-skew-x:12deg}.xl\:-skew-x-12{--transform-skew-x:-12deg}.xl\:-skew-x-6{--transform-skew-x:-6deg}.xl\:-skew-x-3{--transform-skew-x:-3deg}.xl\:-skew-x-2{--transform-skew-x:-2deg}.xl\:-skew-x-1{--transform-skew-x:-1deg}.xl\:skew-y-0{--transform-skew-y:0}.xl\:skew-y-1{--transform-skew-y:1deg}.xl\:skew-y-2{--transform-skew-y:2deg}.xl\:skew-y-3{--transform-skew-y:3deg}.xl\:skew-y-6{--transform-skew-y:6deg}.xl\:skew-y-12{--transform-skew-y:12deg}.xl\:-skew-y-12{--transform-skew-y:-12deg}.xl\:-skew-y-6{--transform-skew-y:-6deg}.xl\:-skew-y-3{--transform-skew-y:-3deg}.xl\:-skew-y-2{--transform-skew-y:-2deg}.xl\:-skew-y-1{--transform-skew-y:-1deg}.xl\:hover\:skew-x-0:hover{--transform-skew-x:0}.xl\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xl\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xl\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xl\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xl\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xl\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xl\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xl\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xl\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xl\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xl\:hover\:skew-y-0:hover{--transform-skew-y:0}.xl\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xl\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xl\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xl\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xl\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xl\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xl\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xl\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xl\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xl\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xl\:focus\:skew-x-0:focus{--transform-skew-x:0}.xl\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xl\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xl\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xl\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xl\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xl\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xl\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xl\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xl\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xl\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xl\:focus\:skew-y-0:focus{--transform-skew-y:0}.xl\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xl\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xl\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xl\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xl\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xl\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xl\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xl\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xl\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xl\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xl\:transition-none{transition-property:none}.xl\:transition-all{transition-property:all}.xl\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xl\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xl\:transition-opacity{transition-property:opacity}.xl\:transition-shadow{transition-property:box-shadow}.xl\:transition-transform{transition-property:transform}.xl\:ease-linear{transition-timing-function:linear}.xl\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xl\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xl\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xl\:duration-75{transition-duration:75ms}.xl\:duration-100{transition-duration:.1s}.xl\:duration-150{transition-duration:.15s}.xl\:duration-200{transition-duration:.2s}.xl\:duration-300{transition-duration:.3s}.xl\:duration-500{transition-duration:.5s}.xl\:duration-700{transition-duration:.7s}.xl\:duration-1000{transition-duration:1s}.xl\:delay-75{transition-delay:75ms}.xl\:delay-100{transition-delay:.1s}.xl\:delay-150{transition-delay:.15s}.xl\:delay-200{transition-delay:.2s}.xl\:delay-300{transition-delay:.3s}.xl\:delay-500{transition-delay:.5s}.xl\:delay-700{transition-delay:.7s}.xl\:delay-1000{transition-delay:1s}.xl\:animate-none{animation:none}.xl\:animate-spin{animation:spin 1s linear infinite}.xl\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xl\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xl\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1480px){.xxl\:container{width:100%}@media (min-width:360px){.xxl\:container{max-width:360px}}@media (min-width:640px){.xxl\:container{max-width:640px}}@media (min-width:768px){.xxl\:container{max-width:768px}}@media (min-width:1024px){.xxl\:container{max-width:1024px}}@media (min-width:1280px){.xxl\:container{max-width:1280px}}@media (min-width:1480px){.xxl\:container{max-width:1480px}}.xxl\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xxl\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xxl\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xxl\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xxl\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xxl\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xxl\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xxl\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xxl\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xxl\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xxl\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xxl\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xxl\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xxl\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xxl\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xxl\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xxl\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xxl\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xxl\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xxl\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xxl\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xxl\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xxl\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xxl\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xxl\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xxl\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xxl\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xxl\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xxl\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xxl\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xxl\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xxl\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xxl\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xxl\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xxl\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xxl\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xxl\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xxl\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xxl\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xxl\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xxl\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xxl\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xxl\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xxl\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xxl\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xxl\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xxl\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xxl\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xxl\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xxl\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xxl\:divide-current>:not(template)~:not(template){border-color:currentColor}.xxl\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xxl\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xxl\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xxl\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xxl\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xxl\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xxl\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xxl\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xxl\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xxl\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xxl\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xxl\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xxl\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xxl\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xxl\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xxl\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xxl\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xxl\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xxl\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xxl\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xxl\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xxl\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xxl\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xxl\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xxl\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xxl\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xxl\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xxl\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xxl\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xxl\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xxl\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xxl\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xxl\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xxl\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xxl\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xxl\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xxl\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xxl\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xxl\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xxl\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xxl\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xxl\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xxl\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xxl\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xxl\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xxl\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xxl\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xxl\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xxl\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xxl\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xxl\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xxl\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xxl\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xxl\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xxl\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xxl\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xxl\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xxl\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xxl\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xxl\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xxl\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xxl\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xxl\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xxl\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xxl\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xxl\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xxl\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xxl\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xxl\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xxl\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xxl\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xxl\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xxl\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xxl\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xxl\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xxl\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xxl\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xxl\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xxl\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xxl\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xxl\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xxl\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xxl\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xxl\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xxl\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xxl\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xxl\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xxl\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xxl\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xxl\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xxl\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xxl\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xxl\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xxl\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xxl\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xxl\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xxl\:divide-solid>:not(template)~:not(template){border-style:solid}.xxl\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xxl\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xxl\:divide-double>:not(template)~:not(template){border-style:double}.xxl\:divide-none>:not(template)~:not(template){border-style:none}.xxl\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xxl\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xxl\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xxl\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xxl\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xxl\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xxl\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xxl\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xxl\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xxl\:appearance-none{-webkit-appearance:none;appearance:none}.xxl\:bg-fixed{background-attachment:fixed}.xxl\:bg-local{background-attachment:local}.xxl\:bg-scroll{background-attachment:scroll}.xxl\:bg-clip-border{background-clip:border-box}.xxl\:bg-clip-padding{background-clip:padding-box}.xxl\:bg-clip-content{background-clip:content-box}.xxl\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xxl\:bg-transparent{background-color:transparent}.xxl\:bg-current{background-color:currentColor}.xxl\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:hover\:bg-transparent:hover{background-color:transparent}.xxl\:hover\:bg-current:hover{background-color:currentColor}.xxl\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:focus\:bg-transparent:focus{background-color:transparent}.xxl\:focus\:bg-current:focus{background-color:currentColor}.xxl\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:bg-none{background-image:none}.xxl\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xxl\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xxl\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xxl\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xxl\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:to-transparent{--gradient-to-color:transparent}.xxl\:to-current{--gradient-to-color:currentColor}.xxl\:to-black{--gradient-to-color:#000}.xxl\:to-white{--gradient-to-color:#fff}.xxl\:to-gray-100{--gradient-to-color:#f7fafc}.xxl\:to-gray-200{--gradient-to-color:#edf2f7}.xxl\:to-gray-300{--gradient-to-color:#e2e8f0}.xxl\:to-gray-400{--gradient-to-color:#cbd5e0}.xxl\:to-gray-500{--gradient-to-color:#a0aec0}.xxl\:to-gray-600{--gradient-to-color:#718096}.xxl\:to-gray-700{--gradient-to-color:#4a5568}.xxl\:to-gray-800{--gradient-to-color:#2d3748}.xxl\:to-gray-900{--gradient-to-color:#1a202c}.xxl\:to-red-100{--gradient-to-color:#fff5f5}.xxl\:to-red-200{--gradient-to-color:#fed7d7}.xxl\:to-red-300{--gradient-to-color:#feb2b2}.xxl\:to-red-400{--gradient-to-color:#fc8181}.xxl\:to-red-500{--gradient-to-color:#f56565}.xxl\:to-red-600{--gradient-to-color:#e53e3e}.xxl\:to-red-700{--gradient-to-color:#c53030}.xxl\:to-red-800{--gradient-to-color:#9b2c2c}.xxl\:to-red-900{--gradient-to-color:#742a2a}.xxl\:to-orange-100{--gradient-to-color:#fffaf0}.xxl\:to-orange-200{--gradient-to-color:#feebc8}.xxl\:to-orange-300{--gradient-to-color:#fbd38d}.xxl\:to-orange-400{--gradient-to-color:#f6ad55}.xxl\:to-orange-500{--gradient-to-color:#ed8936}.xxl\:to-orange-600{--gradient-to-color:#dd6b20}.xxl\:to-orange-700{--gradient-to-color:#c05621}.xxl\:to-orange-800{--gradient-to-color:#9c4221}.xxl\:to-orange-900{--gradient-to-color:#7b341e}.xxl\:to-yellow-100{--gradient-to-color:ivory}.xxl\:to-yellow-200{--gradient-to-color:#fefcbf}.xxl\:to-yellow-300{--gradient-to-color:#faf089}.xxl\:to-yellow-400{--gradient-to-color:#f6e05e}.xxl\:to-yellow-500{--gradient-to-color:#ecc94b}.xxl\:to-yellow-600{--gradient-to-color:#d69e2e}.xxl\:to-yellow-700{--gradient-to-color:#b7791f}.xxl\:to-yellow-800{--gradient-to-color:#975a16}.xxl\:to-yellow-900{--gradient-to-color:#744210}.xxl\:to-green-100{--gradient-to-color:#f0fff4}.xxl\:to-green-200{--gradient-to-color:#c6f6d5}.xxl\:to-green-300{--gradient-to-color:#9ae6b4}.xxl\:to-green-400{--gradient-to-color:#68d391}.xxl\:to-green-500{--gradient-to-color:#48bb78}.xxl\:to-green-600{--gradient-to-color:#38a169}.xxl\:to-green-700{--gradient-to-color:#2f855a}.xxl\:to-green-800{--gradient-to-color:#276749}.xxl\:to-green-900{--gradient-to-color:#22543d}.xxl\:to-teal-100{--gradient-to-color:#e6fffa}.xxl\:to-teal-200{--gradient-to-color:#b2f5ea}.xxl\:to-teal-300{--gradient-to-color:#81e6d9}.xxl\:to-teal-400{--gradient-to-color:#4fd1c5}.xxl\:to-teal-500{--gradient-to-color:#38b2ac}.xxl\:to-teal-600{--gradient-to-color:#319795}.xxl\:to-teal-700{--gradient-to-color:#2c7a7b}.xxl\:to-teal-800{--gradient-to-color:#285e61}.xxl\:to-teal-900{--gradient-to-color:#234e52}.xxl\:to-blue-100{--gradient-to-color:#ebf8ff}.xxl\:to-blue-200{--gradient-to-color:#bee3f8}.xxl\:to-blue-300{--gradient-to-color:#90cdf4}.xxl\:to-blue-400{--gradient-to-color:#63b3ed}.xxl\:to-blue-500{--gradient-to-color:#4299e1}.xxl\:to-blue-600{--gradient-to-color:#3182ce}.xxl\:to-blue-700{--gradient-to-color:#2b6cb0}.xxl\:to-blue-800{--gradient-to-color:#2c5282}.xxl\:to-blue-900{--gradient-to-color:#2a4365}.xxl\:to-indigo-100{--gradient-to-color:#ebf4ff}.xxl\:to-indigo-200{--gradient-to-color:#c3dafe}.xxl\:to-indigo-300{--gradient-to-color:#a3bffa}.xxl\:to-indigo-400{--gradient-to-color:#7f9cf5}.xxl\:to-indigo-500{--gradient-to-color:#667eea}.xxl\:to-indigo-600{--gradient-to-color:#5a67d8}.xxl\:to-indigo-700{--gradient-to-color:#4c51bf}.xxl\:to-indigo-800{--gradient-to-color:#434190}.xxl\:to-indigo-900{--gradient-to-color:#3c366b}.xxl\:to-purple-100{--gradient-to-color:#faf5ff}.xxl\:to-purple-200{--gradient-to-color:#e9d8fd}.xxl\:to-purple-300{--gradient-to-color:#d6bcfa}.xxl\:to-purple-400{--gradient-to-color:#b794f4}.xxl\:to-purple-500{--gradient-to-color:#9f7aea}.xxl\:to-purple-600{--gradient-to-color:#805ad5}.xxl\:to-purple-700{--gradient-to-color:#6b46c1}.xxl\:to-purple-800{--gradient-to-color:#553c9a}.xxl\:to-purple-900{--gradient-to-color:#44337a}.xxl\:to-pink-100{--gradient-to-color:#fff5f7}.xxl\:to-pink-200{--gradient-to-color:#fed7e2}.xxl\:to-pink-300{--gradient-to-color:#fbb6ce}.xxl\:to-pink-400{--gradient-to-color:#f687b3}.xxl\:to-pink-500{--gradient-to-color:#ed64a6}.xxl\:to-pink-600{--gradient-to-color:#d53f8c}.xxl\:to-pink-700{--gradient-to-color:#b83280}.xxl\:to-pink-800{--gradient-to-color:#97266d}.xxl\:to-pink-900{--gradient-to-color:#702459}.xxl\:to-primary{--gradient-to-color:#00d1ff}.xxl\:to-secondary{--gradient-to-color:#e077ff}.xxl\:to-greenish-blue{--gradient-to-color:#adffed}.xxl\:to-blue-gray{--gradient-to-color:#cfe1e6}.xxl\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xxl\:hover\:to-current:hover{--gradient-to-color:currentColor}.xxl\:hover\:to-black:hover{--gradient-to-color:#000}.xxl\:hover\:to-white:hover{--gradient-to-color:#fff}.xxl\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xxl\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xxl\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xxl\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xxl\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xxl\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xxl\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xxl\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xxl\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xxl\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xxl\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xxl\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xxl\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xxl\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xxl\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xxl\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xxl\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xxl\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xxl\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xxl\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xxl\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xxl\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xxl\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xxl\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xxl\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xxl\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xxl\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xxl\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xxl\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xxl\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xxl\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xxl\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xxl\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xxl\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xxl\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xxl\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xxl\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xxl\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xxl\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xxl\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xxl\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xxl\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xxl\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xxl\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xxl\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xxl\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xxl\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xxl\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xxl\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xxl\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xxl\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xxl\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xxl\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xxl\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xxl\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xxl\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xxl\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xxl\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xxl\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xxl\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xxl\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xxl\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xxl\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xxl\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xxl\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xxl\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xxl\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xxl\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xxl\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xxl\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xxl\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xxl\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xxl\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xxl\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xxl\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xxl\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xxl\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xxl\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xxl\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xxl\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xxl\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xxl\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xxl\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xxl\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xxl\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xxl\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xxl\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xxl\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xxl\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xxl\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xxl\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xxl\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xxl\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xxl\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xxl\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xxl\:focus\:to-current:focus{--gradient-to-color:currentColor}.xxl\:focus\:to-black:focus{--gradient-to-color:#000}.xxl\:focus\:to-white:focus{--gradient-to-color:#fff}.xxl\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xxl\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xxl\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xxl\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xxl\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xxl\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xxl\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xxl\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xxl\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xxl\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xxl\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xxl\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xxl\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xxl\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xxl\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xxl\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xxl\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xxl\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xxl\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xxl\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xxl\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xxl\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xxl\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xxl\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xxl\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xxl\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xxl\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xxl\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xxl\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xxl\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xxl\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xxl\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xxl\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xxl\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xxl\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xxl\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xxl\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xxl\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xxl\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xxl\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xxl\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xxl\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xxl\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xxl\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xxl\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xxl\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xxl\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xxl\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xxl\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xxl\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xxl\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xxl\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xxl\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xxl\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xxl\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xxl\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xxl\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xxl\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xxl\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xxl\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xxl\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xxl\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xxl\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xxl\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xxl\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xxl\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xxl\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xxl\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xxl\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xxl\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xxl\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xxl\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xxl\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xxl\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xxl\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xxl\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xxl\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xxl\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xxl\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xxl\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xxl\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xxl\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xxl\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xxl\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xxl\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xxl\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xxl\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xxl\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xxl\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xxl\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xxl\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xxl\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xxl\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xxl\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xxl\:bg-opacity-0{--bg-opacity:0}.xxl\:bg-opacity-25{--bg-opacity:0.25}.xxl\:bg-opacity-50{--bg-opacity:0.5}.xxl\:bg-opacity-75{--bg-opacity:0.75}.xxl\:bg-opacity-100{--bg-opacity:1}.xxl\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xxl\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xxl\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xxl\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xxl\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xxl\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xxl\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xxl\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xxl\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xxl\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xxl\:bg-bottom{background-position:bottom}.xxl\:bg-center{background-position:50%}.xxl\:bg-left{background-position:0}.xxl\:bg-left-bottom{background-position:0 100%}.xxl\:bg-left-top{background-position:0 0}.xxl\:bg-right{background-position:100%}.xxl\:bg-right-bottom{background-position:100% 100%}.xxl\:bg-right-top{background-position:100% 0}.xxl\:bg-top{background-position:top}.xxl\:bg-repeat{background-repeat:repeat}.xxl\:bg-no-repeat{background-repeat:no-repeat}.xxl\:bg-repeat-x{background-repeat:repeat-x}.xxl\:bg-repeat-y{background-repeat:repeat-y}.xxl\:bg-repeat-round{background-repeat:round}.xxl\:bg-repeat-space{background-repeat:space}.xxl\:bg-auto{background-size:auto}.xxl\:bg-cover{background-size:cover}.xxl\:bg-contain{background-size:contain}.xxl\:border-collapse{border-collapse:collapse}.xxl\:border-separate{border-collapse:separate}.xxl\:border-transparent{border-color:transparent}.xxl\:border-current{border-color:currentColor}.xxl\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:hover\:border-transparent:hover{border-color:transparent}.xxl\:hover\:border-current:hover{border-color:currentColor}.xxl\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:focus\:border-transparent:focus{border-color:transparent}.xxl\:focus\:border-current:focus{border-color:currentColor}.xxl\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:border-opacity-0{--border-opacity:0}.xxl\:border-opacity-25{--border-opacity:0.25}.xxl\:border-opacity-50{--border-opacity:0.5}.xxl\:border-opacity-75{--border-opacity:0.75}.xxl\:border-opacity-100{--border-opacity:1}.xxl\:hover\:border-opacity-0:hover{--border-opacity:0}.xxl\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xxl\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xxl\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xxl\:hover\:border-opacity-100:hover{--border-opacity:1}.xxl\:focus\:border-opacity-0:focus{--border-opacity:0}.xxl\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xxl\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xxl\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xxl\:focus\:border-opacity-100:focus{--border-opacity:1}.xxl\:rounded-none{border-radius:0}.xxl\:rounded-sm{border-radius:.125rem}.xxl\:rounded{border-radius:.25rem}.xxl\:rounded-md{border-radius:.375rem}.xxl\:rounded-lg{border-radius:.5rem}.xxl\:rounded-xl{border-radius:.75rem}.xxl\:rounded-2xl{border-radius:1rem}.xxl\:rounded-3xl{border-radius:1.5rem}.xxl\:rounded-full{border-radius:9999px}.xxl\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xxl\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xxl\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xxl\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xxl\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xxl\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xxl\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xxl\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xxl\:rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.xxl\:rounded-r{border-top-right-radius:.25rem}.xxl\:rounded-b,.xxl\:rounded-r{border-bottom-right-radius:.25rem}.xxl\:rounded-b,.xxl\:rounded-l{border-bottom-left-radius:.25rem}.xxl\:rounded-l{border-top-left-radius:.25rem}.xxl\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xxl\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xxl\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xxl\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xxl\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xxl\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xxl\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xxl\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xxl\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xxl\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xxl\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xxl\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xxl\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xxl\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xxl\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xxl\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xxl\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xxl\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xxl\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xxl\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xxl\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xxl\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xxl\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xxl\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xxl\:rounded-tl-none{border-top-left-radius:0}.xxl\:rounded-tr-none{border-top-right-radius:0}.xxl\:rounded-br-none{border-bottom-right-radius:0}.xxl\:rounded-bl-none{border-bottom-left-radius:0}.xxl\:rounded-tl-sm{border-top-left-radius:.125rem}.xxl\:rounded-tr-sm{border-top-right-radius:.125rem}.xxl\:rounded-br-sm{border-bottom-right-radius:.125rem}.xxl\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xxl\:rounded-tl{border-top-left-radius:.25rem}.xxl\:rounded-tr{border-top-right-radius:.25rem}.xxl\:rounded-br{border-bottom-right-radius:.25rem}.xxl\:rounded-bl{border-bottom-left-radius:.25rem}.xxl\:rounded-tl-md{border-top-left-radius:.375rem}.xxl\:rounded-tr-md{border-top-right-radius:.375rem}.xxl\:rounded-br-md{border-bottom-right-radius:.375rem}.xxl\:rounded-bl-md{border-bottom-left-radius:.375rem}.xxl\:rounded-tl-lg{border-top-left-radius:.5rem}.xxl\:rounded-tr-lg{border-top-right-radius:.5rem}.xxl\:rounded-br-lg{border-bottom-right-radius:.5rem}.xxl\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xxl\:rounded-tl-xl{border-top-left-radius:.75rem}.xxl\:rounded-tr-xl{border-top-right-radius:.75rem}.xxl\:rounded-br-xl{border-bottom-right-radius:.75rem}.xxl\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xxl\:rounded-tl-2xl{border-top-left-radius:1rem}.xxl\:rounded-tr-2xl{border-top-right-radius:1rem}.xxl\:rounded-br-2xl{border-bottom-right-radius:1rem}.xxl\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xxl\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xxl\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xxl\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xxl\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xxl\:rounded-tl-full{border-top-left-radius:9999px}.xxl\:rounded-tr-full{border-top-right-radius:9999px}.xxl\:rounded-br-full{border-bottom-right-radius:9999px}.xxl\:rounded-bl-full{border-bottom-left-radius:9999px}.xxl\:border-solid{border-style:solid}.xxl\:border-dashed{border-style:dashed}.xxl\:border-dotted{border-style:dotted}.xxl\:border-double{border-style:double}.xxl\:border-none{border-style:none}.xxl\:border-0{border-width:0}.xxl\:border-2{border-width:2px}.xxl\:border-4{border-width:4px}.xxl\:border-8{border-width:8px}.xxl\:border{border-width:1px}.xxl\:border-t-0{border-top-width:0}.xxl\:border-r-0{border-right-width:0}.xxl\:border-b-0{border-bottom-width:0}.xxl\:border-l-0{border-left-width:0}.xxl\:border-t-2{border-top-width:2px}.xxl\:border-r-2{border-right-width:2px}.xxl\:border-b-2{border-bottom-width:2px}.xxl\:border-l-2{border-left-width:2px}.xxl\:border-t-4{border-top-width:4px}.xxl\:border-r-4{border-right-width:4px}.xxl\:border-b-4{border-bottom-width:4px}.xxl\:border-l-4{border-left-width:4px}.xxl\:border-t-8{border-top-width:8px}.xxl\:border-r-8{border-right-width:8px}.xxl\:border-b-8{border-bottom-width:8px}.xxl\:border-l-8{border-left-width:8px}.xxl\:border-t{border-top-width:1px}.xxl\:border-r{border-right-width:1px}.xxl\:border-b{border-bottom-width:1px}.xxl\:border-l{border-left-width:1px}.xxl\:box-border{box-sizing:border-box}.xxl\:box-content{box-sizing:content-box}.xxl\:cursor-auto{cursor:auto}.xxl\:cursor-default{cursor:default}.xxl\:cursor-pointer{cursor:pointer}.xxl\:cursor-wait{cursor:wait}.xxl\:cursor-text{cursor:text}.xxl\:cursor-move{cursor:move}.xxl\:cursor-not-allowed{cursor:not-allowed}.xxl\:block{display:block}.xxl\:inline-block{display:inline-block}.xxl\:inline{display:inline}.xxl\:flex{display:flex}.xxl\:inline-flex{display:inline-flex}.xxl\:table{display:table}.xxl\:table-caption{display:table-caption}.xxl\:table-cell{display:table-cell}.xxl\:table-column{display:table-column}.xxl\:table-column-group{display:table-column-group}.xxl\:table-footer-group{display:table-footer-group}.xxl\:table-header-group{display:table-header-group}.xxl\:table-row-group{display:table-row-group}.xxl\:table-row{display:table-row}.xxl\:flow-root{display:flow-root}.xxl\:grid{display:grid}.xxl\:inline-grid{display:inline-grid}.xxl\:contents{display:contents}.xxl\:hidden{display:none}.xxl\:flex-row{flex-direction:row}.xxl\:flex-row-reverse{flex-direction:row-reverse}.xxl\:flex-col{flex-direction:column}.xxl\:flex-col-reverse{flex-direction:column-reverse}.xxl\:flex-wrap{flex-wrap:wrap}.xxl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xxl\:flex-no-wrap{flex-wrap:nowrap}.xxl\:place-items-auto{place-items:auto}.xxl\:place-items-start{place-items:start}.xxl\:place-items-end{place-items:end}.xxl\:place-items-center{place-items:center}.xxl\:place-items-stretch{place-items:stretch}.xxl\:place-content-center{place-content:center}.xxl\:place-content-start{place-content:start}.xxl\:place-content-end{place-content:end}.xxl\:place-content-between{place-content:space-between}.xxl\:place-content-around{place-content:space-around}.xxl\:place-content-evenly{place-content:space-evenly}.xxl\:place-content-stretch{place-content:stretch}.xxl\:place-self-auto{place-self:auto}.xxl\:place-self-start{place-self:start}.xxl\:place-self-end{place-self:end}.xxl\:place-self-center{place-self:center}.xxl\:place-self-stretch{place-self:stretch}.xxl\:items-start{align-items:flex-start}.xxl\:items-end{align-items:flex-end}.xxl\:items-center{align-items:center}.xxl\:items-baseline{align-items:baseline}.xxl\:items-stretch{align-items:stretch}.xxl\:content-center{align-content:center}.xxl\:content-start{align-content:flex-start}.xxl\:content-end{align-content:flex-end}.xxl\:content-between{align-content:space-between}.xxl\:content-around{align-content:space-around}.xxl\:content-evenly{align-content:space-evenly}.xxl\:self-auto{align-self:auto}.xxl\:self-start{align-self:flex-start}.xxl\:self-end{align-self:flex-end}.xxl\:self-center{align-self:center}.xxl\:self-stretch{align-self:stretch}.xxl\:justify-items-auto{justify-items:auto}.xxl\:justify-items-start{justify-items:start}.xxl\:justify-items-end{justify-items:end}.xxl\:justify-items-center{justify-items:center}.xxl\:justify-items-stretch{justify-items:stretch}.xxl\:justify-start{justify-content:flex-start}.xxl\:justify-end{justify-content:flex-end}.xxl\:justify-center{justify-content:center}.xxl\:justify-between{justify-content:space-between}.xxl\:justify-around{justify-content:space-around}.xxl\:justify-evenly{justify-content:space-evenly}.xxl\:justify-self-auto{justify-self:auto}.xxl\:justify-self-start{justify-self:start}.xxl\:justify-self-end{justify-self:end}.xxl\:justify-self-center{justify-self:center}.xxl\:justify-self-stretch{justify-self:stretch}.xxl\:flex-1{flex:1 1 0%}.xxl\:flex-auto{flex:1 1 auto}.xxl\:flex-initial{flex:0 1 auto}.xxl\:flex-none{flex:none}.xxl\:flex-grow-0{flex-grow:0}.xxl\:flex-grow{flex-grow:1}.xxl\:flex-shrink-0{flex-shrink:0}.xxl\:flex-shrink{flex-shrink:1}.xxl\:order-1{order:1}.xxl\:order-2{order:2}.xxl\:order-3{order:3}.xxl\:order-4{order:4}.xxl\:order-5{order:5}.xxl\:order-6{order:6}.xxl\:order-7{order:7}.xxl\:order-8{order:8}.xxl\:order-9{order:9}.xxl\:order-10{order:10}.xxl\:order-11{order:11}.xxl\:order-12{order:12}.xxl\:order-first{order:-9999}.xxl\:order-last{order:9999}.xxl\:order-none{order:0}.xxl\:float-right{float:right}.xxl\:float-left{float:left}.xxl\:float-none{float:none}.xxl\:clearfix:after{content:"";display:table;clear:both}.xxl\:clear-left{clear:left}.xxl\:clear-right{clear:right}.xxl\:clear-both{clear:both}.xxl\:clear-none{clear:none}.xxl\:font-sans{font-family: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}.xxl\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xxl\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xxl\:font-hairline{font-weight:100}.xxl\:font-thin{font-weight:200}.xxl\:font-light{font-weight:300}.xxl\:font-normal{font-weight:400}.xxl\:font-medium{font-weight:500}.xxl\:font-semibold{font-weight:600}.xxl\:font-bold{font-weight:700}.xxl\:font-extrabold{font-weight:800}.xxl\:font-black{font-weight:900}.xxl\:hover\:font-hairline:hover{font-weight:100}.xxl\:hover\:font-thin:hover{font-weight:200}.xxl\:hover\:font-light:hover{font-weight:300}.xxl\:hover\:font-normal:hover{font-weight:400}.xxl\:hover\:font-medium:hover{font-weight:500}.xxl\:hover\:font-semibold:hover{font-weight:600}.xxl\:hover\:font-bold:hover{font-weight:700}.xxl\:hover\:font-extrabold:hover{font-weight:800}.xxl\:hover\:font-black:hover{font-weight:900}.xxl\:focus\:font-hairline:focus{font-weight:100}.xxl\:focus\:font-thin:focus{font-weight:200}.xxl\:focus\:font-light:focus{font-weight:300}.xxl\:focus\:font-normal:focus{font-weight:400}.xxl\:focus\:font-medium:focus{font-weight:500}.xxl\:focus\:font-semibold:focus{font-weight:600}.xxl\:focus\:font-bold:focus{font-weight:700}.xxl\:focus\:font-extrabold:focus{font-weight:800}.xxl\:focus\:font-black:focus{font-weight:900}.xxl\:h-0{height:0}.xxl\:h-1{height:.25rem}.xxl\:h-2{height:.5rem}.xxl\:h-3{height:.75rem}.xxl\:h-4{height:1rem}.xxl\:h-5{height:1.25rem}.xxl\:h-6{height:1.5rem}.xxl\:h-8{height:2rem}.xxl\:h-10{height:2.5rem}.xxl\:h-12{height:3rem}.xxl\:h-16{height:4rem}.xxl\:h-20{height:5rem}.xxl\:h-24{height:6rem}.xxl\:h-32{height:8rem}.xxl\:h-40{height:10rem}.xxl\:h-48{height:12rem}.xxl\:h-56{height:14rem}.xxl\:h-64{height:16rem}.xxl\:h-auto{height:auto}.xxl\:h-px{height:1px}.xxl\:h-full{height:100%}.xxl\:h-screen{height:100vh}.xxl\:text-xs{font-size:.75rem}.xxl\:text-sm{font-size:.875rem}.xxl\:text-base{font-size:1rem}.xxl\:text-lg{font-size:1.125rem}.xxl\:text-xl{font-size:1.25rem}.xxl\:text-2xl{font-size:1.5rem}.xxl\:text-3xl{font-size:1.875rem}.xxl\:text-4xl{font-size:2.25rem}.xxl\:text-5xl{font-size:3rem}.xxl\:text-6xl{font-size:4rem}.xxl\:leading-3{line-height:.75rem}.xxl\:leading-4{line-height:1rem}.xxl\:leading-5{line-height:1.25rem}.xxl\:leading-6{line-height:1.5rem}.xxl\:leading-7{line-height:1.75rem}.xxl\:leading-8{line-height:2rem}.xxl\:leading-9{line-height:2.25rem}.xxl\:leading-10{line-height:2.5rem}.xxl\:leading-none{line-height:1}.xxl\:leading-tight{line-height:1.25}.xxl\:leading-snug{line-height:1.375}.xxl\:leading-normal{line-height:1.5}.xxl\:leading-relaxed{line-height:1.625}.xxl\:leading-loose{line-height:2}.xxl\:list-inside{list-style-position:inside}.xxl\:list-outside{list-style-position:outside}.xxl\:list-none{list-style-type:none}.xxl\:list-disc{list-style-type:disc}.xxl\:list-decimal{list-style-type:decimal}.xxl\:m-0{margin:0}.xxl\:m-1{margin:.25rem}.xxl\:m-2{margin:.5rem}.xxl\:m-3{margin:.75rem}.xxl\:m-4{margin:1rem}.xxl\:m-5{margin:1.25rem}.xxl\:m-6{margin:1.5rem}.xxl\:m-8{margin:2rem}.xxl\:m-10{margin:2.5rem}.xxl\:m-12{margin:3rem}.xxl\:m-16{margin:4rem}.xxl\:m-20{margin:5rem}.xxl\:m-24{margin:6rem}.xxl\:m-32{margin:8rem}.xxl\:m-40{margin:10rem}.xxl\:m-48{margin:12rem}.xxl\:m-56{margin:14rem}.xxl\:m-64{margin:16rem}.xxl\:m-auto{margin:auto}.xxl\:m-px{margin:1px}.xxl\:-m-1{margin:-.25rem}.xxl\:-m-2{margin:-.5rem}.xxl\:-m-3{margin:-.75rem}.xxl\:-m-4{margin:-1rem}.xxl\:-m-5{margin:-1.25rem}.xxl\:-m-6{margin:-1.5rem}.xxl\:-m-8{margin:-2rem}.xxl\:-m-10{margin:-2.5rem}.xxl\:-m-12{margin:-3rem}.xxl\:-m-16{margin:-4rem}.xxl\:-m-20{margin:-5rem}.xxl\:-m-24{margin:-6rem}.xxl\:-m-32{margin:-8rem}.xxl\:-m-40{margin:-10rem}.xxl\:-m-48{margin:-12rem}.xxl\:-m-56{margin:-14rem}.xxl\:-m-64{margin:-16rem}.xxl\:-m-px{margin:-1px}.xxl\:my-0{margin-top:0;margin-bottom:0}.xxl\:mx-0{margin-left:0;margin-right:0}.xxl\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xxl\:mx-1{margin-left:.25rem;margin-right:.25rem}.xxl\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xxl\:mx-2{margin-left:.5rem;margin-right:.5rem}.xxl\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xxl\:mx-3{margin-left:.75rem;margin-right:.75rem}.xxl\:my-4{margin-top:1rem;margin-bottom:1rem}.xxl\:mx-4{margin-left:1rem;margin-right:1rem}.xxl\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xxl\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xxl\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xxl\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xxl\:my-8{margin-top:2rem;margin-bottom:2rem}.xxl\:mx-8{margin-left:2rem;margin-right:2rem}.xxl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xxl\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xxl\:my-12{margin-top:3rem;margin-bottom:3rem}.xxl\:mx-12{margin-left:3rem;margin-right:3rem}.xxl\:my-16{margin-top:4rem;margin-bottom:4rem}.xxl\:mx-16{margin-left:4rem;margin-right:4rem}.xxl\:my-20{margin-top:5rem;margin-bottom:5rem}.xxl\:mx-20{margin-left:5rem;margin-right:5rem}.xxl\:my-24{margin-top:6rem;margin-bottom:6rem}.xxl\:mx-24{margin-left:6rem;margin-right:6rem}.xxl\:my-32{margin-top:8rem;margin-bottom:8rem}.xxl\:mx-32{margin-left:8rem;margin-right:8rem}.xxl\:my-40{margin-top:10rem;margin-bottom:10rem}.xxl\:mx-40{margin-left:10rem;margin-right:10rem}.xxl\:my-48{margin-top:12rem;margin-bottom:12rem}.xxl\:mx-48{margin-left:12rem;margin-right:12rem}.xxl\:my-56{margin-top:14rem;margin-bottom:14rem}.xxl\:mx-56{margin-left:14rem;margin-right:14rem}.xxl\:my-64{margin-top:16rem;margin-bottom:16rem}.xxl\:mx-64{margin-left:16rem;margin-right:16rem}.xxl\:my-auto{margin-top:auto;margin-bottom:auto}.xxl\:mx-auto{margin-left:auto;margin-right:auto}.xxl\:my-px{margin-top:1px;margin-bottom:1px}.xxl\:mx-px{margin-left:1px;margin-right:1px}.xxl\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xxl\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xxl\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xxl\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xxl\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xxl\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xxl\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xxl\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xxl\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xxl\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xxl\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xxl\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xxl\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xxl\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xxl\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xxl\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xxl\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xxl\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xxl\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xxl\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xxl\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xxl\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xxl\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xxl\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xxl\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xxl\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xxl\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xxl\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xxl\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xxl\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xxl\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xxl\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xxl\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xxl\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xxl\:-my-px{margin-top:-1px;margin-bottom:-1px}.xxl\:-mx-px{margin-left:-1px;margin-right:-1px}.xxl\:mt-0{margin-top:0}.xxl\:mr-0{margin-right:0}.xxl\:mb-0{margin-bottom:0}.xxl\:ml-0{margin-left:0}.xxl\:mt-1{margin-top:.25rem}.xxl\:mr-1{margin-right:.25rem}.xxl\:mb-1{margin-bottom:.25rem}.xxl\:ml-1{margin-left:.25rem}.xxl\:mt-2{margin-top:.5rem}.xxl\:mr-2{margin-right:.5rem}.xxl\:mb-2{margin-bottom:.5rem}.xxl\:ml-2{margin-left:.5rem}.xxl\:mt-3{margin-top:.75rem}.xxl\:mr-3{margin-right:.75rem}.xxl\:mb-3{margin-bottom:.75rem}.xxl\:ml-3{margin-left:.75rem}.xxl\:mt-4{margin-top:1rem}.xxl\:mr-4{margin-right:1rem}.xxl\:mb-4{margin-bottom:1rem}.xxl\:ml-4{margin-left:1rem}.xxl\:mt-5{margin-top:1.25rem}.xxl\:mr-5{margin-right:1.25rem}.xxl\:mb-5{margin-bottom:1.25rem}.xxl\:ml-5{margin-left:1.25rem}.xxl\:mt-6{margin-top:1.5rem}.xxl\:mr-6{margin-right:1.5rem}.xxl\:mb-6{margin-bottom:1.5rem}.xxl\:ml-6{margin-left:1.5rem}.xxl\:mt-8{margin-top:2rem}.xxl\:mr-8{margin-right:2rem}.xxl\:mb-8{margin-bottom:2rem}.xxl\:ml-8{margin-left:2rem}.xxl\:mt-10{margin-top:2.5rem}.xxl\:mr-10{margin-right:2.5rem}.xxl\:mb-10{margin-bottom:2.5rem}.xxl\:ml-10{margin-left:2.5rem}.xxl\:mt-12{margin-top:3rem}.xxl\:mr-12{margin-right:3rem}.xxl\:mb-12{margin-bottom:3rem}.xxl\:ml-12{margin-left:3rem}.xxl\:mt-16{margin-top:4rem}.xxl\:mr-16{margin-right:4rem}.xxl\:mb-16{margin-bottom:4rem}.xxl\:ml-16{margin-left:4rem}.xxl\:mt-20{margin-top:5rem}.xxl\:mr-20{margin-right:5rem}.xxl\:mb-20{margin-bottom:5rem}.xxl\:ml-20{margin-left:5rem}.xxl\:mt-24{margin-top:6rem}.xxl\:mr-24{margin-right:6rem}.xxl\:mb-24{margin-bottom:6rem}.xxl\:ml-24{margin-left:6rem}.xxl\:mt-32{margin-top:8rem}.xxl\:mr-32{margin-right:8rem}.xxl\:mb-32{margin-bottom:8rem}.xxl\:ml-32{margin-left:8rem}.xxl\:mt-40{margin-top:10rem}.xxl\:mr-40{margin-right:10rem}.xxl\:mb-40{margin-bottom:10rem}.xxl\:ml-40{margin-left:10rem}.xxl\:mt-48{margin-top:12rem}.xxl\:mr-48{margin-right:12rem}.xxl\:mb-48{margin-bottom:12rem}.xxl\:ml-48{margin-left:12rem}.xxl\:mt-56{margin-top:14rem}.xxl\:mr-56{margin-right:14rem}.xxl\:mb-56{margin-bottom:14rem}.xxl\:ml-56{margin-left:14rem}.xxl\:mt-64{margin-top:16rem}.xxl\:mr-64{margin-right:16rem}.xxl\:mb-64{margin-bottom:16rem}.xxl\:ml-64{margin-left:16rem}.xxl\:mt-auto{margin-top:auto}.xxl\:mr-auto{margin-right:auto}.xxl\:mb-auto{margin-bottom:auto}.xxl\:ml-auto{margin-left:auto}.xxl\:mt-px{margin-top:1px}.xxl\:mr-px{margin-right:1px}.xxl\:mb-px{margin-bottom:1px}.xxl\:ml-px{margin-left:1px}.xxl\:-mt-1{margin-top:-.25rem}.xxl\:-mr-1{margin-right:-.25rem}.xxl\:-mb-1{margin-bottom:-.25rem}.xxl\:-ml-1{margin-left:-.25rem}.xxl\:-mt-2{margin-top:-.5rem}.xxl\:-mr-2{margin-right:-.5rem}.xxl\:-mb-2{margin-bottom:-.5rem}.xxl\:-ml-2{margin-left:-.5rem}.xxl\:-mt-3{margin-top:-.75rem}.xxl\:-mr-3{margin-right:-.75rem}.xxl\:-mb-3{margin-bottom:-.75rem}.xxl\:-ml-3{margin-left:-.75rem}.xxl\:-mt-4{margin-top:-1rem}.xxl\:-mr-4{margin-right:-1rem}.xxl\:-mb-4{margin-bottom:-1rem}.xxl\:-ml-4{margin-left:-1rem}.xxl\:-mt-5{margin-top:-1.25rem}.xxl\:-mr-5{margin-right:-1.25rem}.xxl\:-mb-5{margin-bottom:-1.25rem}.xxl\:-ml-5{margin-left:-1.25rem}.xxl\:-mt-6{margin-top:-1.5rem}.xxl\:-mr-6{margin-right:-1.5rem}.xxl\:-mb-6{margin-bottom:-1.5rem}.xxl\:-ml-6{margin-left:-1.5rem}.xxl\:-mt-8{margin-top:-2rem}.xxl\:-mr-8{margin-right:-2rem}.xxl\:-mb-8{margin-bottom:-2rem}.xxl\:-ml-8{margin-left:-2rem}.xxl\:-mt-10{margin-top:-2.5rem}.xxl\:-mr-10{margin-right:-2.5rem}.xxl\:-mb-10{margin-bottom:-2.5rem}.xxl\:-ml-10{margin-left:-2.5rem}.xxl\:-mt-12{margin-top:-3rem}.xxl\:-mr-12{margin-right:-3rem}.xxl\:-mb-12{margin-bottom:-3rem}.xxl\:-ml-12{margin-left:-3rem}.xxl\:-mt-16{margin-top:-4rem}.xxl\:-mr-16{margin-right:-4rem}.xxl\:-mb-16{margin-bottom:-4rem}.xxl\:-ml-16{margin-left:-4rem}.xxl\:-mt-20{margin-top:-5rem}.xxl\:-mr-20{margin-right:-5rem}.xxl\:-mb-20{margin-bottom:-5rem}.xxl\:-ml-20{margin-left:-5rem}.xxl\:-mt-24{margin-top:-6rem}.xxl\:-mr-24{margin-right:-6rem}.xxl\:-mb-24{margin-bottom:-6rem}.xxl\:-ml-24{margin-left:-6rem}.xxl\:-mt-32{margin-top:-8rem}.xxl\:-mr-32{margin-right:-8rem}.xxl\:-mb-32{margin-bottom:-8rem}.xxl\:-ml-32{margin-left:-8rem}.xxl\:-mt-40{margin-top:-10rem}.xxl\:-mr-40{margin-right:-10rem}.xxl\:-mb-40{margin-bottom:-10rem}.xxl\:-ml-40{margin-left:-10rem}.xxl\:-mt-48{margin-top:-12rem}.xxl\:-mr-48{margin-right:-12rem}.xxl\:-mb-48{margin-bottom:-12rem}.xxl\:-ml-48{margin-left:-12rem}.xxl\:-mt-56{margin-top:-14rem}.xxl\:-mr-56{margin-right:-14rem}.xxl\:-mb-56{margin-bottom:-14rem}.xxl\:-ml-56{margin-left:-14rem}.xxl\:-mt-64{margin-top:-16rem}.xxl\:-mr-64{margin-right:-16rem}.xxl\:-mb-64{margin-bottom:-16rem}.xxl\:-ml-64{margin-left:-16rem}.xxl\:-mt-px{margin-top:-1px}.xxl\:-mr-px{margin-right:-1px}.xxl\:-mb-px{margin-bottom:-1px}.xxl\:-ml-px{margin-left:-1px}.xxl\:max-h-full{max-height:100%}.xxl\:max-h-screen{max-height:100vh}.xxl\:max-w-none{max-width:none}.xxl\:max-w-xs{max-width:20rem}.xxl\:max-w-sm{max-width:24rem}.xxl\:max-w-md{max-width:28rem}.xxl\:max-w-lg{max-width:32rem}.xxl\:max-w-xl{max-width:36rem}.xxl\:max-w-2xl{max-width:42rem}.xxl\:max-w-3xl{max-width:48rem}.xxl\:max-w-4xl{max-width:56rem}.xxl\:max-w-5xl{max-width:64rem}.xxl\:max-w-6xl{max-width:72rem}.xxl\:max-w-full{max-width:100%}.xxl\:max-w-screen-xs{max-width:360px}.xxl\:max-w-screen-sm{max-width:640px}.xxl\:max-w-screen-md{max-width:768px}.xxl\:max-w-screen-lg{max-width:1024px}.xxl\:max-w-screen-xl{max-width:1280px}.xxl\:max-w-screen-xxl{max-width:1480px}.xxl\:min-h-0{min-height:0}.xxl\:min-h-full{min-height:100%}.xxl\:min-h-screen{min-height:100vh}.xxl\:min-w-0{min-width:0}.xxl\:min-w-full{min-width:100%}.xxl\:object-contain{-o-object-fit:contain;object-fit:contain}.xxl\:object-cover{-o-object-fit:cover;object-fit:cover}.xxl\:object-fill{-o-object-fit:fill;object-fit:fill}.xxl\:object-none{-o-object-fit:none;object-fit:none}.xxl\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xxl\:object-bottom{-o-object-position:bottom;object-position:bottom}.xxl\:object-center{-o-object-position:center;object-position:center}.xxl\:object-left{-o-object-position:left;object-position:left}.xxl\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xxl\:object-left-top{-o-object-position:left top;object-position:left top}.xxl\:object-right{-o-object-position:right;object-position:right}.xxl\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xxl\:object-right-top{-o-object-position:right top;object-position:right top}.xxl\:object-top{-o-object-position:top;object-position:top}.xxl\:opacity-0{opacity:0}.xxl\:opacity-25{opacity:.25}.xxl\:opacity-50{opacity:.5}.xxl\:opacity-75{opacity:.75}.xxl\:opacity-100{opacity:1}.xxl\:hover\:opacity-0:hover{opacity:0}.xxl\:hover\:opacity-25:hover{opacity:.25}.xxl\:hover\:opacity-50:hover{opacity:.5}.xxl\:hover\:opacity-75:hover{opacity:.75}.xxl\:hover\:opacity-100:hover{opacity:1}.xxl\:focus\:opacity-0:focus{opacity:0}.xxl\:focus\:opacity-25:focus{opacity:.25}.xxl\:focus\:opacity-50:focus{opacity:.5}.xxl\:focus\:opacity-75:focus{opacity:.75}.xxl\:focus\:opacity-100:focus{opacity:1}.xxl\:outline-none{outline:2px solid transparent;outline-offset:2px}.xxl\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xxl\:outline-black{outline:2px dotted #000;outline-offset:2px}.xxl\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xxl\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xxl\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xxl\:overflow-auto{overflow:auto}.xxl\:overflow-hidden{overflow:hidden}.xxl\:overflow-visible{overflow:visible}.xxl\:overflow-scroll{overflow:scroll}.xxl\:overflow-x-auto{overflow-x:auto}.xxl\:overflow-y-auto{overflow-y:auto}.xxl\:overflow-x-hidden{overflow-x:hidden}.xxl\:overflow-y-hidden{overflow-y:hidden}.xxl\:overflow-x-visible{overflow-x:visible}.xxl\:overflow-y-visible{overflow-y:visible}.xxl\:overflow-x-scroll{overflow-x:scroll}.xxl\:overflow-y-scroll{overflow-y:scroll}.xxl\:scrolling-touch{-webkit-overflow-scrolling:touch}.xxl\:scrolling-auto{-webkit-overflow-scrolling:auto}.xxl\:overscroll-auto{overscroll-behavior:auto}.xxl\:overscroll-contain{overscroll-behavior:contain}.xxl\:overscroll-none{overscroll-behavior:none}.xxl\:overscroll-y-auto{overscroll-behavior-y:auto}.xxl\:overscroll-y-contain{overscroll-behavior-y:contain}.xxl\:overscroll-y-none{overscroll-behavior-y:none}.xxl\:overscroll-x-auto{overscroll-behavior-x:auto}.xxl\:overscroll-x-contain{overscroll-behavior-x:contain}.xxl\:overscroll-x-none{overscroll-behavior-x:none}.xxl\:p-0{padding:0}.xxl\:p-1{padding:.25rem}.xxl\:p-2{padding:.5rem}.xxl\:p-3{padding:.75rem}.xxl\:p-4{padding:1rem}.xxl\:p-5{padding:1.25rem}.xxl\:p-6{padding:1.5rem}.xxl\:p-8{padding:2rem}.xxl\:p-10{padding:2.5rem}.xxl\:p-12{padding:3rem}.xxl\:p-16{padding:4rem}.xxl\:p-20{padding:5rem}.xxl\:p-24{padding:6rem}.xxl\:p-32{padding:8rem}.xxl\:p-40{padding:10rem}.xxl\:p-48{padding:12rem}.xxl\:p-56{padding:14rem}.xxl\:p-64{padding:16rem}.xxl\:p-px{padding:1px}.xxl\:py-0{padding-top:0;padding-bottom:0}.xxl\:px-0{padding-left:0;padding-right:0}.xxl\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xxl\:px-1{padding-left:.25rem;padding-right:.25rem}.xxl\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xxl\:px-2{padding-left:.5rem;padding-right:.5rem}.xxl\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xxl\:px-3{padding-left:.75rem;padding-right:.75rem}.xxl\:py-4{padding-top:1rem;padding-bottom:1rem}.xxl\:px-4{padding-left:1rem;padding-right:1rem}.xxl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xxl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xxl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xxl\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xxl\:py-8{padding-top:2rem;padding-bottom:2rem}.xxl\:px-8{padding-left:2rem;padding-right:2rem}.xxl\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xxl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xxl\:py-12{padding-top:3rem;padding-bottom:3rem}.xxl\:px-12{padding-left:3rem;padding-right:3rem}.xxl\:py-16{padding-top:4rem;padding-bottom:4rem}.xxl\:px-16{padding-left:4rem;padding-right:4rem}.xxl\:py-20{padding-top:5rem;padding-bottom:5rem}.xxl\:px-20{padding-left:5rem;padding-right:5rem}.xxl\:py-24{padding-top:6rem;padding-bottom:6rem}.xxl\:px-24{padding-left:6rem;padding-right:6rem}.xxl\:py-32{padding-top:8rem;padding-bottom:8rem}.xxl\:px-32{padding-left:8rem;padding-right:8rem}.xxl\:py-40{padding-top:10rem;padding-bottom:10rem}.xxl\:px-40{padding-left:10rem;padding-right:10rem}.xxl\:py-48{padding-top:12rem;padding-bottom:12rem}.xxl\:px-48{padding-left:12rem;padding-right:12rem}.xxl\:py-56{padding-top:14rem;padding-bottom:14rem}.xxl\:px-56{padding-left:14rem;padding-right:14rem}.xxl\:py-64{padding-top:16rem;padding-bottom:16rem}.xxl\:px-64{padding-left:16rem;padding-right:16rem}.xxl\:py-px{padding-top:1px;padding-bottom:1px}.xxl\:px-px{padding-left:1px;padding-right:1px}.xxl\:pt-0{padding-top:0}.xxl\:pr-0{padding-right:0}.xxl\:pb-0{padding-bottom:0}.xxl\:pl-0{padding-left:0}.xxl\:pt-1{padding-top:.25rem}.xxl\:pr-1{padding-right:.25rem}.xxl\:pb-1{padding-bottom:.25rem}.xxl\:pl-1{padding-left:.25rem}.xxl\:pt-2{padding-top:.5rem}.xxl\:pr-2{padding-right:.5rem}.xxl\:pb-2{padding-bottom:.5rem}.xxl\:pl-2{padding-left:.5rem}.xxl\:pt-3{padding-top:.75rem}.xxl\:pr-3{padding-right:.75rem}.xxl\:pb-3{padding-bottom:.75rem}.xxl\:pl-3{padding-left:.75rem}.xxl\:pt-4{padding-top:1rem}.xxl\:pr-4{padding-right:1rem}.xxl\:pb-4{padding-bottom:1rem}.xxl\:pl-4{padding-left:1rem}.xxl\:pt-5{padding-top:1.25rem}.xxl\:pr-5{padding-right:1.25rem}.xxl\:pb-5{padding-bottom:1.25rem}.xxl\:pl-5{padding-left:1.25rem}.xxl\:pt-6{padding-top:1.5rem}.xxl\:pr-6{padding-right:1.5rem}.xxl\:pb-6{padding-bottom:1.5rem}.xxl\:pl-6{padding-left:1.5rem}.xxl\:pt-8{padding-top:2rem}.xxl\:pr-8{padding-right:2rem}.xxl\:pb-8{padding-bottom:2rem}.xxl\:pl-8{padding-left:2rem}.xxl\:pt-10{padding-top:2.5rem}.xxl\:pr-10{padding-right:2.5rem}.xxl\:pb-10{padding-bottom:2.5rem}.xxl\:pl-10{padding-left:2.5rem}.xxl\:pt-12{padding-top:3rem}.xxl\:pr-12{padding-right:3rem}.xxl\:pb-12{padding-bottom:3rem}.xxl\:pl-12{padding-left:3rem}.xxl\:pt-16{padding-top:4rem}.xxl\:pr-16{padding-right:4rem}.xxl\:pb-16{padding-bottom:4rem}.xxl\:pl-16{padding-left:4rem}.xxl\:pt-20{padding-top:5rem}.xxl\:pr-20{padding-right:5rem}.xxl\:pb-20{padding-bottom:5rem}.xxl\:pl-20{padding-left:5rem}.xxl\:pt-24{padding-top:6rem}.xxl\:pr-24{padding-right:6rem}.xxl\:pb-24{padding-bottom:6rem}.xxl\:pl-24{padding-left:6rem}.xxl\:pt-32{padding-top:8rem}.xxl\:pr-32{padding-right:8rem}.xxl\:pb-32{padding-bottom:8rem}.xxl\:pl-32{padding-left:8rem}.xxl\:pt-40{padding-top:10rem}.xxl\:pr-40{padding-right:10rem}.xxl\:pb-40{padding-bottom:10rem}.xxl\:pl-40{padding-left:10rem}.xxl\:pt-48{padding-top:12rem}.xxl\:pr-48{padding-right:12rem}.xxl\:pb-48{padding-bottom:12rem}.xxl\:pl-48{padding-left:12rem}.xxl\:pt-56{padding-top:14rem}.xxl\:pr-56{padding-right:14rem}.xxl\:pb-56{padding-bottom:14rem}.xxl\:pl-56{padding-left:14rem}.xxl\:pt-64{padding-top:16rem}.xxl\:pr-64{padding-right:16rem}.xxl\:pb-64{padding-bottom:16rem}.xxl\:pl-64{padding-left:16rem}.xxl\:pt-px{padding-top:1px}.xxl\:pr-px{padding-right:1px}.xxl\:pb-px{padding-bottom:1px}.xxl\:pl-px{padding-left:1px}.xxl\:placeholder-transparent::placeholder{color:transparent}.xxl\:placeholder-current::placeholder{color:currentColor}.xxl\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xxl\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xxl\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xxl\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xxl\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xxl\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xxl\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xxl\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xxl\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xxl\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xxl\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xxl\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xxl\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xxl\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xxl\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xxl\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xxl\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xxl\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xxl\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xxl\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xxl\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xxl\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xxl\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xxl\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xxl\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xxl\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xxl\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xxl\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xxl\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xxl\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xxl\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xxl\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xxl\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xxl\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xxl\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xxl\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xxl\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xxl\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xxl\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xxl\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xxl\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xxl\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xxl\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xxl\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xxl\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xxl\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xxl\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xxl\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xxl\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xxl\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xxl\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xxl\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xxl\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xxl\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xxl\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xxl\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xxl\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xxl\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xxl\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xxl\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xxl\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xxl\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xxl\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xxl\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xxl\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xxl\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xxl\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xxl\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xxl\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xxl\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xxl\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xxl\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xxl\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xxl\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xxl\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xxl\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xxl\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xxl\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xxl\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xxl\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xxl\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xxl\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xxl\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xxl\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xxl\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xxl\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xxl\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xxl\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xxl\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xxl\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xxl\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xxl\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xxl\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xxl\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xxl\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xxl\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xxl\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xxl\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xxl\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xxl\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xxl\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xxl\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xxl\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xxl\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xxl\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xxl\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xxl\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xxl\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xxl\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xxl\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xxl\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xxl\:pointer-events-none{pointer-events:none}.xxl\:pointer-events-auto{pointer-events:auto}.xxl\:static{position:static}.xxl\:fixed{position:fixed}.xxl\:absolute{position:absolute}.xxl\:relative{position:relative}.xxl\:sticky{position:sticky}.xxl\:inset-0{top:0;right:0;bottom:0;left:0}.xxl\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xxl\:inset-y-0{top:0;bottom:0}.xxl\:inset-x-0{right:0;left:0}.xxl\:inset-y-auto{top:auto;bottom:auto}.xxl\:inset-x-auto{right:auto;left:auto}.xxl\:top-0{top:0}.xxl\:right-0{right:0}.xxl\:bottom-0{bottom:0}.xxl\:left-0{left:0}.xxl\:top-auto{top:auto}.xxl\:right-auto{right:auto}.xxl\:bottom-auto{bottom:auto}.xxl\:left-auto{left:auto}.xxl\:resize-none{resize:none}.xxl\:resize-y{resize:vertical}.xxl\:resize-x{resize:horizontal}.xxl\:resize{resize:both}.xxl\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:shadow-none{box-shadow:none}.xxl\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:hover\:shadow-none:hover{box-shadow:none}.xxl\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:focus\:shadow-none:focus{box-shadow:none}.xxl\:fill-current{fill:currentColor}.xxl\:stroke-current{stroke:currentColor}.xxl\:stroke-0{stroke-width:0}.xxl\:stroke-1{stroke-width:1}.xxl\:stroke-2{stroke-width:2}.xxl\:table-auto{table-layout:auto}.xxl\:table-fixed{table-layout:fixed}.xxl\:text-left{text-align:left}.xxl\:text-center{text-align:center}.xxl\:text-right{text-align:right}.xxl\:text-justify{text-align:justify}.xxl\:text-transparent{color:transparent}.xxl\:text-current{color:currentColor}.xxl\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:hover\:text-transparent:hover{color:transparent}.xxl\:hover\:text-current:hover{color:currentColor}.xxl\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:focus\:text-transparent:focus{color:transparent}.xxl\:focus\:text-current:focus{color:currentColor}.xxl\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:text-opacity-0{--text-opacity:0}.xxl\:text-opacity-25{--text-opacity:0.25}.xxl\:text-opacity-50{--text-opacity:0.5}.xxl\:text-opacity-75{--text-opacity:0.75}.xxl\:text-opacity-100{--text-opacity:1}.xxl\:hover\:text-opacity-0:hover{--text-opacity:0}.xxl\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xxl\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xxl\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xxl\:hover\:text-opacity-100:hover{--text-opacity:1}.xxl\:focus\:text-opacity-0:focus{--text-opacity:0}.xxl\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xxl\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xxl\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xxl\:focus\:text-opacity-100:focus{--text-opacity:1}.xxl\:italic{font-style:italic}.xxl\:not-italic{font-style:normal}.xxl\:uppercase{text-transform:uppercase}.xxl\:lowercase{text-transform:lowercase}.xxl\:capitalize{text-transform:capitalize}.xxl\:normal-case{text-transform:none}.xxl\:underline{text-decoration:underline}.xxl\:line-through{text-decoration:line-through}.xxl\:no-underline{text-decoration:none}.xxl\:hover\:underline:hover{text-decoration:underline}.xxl\:hover\:line-through:hover{text-decoration:line-through}.xxl\:hover\:no-underline:hover{text-decoration:none}.xxl\:focus\:underline:focus{text-decoration:underline}.xxl\:focus\:line-through:focus{text-decoration:line-through}.xxl\:focus\:no-underline:focus{text-decoration:none}.xxl\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xxl\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xxl\:diagonal-fractions,.xxl\:lining-nums,.xxl\:oldstyle-nums,.xxl\:ordinal,.xxl\:proportional-nums,.xxl\:slashed-zero,.xxl\:stacked-fractions,.xxl\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xxl\:normal-nums{font-variant-numeric:normal}.xxl\:ordinal{--font-variant-numeric-ordinal:ordinal}.xxl\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xxl\:lining-nums{--font-variant-numeric-figure:lining-nums}.xxl\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xxl\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xxl\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xxl\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xxl\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xxl\:tracking-tighter{letter-spacing:-.05em}.xxl\:tracking-tight{letter-spacing:-.025em}.xxl\:tracking-normal{letter-spacing:0}.xxl\:tracking-wide{letter-spacing:.025em}.xxl\:tracking-wider{letter-spacing:.05em}.xxl\:tracking-widest{letter-spacing:.1em}.xxl\:select-none{-webkit-user-select:none;user-select:none}.xxl\:select-text{-webkit-user-select:text;user-select:text}.xxl\:select-all{-webkit-user-select:all;user-select:all}.xxl\:select-auto{-webkit-user-select:auto;user-select:auto}.xxl\:align-baseline{vertical-align:baseline}.xxl\:align-top{vertical-align:top}.xxl\:align-middle{vertical-align:middle}.xxl\:align-bottom{vertical-align:bottom}.xxl\:align-text-top{vertical-align:text-top}.xxl\:align-text-bottom{vertical-align:text-bottom}.xxl\:visible{visibility:visible}.xxl\:invisible{visibility:hidden}.xxl\:whitespace-normal{white-space:normal}.xxl\:whitespace-no-wrap{white-space:nowrap}.xxl\:whitespace-pre{white-space:pre}.xxl\:whitespace-pre-line{white-space:pre-line}.xxl\:whitespace-pre-wrap{white-space:pre-wrap}.xxl\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xxl\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xxl\:break-all{word-break:break-all}.xxl\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xxl\:w-0{width:0}.xxl\:w-1{width:.25rem}.xxl\:w-2{width:.5rem}.xxl\:w-3{width:.75rem}.xxl\:w-4{width:1rem}.xxl\:w-5{width:1.25rem}.xxl\:w-6{width:1.5rem}.xxl\:w-8{width:2rem}.xxl\:w-10{width:2.5rem}.xxl\:w-12{width:3rem}.xxl\:w-16{width:4rem}.xxl\:w-20{width:5rem}.xxl\:w-24{width:6rem}.xxl\:w-32{width:8rem}.xxl\:w-40{width:10rem}.xxl\:w-48{width:12rem}.xxl\:w-56{width:14rem}.xxl\:w-64{width:16rem}.xxl\:w-auto{width:auto}.xxl\:w-px{width:1px}.xxl\:w-1\/2{width:50%}.xxl\:w-1\/3{width:33.333333%}.xxl\:w-2\/3{width:66.666667%}.xxl\:w-1\/4{width:25%}.xxl\:w-2\/4{width:50%}.xxl\:w-3\/4{width:75%}.xxl\:w-1\/5{width:20%}.xxl\:w-2\/5{width:40%}.xxl\:w-3\/5{width:60%}.xxl\:w-4\/5{width:80%}.xxl\:w-1\/6{width:16.666667%}.xxl\:w-2\/6{width:33.333333%}.xxl\:w-3\/6{width:50%}.xxl\:w-4\/6{width:66.666667%}.xxl\:w-5\/6{width:83.333333%}.xxl\:w-1\/12{width:8.333333%}.xxl\:w-2\/12{width:16.666667%}.xxl\:w-3\/12{width:25%}.xxl\:w-4\/12{width:33.333333%}.xxl\:w-5\/12{width:41.666667%}.xxl\:w-6\/12{width:50%}.xxl\:w-7\/12{width:58.333333%}.xxl\:w-8\/12{width:66.666667%}.xxl\:w-9\/12{width:75%}.xxl\:w-10\/12{width:83.333333%}.xxl\:w-11\/12{width:91.666667%}.xxl\:w-full{width:100%}.xxl\:w-screen{width:100vw}.xxl\:z-0{z-index:0}.xxl\:z-10{z-index:10}.xxl\:z-20{z-index:20}.xxl\:z-30{z-index:30}.xxl\:z-40{z-index:40}.xxl\:z-50{z-index:50}.xxl\:z-auto{z-index:auto}.xxl\:gap-0{grid-gap:0;gap:0}.xxl\:gap-1{grid-gap:.25rem;gap:.25rem}.xxl\:gap-2{grid-gap:.5rem;gap:.5rem}.xxl\:gap-3{grid-gap:.75rem;gap:.75rem}.xxl\:gap-4{grid-gap:1rem;gap:1rem}.xxl\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xxl\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xxl\:gap-8{grid-gap:2rem;gap:2rem}.xxl\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xxl\:gap-12{grid-gap:3rem;gap:3rem}.xxl\:gap-16{grid-gap:4rem;gap:4rem}.xxl\:gap-20{grid-gap:5rem;gap:5rem}.xxl\:gap-24{grid-gap:6rem;gap:6rem}.xxl\:gap-32{grid-gap:8rem;gap:8rem}.xxl\:gap-40{grid-gap:10rem;gap:10rem}.xxl\:gap-48{grid-gap:12rem;gap:12rem}.xxl\:gap-56{grid-gap:14rem;gap:14rem}.xxl\:gap-64{grid-gap:16rem;gap:16rem}.xxl\:gap-px{grid-gap:1px;gap:1px}.xxl\:col-gap-0{grid-column-gap:0;column-gap:0}.xxl\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xxl\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xxl\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xxl\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xxl\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xxl\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xxl\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xxl\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xxl\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xxl\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xxl\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xxl\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xxl\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xxl\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xxl\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xxl\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xxl\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xxl\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xxl\:gap-x-0{grid-column-gap:0;column-gap:0}.xxl\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xxl\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xxl\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xxl\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xxl\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xxl\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xxl\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xxl\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xxl\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xxl\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xxl\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xxl\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xxl\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xxl\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xxl\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xxl\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xxl\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xxl\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xxl\:row-gap-0{grid-row-gap:0;row-gap:0}.xxl\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xxl\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xxl\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xxl\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xxl\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xxl\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xxl\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xxl\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xxl\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xxl\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xxl\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xxl\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xxl\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xxl\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xxl\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xxl\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xxl\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xxl\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xxl\:gap-y-0{grid-row-gap:0;row-gap:0}.xxl\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xxl\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xxl\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xxl\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xxl\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xxl\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xxl\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xxl\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xxl\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xxl\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xxl\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xxl\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xxl\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xxl\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xxl\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xxl\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xxl\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xxl\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xxl\:grid-flow-row{grid-auto-flow:row}.xxl\:grid-flow-col{grid-auto-flow:column}.xxl\:grid-flow-row-dense{grid-auto-flow:row dense}.xxl\:grid-flow-col-dense{grid-auto-flow:column dense}.xxl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xxl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xxl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xxl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xxl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xxl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xxl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xxl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xxl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xxl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xxl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xxl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xxl\:grid-cols-none{grid-template-columns:none}.xxl\:auto-cols-auto{grid-auto-columns:auto}.xxl\:auto-cols-min{grid-auto-columns:min-content}.xxl\:auto-cols-max{grid-auto-columns:max-content}.xxl\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xxl\:col-auto{grid-column:auto}.xxl\:col-span-1{grid-column:span 1/span 1}.xxl\:col-span-2{grid-column:span 2/span 2}.xxl\:col-span-3{grid-column:span 3/span 3}.xxl\:col-span-4{grid-column:span 4/span 4}.xxl\:col-span-5{grid-column:span 5/span 5}.xxl\:col-span-6{grid-column:span 6/span 6}.xxl\:col-span-7{grid-column:span 7/span 7}.xxl\:col-span-8{grid-column:span 8/span 8}.xxl\:col-span-9{grid-column:span 9/span 9}.xxl\:col-span-10{grid-column:span 10/span 10}.xxl\:col-span-11{grid-column:span 11/span 11}.xxl\:col-span-12{grid-column:span 12/span 12}.xxl\:col-span-full{grid-column:1/-1}.xxl\:col-start-1{grid-column-start:1}.xxl\:col-start-2{grid-column-start:2}.xxl\:col-start-3{grid-column-start:3}.xxl\:col-start-4{grid-column-start:4}.xxl\:col-start-5{grid-column-start:5}.xxl\:col-start-6{grid-column-start:6}.xxl\:col-start-7{grid-column-start:7}.xxl\:col-start-8{grid-column-start:8}.xxl\:col-start-9{grid-column-start:9}.xxl\:col-start-10{grid-column-start:10}.xxl\:col-start-11{grid-column-start:11}.xxl\:col-start-12{grid-column-start:12}.xxl\:col-start-13{grid-column-start:13}.xxl\:col-start-auto{grid-column-start:auto}.xxl\:col-end-1{grid-column-end:1}.xxl\:col-end-2{grid-column-end:2}.xxl\:col-end-3{grid-column-end:3}.xxl\:col-end-4{grid-column-end:4}.xxl\:col-end-5{grid-column-end:5}.xxl\:col-end-6{grid-column-end:6}.xxl\:col-end-7{grid-column-end:7}.xxl\:col-end-8{grid-column-end:8}.xxl\:col-end-9{grid-column-end:9}.xxl\:col-end-10{grid-column-end:10}.xxl\:col-end-11{grid-column-end:11}.xxl\:col-end-12{grid-column-end:12}.xxl\:col-end-13{grid-column-end:13}.xxl\:col-end-auto{grid-column-end:auto}.xxl\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xxl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xxl\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xxl\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xxl\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xxl\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xxl\:grid-rows-none{grid-template-rows:none}.xxl\:auto-rows-auto{grid-auto-rows:auto}.xxl\:auto-rows-min{grid-auto-rows:min-content}.xxl\:auto-rows-max{grid-auto-rows:max-content}.xxl\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xxl\:row-auto{grid-row:auto}.xxl\:row-span-1{grid-row:span 1/span 1}.xxl\:row-span-2{grid-row:span 2/span 2}.xxl\:row-span-3{grid-row:span 3/span 3}.xxl\:row-span-4{grid-row:span 4/span 4}.xxl\:row-span-5{grid-row:span 5/span 5}.xxl\:row-span-6{grid-row:span 6/span 6}.xxl\:row-span-full{grid-row:1/-1}.xxl\:row-start-1{grid-row-start:1}.xxl\:row-start-2{grid-row-start:2}.xxl\:row-start-3{grid-row-start:3}.xxl\:row-start-4{grid-row-start:4}.xxl\:row-start-5{grid-row-start:5}.xxl\:row-start-6{grid-row-start:6}.xxl\:row-start-7{grid-row-start:7}.xxl\:row-start-auto{grid-row-start:auto}.xxl\:row-end-1{grid-row-end:1}.xxl\:row-end-2{grid-row-end:2}.xxl\:row-end-3{grid-row-end:3}.xxl\:row-end-4{grid-row-end:4}.xxl\:row-end-5{grid-row-end:5}.xxl\:row-end-6{grid-row-end:6}.xxl\:row-end-7{grid-row-end:7}.xxl\:row-end-auto{grid-row-end:auto}.xxl\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xxl\:transform-none{transform:none}.xxl\:origin-center{transform-origin:center}.xxl\:origin-top{transform-origin:top}.xxl\:origin-top-right{transform-origin:top right}.xxl\:origin-right{transform-origin:right}.xxl\:origin-bottom-right{transform-origin:bottom right}.xxl\:origin-bottom{transform-origin:bottom}.xxl\:origin-bottom-left{transform-origin:bottom left}.xxl\:origin-left{transform-origin:left}.xxl\:origin-top-left{transform-origin:top left}.xxl\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xxl\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xxl\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:scale-x-0{--transform-scale-x:0}.xxl\:scale-x-50{--transform-scale-x:.5}.xxl\:scale-x-75{--transform-scale-x:.75}.xxl\:scale-x-90{--transform-scale-x:.9}.xxl\:scale-x-95{--transform-scale-x:.95}.xxl\:scale-x-100{--transform-scale-x:1}.xxl\:scale-x-105{--transform-scale-x:1.05}.xxl\:scale-x-110{--transform-scale-x:1.1}.xxl\:scale-x-125{--transform-scale-x:1.25}.xxl\:scale-x-150{--transform-scale-x:1.5}.xxl\:scale-y-0{--transform-scale-y:0}.xxl\:scale-y-50{--transform-scale-y:.5}.xxl\:scale-y-75{--transform-scale-y:.75}.xxl\:scale-y-90{--transform-scale-y:.9}.xxl\:scale-y-95{--transform-scale-y:.95}.xxl\:scale-y-100{--transform-scale-y:1}.xxl\:scale-y-105{--transform-scale-y:1.05}.xxl\:scale-y-110{--transform-scale-y:1.1}.xxl\:scale-y-125{--transform-scale-y:1.25}.xxl\:scale-y-150{--transform-scale-y:1.5}.xxl\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xxl\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xxl\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:hover\:scale-x-0:hover{--transform-scale-x:0}.xxl\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xxl\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xxl\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xxl\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xxl\:hover\:scale-x-100:hover{--transform-scale-x:1}.xxl\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xxl\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xxl\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xxl\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xxl\:hover\:scale-y-0:hover{--transform-scale-y:0}.xxl\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xxl\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xxl\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xxl\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xxl\:hover\:scale-y-100:hover{--transform-scale-y:1}.xxl\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xxl\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xxl\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xxl\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xxl\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xxl\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xxl\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:focus\:scale-x-0:focus{--transform-scale-x:0}.xxl\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xxl\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xxl\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xxl\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xxl\:focus\:scale-x-100:focus{--transform-scale-x:1}.xxl\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xxl\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xxl\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xxl\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xxl\:focus\:scale-y-0:focus{--transform-scale-y:0}.xxl\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xxl\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xxl\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xxl\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xxl\:focus\:scale-y-100:focus{--transform-scale-y:1}.xxl\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xxl\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xxl\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xxl\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xxl\:rotate-0{--transform-rotate:0}.xxl\:rotate-1{--transform-rotate:1deg}.xxl\:rotate-2{--transform-rotate:2deg}.xxl\:rotate-3{--transform-rotate:3deg}.xxl\:rotate-6{--transform-rotate:6deg}.xxl\:rotate-12{--transform-rotate:12deg}.xxl\:rotate-45{--transform-rotate:45deg}.xxl\:rotate-90{--transform-rotate:90deg}.xxl\:rotate-180{--transform-rotate:180deg}.xxl\:-rotate-180{--transform-rotate:-180deg}.xxl\:-rotate-90{--transform-rotate:-90deg}.xxl\:-rotate-45{--transform-rotate:-45deg}.xxl\:-rotate-12{--transform-rotate:-12deg}.xxl\:-rotate-6{--transform-rotate:-6deg}.xxl\:-rotate-3{--transform-rotate:-3deg}.xxl\:-rotate-2{--transform-rotate:-2deg}.xxl\:-rotate-1{--transform-rotate:-1deg}.xxl\:hover\:rotate-0:hover{--transform-rotate:0}.xxl\:hover\:rotate-1:hover{--transform-rotate:1deg}.xxl\:hover\:rotate-2:hover{--transform-rotate:2deg}.xxl\:hover\:rotate-3:hover{--transform-rotate:3deg}.xxl\:hover\:rotate-6:hover{--transform-rotate:6deg}.xxl\:hover\:rotate-12:hover{--transform-rotate:12deg}.xxl\:hover\:rotate-45:hover{--transform-rotate:45deg}.xxl\:hover\:rotate-90:hover{--transform-rotate:90deg}.xxl\:hover\:rotate-180:hover{--transform-rotate:180deg}.xxl\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xxl\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xxl\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xxl\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xxl\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xxl\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xxl\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xxl\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xxl\:focus\:rotate-0:focus{--transform-rotate:0}.xxl\:focus\:rotate-1:focus{--transform-rotate:1deg}.xxl\:focus\:rotate-2:focus{--transform-rotate:2deg}.xxl\:focus\:rotate-3:focus{--transform-rotate:3deg}.xxl\:focus\:rotate-6:focus{--transform-rotate:6deg}.xxl\:focus\:rotate-12:focus{--transform-rotate:12deg}.xxl\:focus\:rotate-45:focus{--transform-rotate:45deg}.xxl\:focus\:rotate-90:focus{--transform-rotate:90deg}.xxl\:focus\:rotate-180:focus{--transform-rotate:180deg}.xxl\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xxl\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xxl\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xxl\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xxl\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xxl\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xxl\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xxl\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xxl\:translate-x-0{--transform-translate-x:0}.xxl\:translate-x-1{--transform-translate-x:0.25rem}.xxl\:translate-x-2{--transform-translate-x:0.5rem}.xxl\:translate-x-3{--transform-translate-x:0.75rem}.xxl\:translate-x-4{--transform-translate-x:1rem}.xxl\:translate-x-5{--transform-translate-x:1.25rem}.xxl\:translate-x-6{--transform-translate-x:1.5rem}.xxl\:translate-x-8{--transform-translate-x:2rem}.xxl\:translate-x-10{--transform-translate-x:2.5rem}.xxl\:translate-x-12{--transform-translate-x:3rem}.xxl\:translate-x-16{--transform-translate-x:4rem}.xxl\:translate-x-20{--transform-translate-x:5rem}.xxl\:translate-x-24{--transform-translate-x:6rem}.xxl\:translate-x-32{--transform-translate-x:8rem}.xxl\:translate-x-40{--transform-translate-x:10rem}.xxl\:translate-x-48{--transform-translate-x:12rem}.xxl\:translate-x-56{--transform-translate-x:14rem}.xxl\:translate-x-64{--transform-translate-x:16rem}.xxl\:translate-x-px{--transform-translate-x:1px}.xxl\:-translate-x-1{--transform-translate-x:-0.25rem}.xxl\:-translate-x-2{--transform-translate-x:-0.5rem}.xxl\:-translate-x-3{--transform-translate-x:-0.75rem}.xxl\:-translate-x-4{--transform-translate-x:-1rem}.xxl\:-translate-x-5{--transform-translate-x:-1.25rem}.xxl\:-translate-x-6{--transform-translate-x:-1.5rem}.xxl\:-translate-x-8{--transform-translate-x:-2rem}.xxl\:-translate-x-10{--transform-translate-x:-2.5rem}.xxl\:-translate-x-12{--transform-translate-x:-3rem}.xxl\:-translate-x-16{--transform-translate-x:-4rem}.xxl\:-translate-x-20{--transform-translate-x:-5rem}.xxl\:-translate-x-24{--transform-translate-x:-6rem}.xxl\:-translate-x-32{--transform-translate-x:-8rem}.xxl\:-translate-x-40{--transform-translate-x:-10rem}.xxl\:-translate-x-48{--transform-translate-x:-12rem}.xxl\:-translate-x-56{--transform-translate-x:-14rem}.xxl\:-translate-x-64{--transform-translate-x:-16rem}.xxl\:-translate-x-px{--transform-translate-x:-1px}.xxl\:-translate-x-full{--transform-translate-x:-100%}.xxl\:-translate-x-1\/2{--transform-translate-x:-50%}.xxl\:translate-x-1\/2{--transform-translate-x:50%}.xxl\:translate-x-full{--transform-translate-x:100%}.xxl\:translate-y-0{--transform-translate-y:0}.xxl\:translate-y-1{--transform-translate-y:0.25rem}.xxl\:translate-y-2{--transform-translate-y:0.5rem}.xxl\:translate-y-3{--transform-translate-y:0.75rem}.xxl\:translate-y-4{--transform-translate-y:1rem}.xxl\:translate-y-5{--transform-translate-y:1.25rem}.xxl\:translate-y-6{--transform-translate-y:1.5rem}.xxl\:translate-y-8{--transform-translate-y:2rem}.xxl\:translate-y-10{--transform-translate-y:2.5rem}.xxl\:translate-y-12{--transform-translate-y:3rem}.xxl\:translate-y-16{--transform-translate-y:4rem}.xxl\:translate-y-20{--transform-translate-y:5rem}.xxl\:translate-y-24{--transform-translate-y:6rem}.xxl\:translate-y-32{--transform-translate-y:8rem}.xxl\:translate-y-40{--transform-translate-y:10rem}.xxl\:translate-y-48{--transform-translate-y:12rem}.xxl\:translate-y-56{--transform-translate-y:14rem}.xxl\:translate-y-64{--transform-translate-y:16rem}.xxl\:translate-y-px{--transform-translate-y:1px}.xxl\:-translate-y-1{--transform-translate-y:-0.25rem}.xxl\:-translate-y-2{--transform-translate-y:-0.5rem}.xxl\:-translate-y-3{--transform-translate-y:-0.75rem}.xxl\:-translate-y-4{--transform-translate-y:-1rem}.xxl\:-translate-y-5{--transform-translate-y:-1.25rem}.xxl\:-translate-y-6{--transform-translate-y:-1.5rem}.xxl\:-translate-y-8{--transform-translate-y:-2rem}.xxl\:-translate-y-10{--transform-translate-y:-2.5rem}.xxl\:-translate-y-12{--transform-translate-y:-3rem}.xxl\:-translate-y-16{--transform-translate-y:-4rem}.xxl\:-translate-y-20{--transform-translate-y:-5rem}.xxl\:-translate-y-24{--transform-translate-y:-6rem}.xxl\:-translate-y-32{--transform-translate-y:-8rem}.xxl\:-translate-y-40{--transform-translate-y:-10rem}.xxl\:-translate-y-48{--transform-translate-y:-12rem}.xxl\:-translate-y-56{--transform-translate-y:-14rem}.xxl\:-translate-y-64{--transform-translate-y:-16rem}.xxl\:-translate-y-px{--transform-translate-y:-1px}.xxl\:-translate-y-full{--transform-translate-y:-100%}.xxl\:-translate-y-1\/2{--transform-translate-y:-50%}.xxl\:translate-y-1\/2{--transform-translate-y:50%}.xxl\:translate-y-full{--transform-translate-y:100%}.xxl\:hover\:translate-x-0:hover{--transform-translate-x:0}.xxl\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xxl\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xxl\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xxl\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xxl\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xxl\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xxl\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xxl\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xxl\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xxl\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xxl\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xxl\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xxl\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xxl\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xxl\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xxl\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xxl\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xxl\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xxl\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xxl\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xxl\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xxl\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xxl\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xxl\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xxl\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xxl\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xxl\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xxl\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xxl\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xxl\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xxl\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xxl\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xxl\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xxl\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xxl\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xxl\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xxl\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xxl\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xxl\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xxl\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xxl\:hover\:translate-y-0:hover{--transform-translate-y:0}.xxl\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xxl\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xxl\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xxl\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xxl\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xxl\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xxl\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xxl\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xxl\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xxl\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xxl\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xxl\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xxl\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xxl\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xxl\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xxl\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xxl\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xxl\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xxl\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xxl\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xxl\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xxl\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xxl\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xxl\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xxl\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xxl\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xxl\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xxl\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xxl\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xxl\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xxl\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xxl\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xxl\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xxl\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xxl\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xxl\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xxl\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xxl\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xxl\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xxl\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xxl\:focus\:translate-x-0:focus{--transform-translate-x:0}.xxl\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xxl\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xxl\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xxl\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xxl\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xxl\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xxl\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xxl\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xxl\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xxl\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xxl\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xxl\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xxl\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xxl\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xxl\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xxl\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xxl\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xxl\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xxl\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xxl\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xxl\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xxl\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xxl\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xxl\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xxl\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xxl\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xxl\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xxl\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xxl\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xxl\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xxl\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xxl\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xxl\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xxl\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xxl\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xxl\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xxl\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xxl\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xxl\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xxl\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xxl\:focus\:translate-y-0:focus{--transform-translate-y:0}.xxl\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xxl\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xxl\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xxl\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xxl\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xxl\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xxl\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xxl\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xxl\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xxl\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xxl\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xxl\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xxl\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xxl\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xxl\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xxl\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xxl\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xxl\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xxl\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xxl\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xxl\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xxl\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xxl\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xxl\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xxl\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xxl\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xxl\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xxl\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xxl\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xxl\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xxl\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xxl\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xxl\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xxl\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xxl\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xxl\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xxl\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xxl\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xxl\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xxl\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xxl\:skew-x-0{--transform-skew-x:0}.xxl\:skew-x-1{--transform-skew-x:1deg}.xxl\:skew-x-2{--transform-skew-x:2deg}.xxl\:skew-x-3{--transform-skew-x:3deg}.xxl\:skew-x-6{--transform-skew-x:6deg}.xxl\:skew-x-12{--transform-skew-x:12deg}.xxl\:-skew-x-12{--transform-skew-x:-12deg}.xxl\:-skew-x-6{--transform-skew-x:-6deg}.xxl\:-skew-x-3{--transform-skew-x:-3deg}.xxl\:-skew-x-2{--transform-skew-x:-2deg}.xxl\:-skew-x-1{--transform-skew-x:-1deg}.xxl\:skew-y-0{--transform-skew-y:0}.xxl\:skew-y-1{--transform-skew-y:1deg}.xxl\:skew-y-2{--transform-skew-y:2deg}.xxl\:skew-y-3{--transform-skew-y:3deg}.xxl\:skew-y-6{--transform-skew-y:6deg}.xxl\:skew-y-12{--transform-skew-y:12deg}.xxl\:-skew-y-12{--transform-skew-y:-12deg}.xxl\:-skew-y-6{--transform-skew-y:-6deg}.xxl\:-skew-y-3{--transform-skew-y:-3deg}.xxl\:-skew-y-2{--transform-skew-y:-2deg}.xxl\:-skew-y-1{--transform-skew-y:-1deg}.xxl\:hover\:skew-x-0:hover{--transform-skew-x:0}.xxl\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xxl\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xxl\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xxl\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xxl\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xxl\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xxl\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xxl\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xxl\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xxl\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xxl\:hover\:skew-y-0:hover{--transform-skew-y:0}.xxl\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xxl\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xxl\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xxl\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xxl\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xxl\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xxl\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xxl\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xxl\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xxl\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xxl\:focus\:skew-x-0:focus{--transform-skew-x:0}.xxl\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xxl\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xxl\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xxl\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xxl\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xxl\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xxl\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xxl\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xxl\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xxl\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xxl\:focus\:skew-y-0:focus{--transform-skew-y:0}.xxl\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xxl\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xxl\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xxl\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xxl\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xxl\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xxl\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xxl\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xxl\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xxl\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xxl\:transition-none{transition-property:none}.xxl\:transition-all{transition-property:all}.xxl\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xxl\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xxl\:transition-opacity{transition-property:opacity}.xxl\:transition-shadow{transition-property:box-shadow}.xxl\:transition-transform{transition-property:transform}.xxl\:ease-linear{transition-timing-function:linear}.xxl\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xxl\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xxl\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xxl\:duration-75{transition-duration:75ms}.xxl\:duration-100{transition-duration:.1s}.xxl\:duration-150{transition-duration:.15s}.xxl\:duration-200{transition-duration:.2s}.xxl\:duration-300{transition-duration:.3s}.xxl\:duration-500{transition-duration:.5s}.xxl\:duration-700{transition-duration:.7s}.xxl\:duration-1000{transition-duration:1s}.xxl\:delay-75{transition-delay:75ms}.xxl\:delay-100{transition-delay:.1s}.xxl\:delay-150{transition-delay:.15s}.xxl\:delay-200{transition-delay:.2s}.xxl\:delay-300{transition-delay:.3s}.xxl\:delay-500{transition-delay:.5s}.xxl\:delay-700{transition-delay:.7s}.xxl\:delay-1000{transition-delay:1s}.xxl\:animate-none{animation:none}.xxl\:animate-spin{animation:spin 1s linear infinite}.xxl\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xxl\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xxl\:animate-bounce{animation:bounce 1s infinite}}#nprogress{pointer-events:none}#nprogress .bar{background:#00d1ff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #00d1ff,0 0 5px #00d1ff;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#00d1ff transparent transparent #00d1ff;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}html{scroll-behavior:smooth}.go-to-top[data-v-5fd4ef0c]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#00d1ff;z-index:1}.go-to-top[data-v-5fd4ef0c]:hover{color:#4ddfff}@media (max-width:959px){.go-to-top[data-v-5fd4ef0c]{display:none}}.fade-enter-active[data-v-5fd4ef0c],.fade-leave-active[data-v-5fd4ef0c]{transition:opacity .3s}.fade-enter[data-v-5fd4ef0c],.fade-leave-to[data-v-5fd4ef0c]{opacity:0}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.blog-home[data-v-23ea4d9e]{padding:4.6rem 2rem 0;max-width:820px;margin:0 auto}h1[data-v-23ea4d9e]{font-size:3rem;margin:1.8rem auto;text-align:center}ul[data-v-23ea4d9e]{list-style-type:none}.hero-home{background:radial-gradient(70% 70% at 50% 100%,#e8e8e8 0,#fafafa 100%)}.content{padding-top:5rem;padding-bottom:2rem;margin:0 4rem}.smalltext{color:#999;font-size:1rem;letter-spacing:.1rem;font-weight:500}@media (max-width:719px){.content{padding-top:4rem;margin:0 .5rem}}@media (max-width:419px){.content{padding-top:4rem;margin:0 .5rem}}.text-blue{color:#cfe1e6}.bg-orange:hover{background-color:#ffd278}.hero-button:hover{background-color:#e077ff;color:#fff}.product .hero{text-align:center}.product .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.product .hero h1{font-size:3rem}.product .hero .action,.product .hero .description,.product .hero h1{margin:1.8rem auto}.product .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.product .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#00d1ff;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #00bce6}.product .hero .action-button:hover{background-color:#1ad6ff}.blog-home[data-v-f5824a9c]{padding:4.6rem 2rem 0;max-width:820px;margin:0 auto}h1[data-v-f5824a9c]{font-size:3rem;margin:1.8rem auto;text-align:center}ul[data-v-f5824a9c]{list-style-type:none}.jobs-diagram[data-v-64a1ff08]{height:370px;min-width:900px}polygon[data-v-64a1ff08],text[data-v-64a1ff08]{cursor:pointer}.job .hero{text-align:center}.job .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.job .hero h1{font-size:3rem}.job .hero .action,.job .hero .description,.job .hero h1{margin:1.8rem auto}.job .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.job .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#00d1ff;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #00bce6}.job .hero .action-button:hover{background-color:#1ad6ff}.job p{margin:50px 0}.job h2{margin:60px 0 50px}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#00d1ff}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#00d1ff}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#2c3e50}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#00d1ff}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:1rem 1.5rem .45rem 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#00d1ff}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #00d1ff;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#00d1ff}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #14d5ff}}.navbaricon{filter:invert(10%) sepia(66%) saturate(12%) hue-rotate(28deg) brightness(91%) contrast(93%)}.navbaricon:hover{filter:invert(55%) sepia(9%) saturate(3922%) hue-rotate(329deg) brightness(97%) contrast(85%)}.navbar{padding:.7rem 1.5rem;line-height:3.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:3.2rem;min-width:3.2rem;margin-right:.8rem;vertical-align:top;position:relative;z-index:10}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:13.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#767676}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}ul[data-v-08abc9d6]{list-style-type:none;padding-left:0}li>a[data-v-08abc9d6]:hover{font-weight:600}.page{padding-bottom:2rem;display:block}.hor-line{max-width:740px}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#00d1ff;border-left-color:#00d1ff}.sidebar-heading.clickable:hover{color:#00d1ff}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#00d1ff}a.sidebar-link.active{font-weight:600;color:#00d1ff;border-left-color:#00d1ff}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}li[data-v-69abe1b0]{list-style:none}.footer-bg[data-v-69abe1b0]{background-color:#00d1ff;border-top:1px solid #cfe1e6}li>a[data-v-69abe1b0]{color:#000;font-weight:700;font-size:1rem}li>a[data-v-69abe1b0]:hover{color:#fff}.footer-title[data-v-69abe1b0]{color:#000;font-size:1.1rem;font-weight:700}.footer-items[data-v-69abe1b0]{margin-left:8em}.footer-logo[data-v-69abe1b0]{margin-left:2.5em}.bottom-padding[data-v-69abe1b0]{padding-bottom:1em}.jobs-diagram[data-v-6fc3c561]{height:470px;min-width:1000px}polygon[data-v-6fc3c561],text[data-v-6fc3c561]{cursor:pointer}.gray-section{background-color:#eee}.inner-container{max-width:1200px;margin:0 auto}.inner-container h1{margin-bottom:16px}.inner-container p{font-size:16px;line-height:1.4}.usedby{max-width:900px}#video-section{background-image:url(/img/home/beam.svg);background-size:95% 42%;background-position:50%;background-repeat:no-repeat}.video{margin:auto;max-width:900px;width:100%}.video iframe{top:0;right:0;left:0;bottom:0;margin:auto;max-width:700px;height:400px}.container{margin-left:12px}.card-details{text-align:initial;margin-left:16px}.card-details p{font-size:16px;line-height:1.5;padding:0;margin:12px 0}hr{height:2px;color:#e077ff;background-color:#e077ff;border:none;width:160px}.tooling-card{min-width:14%;justify-content:center}.image-border,.tooling-card{display:flex;align-items:center}.image-border{padding:20px;border:2px solid #e47046;border-radius:50%;background:#eee;min-width:80px;min-height:80px}.image-border img{width:60px;height:60px}.image-border:hover{background-color:#fff}.orange-text{color:#e077ff}h2[data-v-c0ada04e]{width:100%;display:inline-block;border-bottom:none}h2[data-v-c0ada04e],h3[data-v-c0ada04e]{margin-top:-4.1rem;padding-top:5.6rem;margin-bottom:0}ul.timeline{list-style-type:none;position:relative;font-size:120%}ul.timeline:before{content:" ";background:#d4d9df;display:inline-block;position:absolute;left:29px;width:2px;height:100%;z-index:400}ul.timeline>li{margin:20px 0;padding-left:40px}ul.timeline>li:before{content:" ";background:#fff;display:inline-block;position:absolute;border-radius:50%;border:3px solid #000;left:20px;width:20px;height:20px;z-index:400}ul.timeline>li.done:before{background:green}ul.timeline>li.current:before{background:#ff0}.fluer{padding-left:1rem}.flex{justify-content:space-around}.team-core-font[data-v-036cb118]{text-transform:uppercase;font-size:.84em;font-weight:500}.list[data-v-036cb118],ul[data-v-036cb118]{list-style-type:none}div.language-mermaid{background-color:inherit}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770],.badge[data-v-15b7b770]{background-color:#42b983}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px}.theme-code-block[data-v-759a7d02]{display:none}.theme-code-block__active[data-v-759a7d02]{display:block}.theme-code-block>pre[data-v-759a7d02]{background-color:orange}.theme-code-group__nav[data-v-deefee04]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-deefee04]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-deefee04]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-deefee04]{border-bottom:1px solid #42b983}.pre-blank[data-v-deefee04]{color:#42b983} \ No newline at end of file +code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#00d1ff}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:4.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:4.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:4.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#00d1ff}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-4.1rem;padding-top:5.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:4.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.container{width:100%}@media (min-width:360px){.container{max-width:360px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1480px){.container{max-width:1480px}}.space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.divide-transparent>:not(template)~:not(template){border-color:transparent}.divide-current>:not(template)~:not(template){border-color:currentColor}.divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.divide-solid>:not(template)~:not(template){border-style:solid}.divide-dashed>:not(template)~:not(template){border-style:dashed}.divide-dotted>:not(template)~:not(template){border-style:dotted}.divide-double>:not(template)~:not(template){border-style:double}.divide-none>:not(template)~:not(template){border-style:none}.divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.appearance-none{-webkit-appearance:none;appearance:none}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-transparent{background-color:transparent}.bg-current{background-color:currentColor}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-current:hover{background-color:currentColor}.hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.focus\:bg-transparent:focus{background-color:transparent}.focus\:bg-current:focus{background-color:currentColor}.focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.bg-none{background-image:none}.bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.to-transparent{--gradient-to-color:transparent}.to-current{--gradient-to-color:currentColor}.to-black{--gradient-to-color:#000}.to-white{--gradient-to-color:#fff}.to-gray-100{--gradient-to-color:#f7fafc}.to-gray-200{--gradient-to-color:#edf2f7}.to-gray-300{--gradient-to-color:#e2e8f0}.to-gray-400{--gradient-to-color:#cbd5e0}.to-gray-500{--gradient-to-color:#a0aec0}.to-gray-600{--gradient-to-color:#718096}.to-gray-700{--gradient-to-color:#4a5568}.to-gray-800{--gradient-to-color:#2d3748}.to-gray-900{--gradient-to-color:#1a202c}.to-red-100{--gradient-to-color:#fff5f5}.to-red-200{--gradient-to-color:#fed7d7}.to-red-300{--gradient-to-color:#feb2b2}.to-red-400{--gradient-to-color:#fc8181}.to-red-500{--gradient-to-color:#f56565}.to-red-600{--gradient-to-color:#e53e3e}.to-red-700{--gradient-to-color:#c53030}.to-red-800{--gradient-to-color:#9b2c2c}.to-red-900{--gradient-to-color:#742a2a}.to-orange-100{--gradient-to-color:#fffaf0}.to-orange-200{--gradient-to-color:#feebc8}.to-orange-300{--gradient-to-color:#fbd38d}.to-orange-400{--gradient-to-color:#f6ad55}.to-orange-500{--gradient-to-color:#ed8936}.to-orange-600{--gradient-to-color:#dd6b20}.to-orange-700{--gradient-to-color:#c05621}.to-orange-800{--gradient-to-color:#9c4221}.to-orange-900{--gradient-to-color:#7b341e}.to-yellow-100{--gradient-to-color:ivory}.to-yellow-200{--gradient-to-color:#fefcbf}.to-yellow-300{--gradient-to-color:#faf089}.to-yellow-400{--gradient-to-color:#f6e05e}.to-yellow-500{--gradient-to-color:#ecc94b}.to-yellow-600{--gradient-to-color:#d69e2e}.to-yellow-700{--gradient-to-color:#b7791f}.to-yellow-800{--gradient-to-color:#975a16}.to-yellow-900{--gradient-to-color:#744210}.to-green-100{--gradient-to-color:#f0fff4}.to-green-200{--gradient-to-color:#c6f6d5}.to-green-300{--gradient-to-color:#9ae6b4}.to-green-400{--gradient-to-color:#68d391}.to-green-500{--gradient-to-color:#48bb78}.to-green-600{--gradient-to-color:#38a169}.to-green-700{--gradient-to-color:#2f855a}.to-green-800{--gradient-to-color:#276749}.to-green-900{--gradient-to-color:#22543d}.to-teal-100{--gradient-to-color:#e6fffa}.to-teal-200{--gradient-to-color:#b2f5ea}.to-teal-300{--gradient-to-color:#81e6d9}.to-teal-400{--gradient-to-color:#4fd1c5}.to-teal-500{--gradient-to-color:#38b2ac}.to-teal-600{--gradient-to-color:#319795}.to-teal-700{--gradient-to-color:#2c7a7b}.to-teal-800{--gradient-to-color:#285e61}.to-teal-900{--gradient-to-color:#234e52}.to-blue-100{--gradient-to-color:#ebf8ff}.to-blue-200{--gradient-to-color:#bee3f8}.to-blue-300{--gradient-to-color:#90cdf4}.to-blue-400{--gradient-to-color:#63b3ed}.to-blue-500{--gradient-to-color:#4299e1}.to-blue-600{--gradient-to-color:#3182ce}.to-blue-700{--gradient-to-color:#2b6cb0}.to-blue-800{--gradient-to-color:#2c5282}.to-blue-900{--gradient-to-color:#2a4365}.to-indigo-100{--gradient-to-color:#ebf4ff}.to-indigo-200{--gradient-to-color:#c3dafe}.to-indigo-300{--gradient-to-color:#a3bffa}.to-indigo-400{--gradient-to-color:#7f9cf5}.to-indigo-500{--gradient-to-color:#667eea}.to-indigo-600{--gradient-to-color:#5a67d8}.to-indigo-700{--gradient-to-color:#4c51bf}.to-indigo-800{--gradient-to-color:#434190}.to-indigo-900{--gradient-to-color:#3c366b}.to-purple-100{--gradient-to-color:#faf5ff}.to-purple-200{--gradient-to-color:#e9d8fd}.to-purple-300{--gradient-to-color:#d6bcfa}.to-purple-400{--gradient-to-color:#b794f4}.to-purple-500{--gradient-to-color:#9f7aea}.to-purple-600{--gradient-to-color:#805ad5}.to-purple-700{--gradient-to-color:#6b46c1}.to-purple-800{--gradient-to-color:#553c9a}.to-purple-900{--gradient-to-color:#44337a}.to-pink-100{--gradient-to-color:#fff5f7}.to-pink-200{--gradient-to-color:#fed7e2}.to-pink-300{--gradient-to-color:#fbb6ce}.to-pink-400{--gradient-to-color:#f687b3}.to-pink-500{--gradient-to-color:#ed64a6}.to-pink-600{--gradient-to-color:#d53f8c}.to-pink-700{--gradient-to-color:#b83280}.to-pink-800{--gradient-to-color:#97266d}.to-pink-900{--gradient-to-color:#702459}.to-primary{--gradient-to-color:#00d1ff}.to-secondary{--gradient-to-color:#e077ff}.to-greenish-blue{--gradient-to-color:#adffed}.to-blue-gray{--gradient-to-color:#cfe1e6}.hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.hover\:to-transparent:hover{--gradient-to-color:transparent}.hover\:to-current:hover{--gradient-to-color:currentColor}.hover\:to-black:hover{--gradient-to-color:#000}.hover\:to-white:hover{--gradient-to-color:#fff}.hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.hover\:to-gray-600:hover{--gradient-to-color:#718096}.hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.hover\:to-red-400:hover{--gradient-to-color:#fc8181}.hover\:to-red-500:hover{--gradient-to-color:#f56565}.hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.hover\:to-red-700:hover{--gradient-to-color:#c53030}.hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.hover\:to-red-900:hover{--gradient-to-color:#742a2a}.hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.hover\:to-orange-700:hover{--gradient-to-color:#c05621}.hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.hover\:to-yellow-100:hover{--gradient-to-color:ivory}.hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.hover\:to-yellow-900:hover{--gradient-to-color:#744210}.hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.hover\:to-green-400:hover{--gradient-to-color:#68d391}.hover\:to-green-500:hover{--gradient-to-color:#48bb78}.hover\:to-green-600:hover{--gradient-to-color:#38a169}.hover\:to-green-700:hover{--gradient-to-color:#2f855a}.hover\:to-green-800:hover{--gradient-to-color:#276749}.hover\:to-green-900:hover{--gradient-to-color:#22543d}.hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.hover\:to-teal-600:hover{--gradient-to-color:#319795}.hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.hover\:to-teal-800:hover{--gradient-to-color:#285e61}.hover\:to-teal-900:hover{--gradient-to-color:#234e52}.hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.hover\:to-indigo-800:hover{--gradient-to-color:#434190}.hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.hover\:to-purple-900:hover{--gradient-to-color:#44337a}.hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.hover\:to-pink-700:hover{--gradient-to-color:#b83280}.hover\:to-pink-800:hover{--gradient-to-color:#97266d}.hover\:to-pink-900:hover{--gradient-to-color:#702459}.hover\:to-primary:hover{--gradient-to-color:#00d1ff}.hover\:to-secondary:hover{--gradient-to-color:#e077ff}.hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.focus\:to-transparent:focus{--gradient-to-color:transparent}.focus\:to-current:focus{--gradient-to-color:currentColor}.focus\:to-black:focus{--gradient-to-color:#000}.focus\:to-white:focus{--gradient-to-color:#fff}.focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.focus\:to-gray-600:focus{--gradient-to-color:#718096}.focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.focus\:to-red-400:focus{--gradient-to-color:#fc8181}.focus\:to-red-500:focus{--gradient-to-color:#f56565}.focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.focus\:to-red-700:focus{--gradient-to-color:#c53030}.focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.focus\:to-red-900:focus{--gradient-to-color:#742a2a}.focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.focus\:to-orange-700:focus{--gradient-to-color:#c05621}.focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.focus\:to-yellow-100:focus{--gradient-to-color:ivory}.focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.focus\:to-yellow-900:focus{--gradient-to-color:#744210}.focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.focus\:to-green-400:focus{--gradient-to-color:#68d391}.focus\:to-green-500:focus{--gradient-to-color:#48bb78}.focus\:to-green-600:focus{--gradient-to-color:#38a169}.focus\:to-green-700:focus{--gradient-to-color:#2f855a}.focus\:to-green-800:focus{--gradient-to-color:#276749}.focus\:to-green-900:focus{--gradient-to-color:#22543d}.focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.focus\:to-teal-600:focus{--gradient-to-color:#319795}.focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.focus\:to-teal-800:focus{--gradient-to-color:#285e61}.focus\:to-teal-900:focus{--gradient-to-color:#234e52}.focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.focus\:to-indigo-800:focus{--gradient-to-color:#434190}.focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.focus\:to-purple-900:focus{--gradient-to-color:#44337a}.focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.focus\:to-pink-700:focus{--gradient-to-color:#b83280}.focus\:to-pink-800:focus{--gradient-to-color:#97266d}.focus\:to-pink-900:focus{--gradient-to-color:#702459}.focus\:to-primary:focus{--gradient-to-color:#00d1ff}.focus\:to-secondary:focus{--gradient-to-color:#e077ff}.focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.bg-opacity-0{--bg-opacity:0}.bg-opacity-25{--bg-opacity:0.25}.bg-opacity-50{--bg-opacity:0.5}.bg-opacity-75{--bg-opacity:0.75}.bg-opacity-100{--bg-opacity:1}.hover\:bg-opacity-0:hover{--bg-opacity:0}.hover\:bg-opacity-25:hover{--bg-opacity:0.25}.hover\:bg-opacity-50:hover{--bg-opacity:0.5}.hover\:bg-opacity-75:hover{--bg-opacity:0.75}.hover\:bg-opacity-100:hover{--bg-opacity:1}.focus\:bg-opacity-0:focus{--bg-opacity:0}.focus\:bg-opacity-25:focus{--bg-opacity:0.25}.focus\:bg-opacity-50:focus{--bg-opacity:0.5}.focus\:bg-opacity-75:focus{--bg-opacity:0.75}.focus\:bg-opacity-100:focus{--bg-opacity:1}.bg-bottom{background-position:bottom}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-left-bottom{background-position:0 100%}.bg-left-top{background-position:0 0}.bg-right{background-position:100%}.bg-right-bottom{background-position:100% 100%}.bg-right-top{background-position:100% 0}.bg-top{background-position:top}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-auto{background-size:auto}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-transparent{border-color:transparent}.border-current{border-color:currentColor}.border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.hover\:border-transparent:hover{border-color:transparent}.hover\:border-current:hover{border-color:currentColor}.hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.focus\:border-transparent:focus{border-color:transparent}.focus\:border-current:focus{border-color:currentColor}.focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.border-opacity-0{--border-opacity:0}.border-opacity-25{--border-opacity:0.25}.border-opacity-50{--border-opacity:0.5}.border-opacity-75{--border-opacity:0.75}.border-opacity-100{--border-opacity:1}.hover\:border-opacity-0:hover{--border-opacity:0}.hover\:border-opacity-25:hover{--border-opacity:0.25}.hover\:border-opacity-50:hover{--border-opacity:0.5}.hover\:border-opacity-75:hover{--border-opacity:0.75}.hover\:border-opacity-100:hover{--border-opacity:1}.focus\:border-opacity-0:focus{--border-opacity:0}.focus\:border-opacity-25:focus{--border-opacity:0.25}.focus\:border-opacity-50:focus{--border-opacity:0.5}.focus\:border-opacity-75:focus{--border-opacity:0.75}.focus\:border-opacity-100:focus{--border-opacity:1}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-t-sm{border-top-left-radius:.125rem}.rounded-r-sm,.rounded-t-sm{border-top-right-radius:.125rem}.rounded-b-sm,.rounded-r-sm{border-bottom-right-radius:.125rem}.rounded-b-sm,.rounded-l-sm{border-bottom-left-radius:.125rem}.rounded-l-sm{border-top-left-radius:.125rem}.rounded-t{border-top-left-radius:.25rem}.rounded-r,.rounded-t{border-top-right-radius:.25rem}.rounded-b,.rounded-r{border-bottom-right-radius:.25rem}.rounded-b,.rounded-l{border-bottom-left-radius:.25rem}.rounded-l{border-top-left-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem}.rounded-r-md,.rounded-t-md{border-top-right-radius:.375rem}.rounded-b-md,.rounded-r-md{border-bottom-right-radius:.375rem}.rounded-b-md,.rounded-l-md{border-bottom-left-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-b-lg,.rounded-l-lg{border-bottom-left-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem}.rounded-r-xl,.rounded-t-xl{border-top-right-radius:.75rem}.rounded-b-xl,.rounded-r-xl{border-bottom-right-radius:.75rem}.rounded-b-xl,.rounded-l-xl{border-bottom-left-radius:.75rem}.rounded-l-xl{border-top-left-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-r-2xl{border-top-right-radius:1rem}.rounded-b-2xl,.rounded-r-2xl{border-bottom-right-radius:1rem}.rounded-b-2xl,.rounded-l-2xl{border-bottom-left-radius:1rem}.rounded-l-2xl{border-top-left-radius:1rem}.rounded-t-3xl{border-top-left-radius:1.5rem}.rounded-r-3xl,.rounded-t-3xl{border-top-right-radius:1.5rem}.rounded-b-3xl,.rounded-r-3xl{border-bottom-right-radius:1.5rem}.rounded-b-3xl,.rounded-l-3xl{border-bottom-left-radius:1.5rem}.rounded-l-3xl{border-top-left-radius:1.5rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-r-full{border-top-right-radius:9999px}.rounded-b-full,.rounded-r-full{border-bottom-right-radius:9999px}.rounded-b-full,.rounded-l-full{border-bottom-left-radius:9999px}.rounded-l-full{border-top-left-radius:9999px}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.rounded-bl-none{border-bottom-left-radius:0}.rounded-tl-sm{border-top-left-radius:.125rem}.rounded-tr-sm{border-top-right-radius:.125rem}.rounded-br-sm{border-bottom-right-radius:.125rem}.rounded-bl-sm{border-bottom-left-radius:.125rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-tl-md{border-top-left-radius:.375rem}.rounded-tr-md{border-top-right-radius:.375rem}.rounded-br-md{border-bottom-right-radius:.375rem}.rounded-bl-md{border-bottom-left-radius:.375rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl-xl{border-top-left-radius:.75rem}.rounded-tr-xl{border-top-right-radius:.75rem}.rounded-br-xl{border-bottom-right-radius:.75rem}.rounded-bl-xl{border-bottom-left-radius:.75rem}.rounded-tl-2xl{border-top-left-radius:1rem}.rounded-tr-2xl{border-top-right-radius:1rem}.rounded-br-2xl{border-bottom-right-radius:1rem}.rounded-bl-2xl{border-bottom-left-radius:1rem}.rounded-tl-3xl{border-top-left-radius:1.5rem}.rounded-tr-3xl{border-top-right-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-tl-full{border-top-left-radius:9999px}.rounded-tr-full{border-top-right-radius:9999px}.rounded-br-full{border-bottom-right-radius:9999px}.rounded-bl-full{border-bottom-left-radius:9999px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-none{border-style:none}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-8{border-width:8px}.border{border-width:1px}.border-t-0{border-top-width:0}.border-r-0{border-right-width:0}.border-b-0{border-bottom-width:0}.border-l-0{border-left-width:0}.border-t-2{border-top-width:2px}.border-r-2{border-right-width:2px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-t-4{border-top-width:4px}.border-r-4{border-right-width:4px}.border-b-4{border-bottom-width:4px}.border-l-4{border-left-width:4px}.border-t-8{border-top-width:8px}.border-r-8{border-right-width:8px}.border-b-8{border-bottom-width:8px}.border-l-8{border-left-width:8px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-no-wrap{flex-wrap:nowrap}.place-items-auto{place-items:auto}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-stretch{place-content:stretch}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.justify-items-auto{justify-items:auto}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow-0{flex-grow:0}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clearfix:after{content:"";display:table;clear:both}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.font-sans{font-family: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}.font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-hairline{font-weight:100}.font-thin{font-weight:200}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-black{font-weight:900}.hover\:font-hairline:hover{font-weight:100}.hover\:font-thin:hover{font-weight:200}.hover\:font-light:hover{font-weight:300}.hover\:font-normal:hover{font-weight:400}.hover\:font-medium:hover{font-weight:500}.hover\:font-semibold:hover{font-weight:600}.hover\:font-bold:hover{font-weight:700}.hover\:font-extrabold:hover{font-weight:800}.hover\:font-black:hover{font-weight:900}.focus\:font-hairline:focus{font-weight:100}.focus\:font-thin:focus{font-weight:200}.focus\:font-light:focus{font-weight:300}.focus\:font-normal:focus{font-weight:400}.focus\:font-medium:focus{font-weight:500}.focus\:font-semibold:focus{font-weight:600}.focus\:font-bold:focus{font-weight:700}.focus\:font-extrabold:focus{font-weight:800}.focus\:font-black:focus{font-weight:900}.h-0{height:0}.h-1{height:.25rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-56{height:14rem}.h-64{height:16rem}.h-auto{height:auto}.h-px{height:1px}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-9{line-height:2.25rem}.leading-10{line-height:2.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-loose{line-height:2}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.m-10{margin:2.5rem}.m-12{margin:3rem}.m-16{margin:4rem}.m-20{margin:5rem}.m-24{margin:6rem}.m-32{margin:8rem}.m-40{margin:10rem}.m-48{margin:12rem}.m-56{margin:14rem}.m-64{margin:16rem}.m-auto{margin:auto}.m-px{margin:1px}.-m-1{margin:-.25rem}.-m-2{margin:-.5rem}.-m-3{margin:-.75rem}.-m-4{margin:-1rem}.-m-5{margin:-1.25rem}.-m-6{margin:-1.5rem}.-m-8{margin:-2rem}.-m-10{margin:-2.5rem}.-m-12{margin:-3rem}.-m-16{margin:-4rem}.-m-20{margin:-5rem}.-m-24{margin:-6rem}.-m-32{margin:-8rem}.-m-40{margin:-10rem}.-m-48{margin:-12rem}.-m-56{margin:-14rem}.-m-64{margin:-16rem}.-m-px{margin:-1px}.my-0{margin-top:0;margin-bottom:0}.mx-0{margin-left:0;margin-right:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mx-12{margin-left:3rem;margin-right:3rem}.my-16{margin-top:4rem;margin-bottom:4rem}.mx-16{margin-left:4rem;margin-right:4rem}.my-20{margin-top:5rem;margin-bottom:5rem}.mx-20{margin-left:5rem;margin-right:5rem}.my-24{margin-top:6rem;margin-bottom:6rem}.mx-24{margin-left:6rem;margin-right:6rem}.my-32{margin-top:8rem;margin-bottom:8rem}.mx-32{margin-left:8rem;margin-right:8rem}.my-40{margin-top:10rem;margin-bottom:10rem}.mx-40{margin-left:10rem;margin-right:10rem}.my-48{margin-top:12rem;margin-bottom:12rem}.mx-48{margin-left:12rem;margin-right:12rem}.my-56{margin-top:14rem;margin-bottom:14rem}.mx-56{margin-left:14rem;margin-right:14rem}.my-64{margin-top:16rem;margin-bottom:16rem}.mx-64{margin-left:16rem;margin-right:16rem}.my-auto{margin-top:auto;margin-bottom:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-px{margin-top:1px;margin-bottom:1px}.mx-px{margin-left:1px;margin-right:1px}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-8{margin-top:-2rem;margin-bottom:-2rem}.-mx-8{margin-left:-2rem;margin-right:-2rem}.-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.-my-12{margin-top:-3rem;margin-bottom:-3rem}.-mx-12{margin-left:-3rem;margin-right:-3rem}.-my-16{margin-top:-4rem;margin-bottom:-4rem}.-mx-16{margin-left:-4rem;margin-right:-4rem}.-my-20{margin-top:-5rem;margin-bottom:-5rem}.-mx-20{margin-left:-5rem;margin-right:-5rem}.-my-24{margin-top:-6rem;margin-bottom:-6rem}.-mx-24{margin-left:-6rem;margin-right:-6rem}.-my-32{margin-top:-8rem;margin-bottom:-8rem}.-mx-32{margin-left:-8rem;margin-right:-8rem}.-my-40{margin-top:-10rem;margin-bottom:-10rem}.-mx-40{margin-left:-10rem;margin-right:-10rem}.-my-48{margin-top:-12rem;margin-bottom:-12rem}.-mx-48{margin-left:-12rem;margin-right:-12rem}.-my-56{margin-top:-14rem;margin-bottom:-14rem}.-mx-56{margin-left:-14rem;margin-right:-14rem}.-my-64{margin-top:-16rem;margin-bottom:-16rem}.-mx-64{margin-left:-16rem;margin-right:-16rem}.-my-px{margin-top:-1px;margin-bottom:-1px}.-mx-px{margin-left:-1px;margin-right:-1px}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.mt-12{margin-top:3rem}.mr-12{margin-right:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.mb-16{margin-bottom:4rem}.ml-16{margin-left:4rem}.mt-20{margin-top:5rem}.mr-20{margin-right:5rem}.mb-20{margin-bottom:5rem}.ml-20{margin-left:5rem}.mt-24{margin-top:6rem}.mr-24{margin-right:6rem}.mb-24{margin-bottom:6rem}.ml-24{margin-left:6rem}.mt-32{margin-top:8rem}.mr-32{margin-right:8rem}.mb-32{margin-bottom:8rem}.ml-32{margin-left:8rem}.mt-40{margin-top:10rem}.mr-40{margin-right:10rem}.mb-40{margin-bottom:10rem}.ml-40{margin-left:10rem}.mt-48{margin-top:12rem}.mr-48{margin-right:12rem}.mb-48{margin-bottom:12rem}.ml-48{margin-left:12rem}.mt-56{margin-top:14rem}.mr-56{margin-right:14rem}.mb-56{margin-bottom:14rem}.ml-56{margin-left:14rem}.mt-64{margin-top:16rem}.mr-64{margin-right:16rem}.mb-64{margin-bottom:16rem}.ml-64{margin-left:16rem}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mt-px{margin-top:1px}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.ml-px{margin-left:1px}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-ml-1{margin-left:-.25rem}.-mt-2{margin-top:-.5rem}.-mr-2{margin-right:-.5rem}.-mb-2{margin-bottom:-.5rem}.-ml-2{margin-left:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-3{margin-bottom:-.75rem}.-ml-3{margin-left:-.75rem}.-mt-4{margin-top:-1rem}.-mr-4{margin-right:-1rem}.-mb-4{margin-bottom:-1rem}.-ml-4{margin-left:-1rem}.-mt-5{margin-top:-1.25rem}.-mr-5{margin-right:-1.25rem}.-mb-5{margin-bottom:-1.25rem}.-ml-5{margin-left:-1.25rem}.-mt-6{margin-top:-1.5rem}.-mr-6{margin-right:-1.5rem}.-mb-6{margin-bottom:-1.5rem}.-ml-6{margin-left:-1.5rem}.-mt-8{margin-top:-2rem}.-mr-8{margin-right:-2rem}.-mb-8{margin-bottom:-2rem}.-ml-8{margin-left:-2rem}.-mt-10{margin-top:-2.5rem}.-mr-10{margin-right:-2.5rem}.-mb-10{margin-bottom:-2.5rem}.-ml-10{margin-left:-2.5rem}.-mt-12{margin-top:-3rem}.-mr-12{margin-right:-3rem}.-mb-12{margin-bottom:-3rem}.-ml-12{margin-left:-3rem}.-mt-16{margin-top:-4rem}.-mr-16{margin-right:-4rem}.-mb-16{margin-bottom:-4rem}.-ml-16{margin-left:-4rem}.-mt-20{margin-top:-5rem}.-mr-20{margin-right:-5rem}.-mb-20{margin-bottom:-5rem}.-ml-20{margin-left:-5rem}.-mt-24{margin-top:-6rem}.-mr-24{margin-right:-6rem}.-mb-24{margin-bottom:-6rem}.-ml-24{margin-left:-6rem}.-mt-32{margin-top:-8rem}.-mr-32{margin-right:-8rem}.-mb-32{margin-bottom:-8rem}.-ml-32{margin-left:-8rem}.-mt-40{margin-top:-10rem}.-mr-40{margin-right:-10rem}.-mb-40{margin-bottom:-10rem}.-ml-40{margin-left:-10rem}.-mt-48{margin-top:-12rem}.-mr-48{margin-right:-12rem}.-mb-48{margin-bottom:-12rem}.-ml-48{margin-left:-12rem}.-mt-56{margin-top:-14rem}.-mr-56{margin-right:-14rem}.-mb-56{margin-bottom:-14rem}.-ml-56{margin-left:-14rem}.-mt-64{margin-top:-16rem}.-mr-64{margin-right:-16rem}.-mb-64{margin-bottom:-16rem}.-ml-64{margin-left:-16rem}.-mt-px{margin-top:-1px}.-mr-px{margin-right:-1px}.-mb-px{margin-bottom:-1px}.-ml-px{margin-left:-1px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-screen-xs{max-width:360px}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.max-w-screen-xxl{max-width:1480px}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.object-left-top{-o-object-position:left top;object-position:left top}.object-right{-o-object-position:right;object-position:right}.object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.object-right-top{-o-object-position:right top;object-position:right top}.object-top{-o-object-position:top;object-position:top}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.hover\:opacity-0:hover{opacity:0}.hover\:opacity-25:hover{opacity:.25}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-75:hover{opacity:.75}.hover\:opacity-100:hover{opacity:1}.focus\:opacity-0:focus{opacity:0}.focus\:opacity-25:focus{opacity:.25}.focus\:opacity-50:focus{opacity:.5}.focus\:opacity-75:focus{opacity:.75}.focus\:opacity-100:focus{opacity:1}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline-white{outline:2px dotted #fff;outline-offset:2px}.outline-black{outline:2px dotted #000;outline-offset:2px}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.scrolling-touch{-webkit-overflow-scrolling:touch}.scrolling-auto{-webkit-overflow-scrolling:auto}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-20{padding:5rem}.p-24{padding:6rem}.p-32{padding:8rem}.p-40{padding:10rem}.p-48{padding:12rem}.p-56{padding:14rem}.p-64{padding:16rem}.p-px{padding:1px}.py-0{padding-top:0;padding-bottom:0}.px-0{padding-left:0;padding-right:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.px-8{padding-left:2rem;padding-right:2rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.px-16{padding-left:4rem;padding-right:4rem}.py-20{padding-top:5rem;padding-bottom:5rem}.px-20{padding-left:5rem;padding-right:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.px-24{padding-left:6rem;padding-right:6rem}.py-32{padding-top:8rem;padding-bottom:8rem}.px-32{padding-left:8rem;padding-right:8rem}.py-40{padding-top:10rem;padding-bottom:10rem}.px-40{padding-left:10rem;padding-right:10rem}.py-48{padding-top:12rem;padding-bottom:12rem}.px-48{padding-left:12rem;padding-right:12rem}.py-56{padding-top:14rem;padding-bottom:14rem}.px-56{padding-left:14rem;padding-right:14rem}.py-64{padding-top:16rem;padding-bottom:16rem}.px-64{padding-left:16rem;padding-right:16rem}.py-px{padding-top:1px;padding-bottom:1px}.px-px{padding-left:1px;padding-right:1px}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-8{padding-top:2rem}.pr-8{padding-right:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pb-10{padding-bottom:2.5rem}.pl-10{padding-left:2.5rem}.pt-12{padding-top:3rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-12{padding-left:3rem}.pt-16{padding-top:4rem}.pr-16{padding-right:4rem}.pb-16{padding-bottom:4rem}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pr-20{padding-right:5rem}.pb-20{padding-bottom:5rem}.pl-20{padding-left:5rem}.pt-24{padding-top:6rem}.pr-24{padding-right:6rem}.pb-24{padding-bottom:6rem}.pl-24{padding-left:6rem}.pt-32{padding-top:8rem}.pr-32{padding-right:8rem}.pb-32{padding-bottom:8rem}.pl-32{padding-left:8rem}.pt-40{padding-top:10rem}.pr-40{padding-right:10rem}.pb-40{padding-bottom:10rem}.pl-40{padding-left:10rem}.pt-48{padding-top:12rem}.pr-48{padding-right:12rem}.pb-48{padding-bottom:12rem}.pl-48{padding-left:12rem}.pt-56{padding-top:14rem}.pr-56{padding-right:14rem}.pb-56{padding-bottom:14rem}.pl-56{padding-left:14rem}.pt-64{padding-top:16rem}.pr-64{padding-right:16rem}.pb-64{padding-bottom:16rem}.pl-64{padding-left:16rem}.pt-px{padding-top:1px}.pr-px{padding-right:1px}.pb-px{padding-bottom:1px}.pl-px{padding-left:1px}.placeholder-transparent::placeholder{color:transparent}.placeholder-current::placeholder{color:currentColor}.placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.focus\:placeholder-transparent:focus::placeholder{color:transparent}.focus\:placeholder-current:focus::placeholder{color:currentColor}.focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.placeholder-opacity-0::placeholder{--placeholder-opacity:0}.placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.placeholder-opacity-100::placeholder{--placeholder-opacity:1}.focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-auto{top:auto;right:auto;bottom:auto;left:auto}.inset-y-0{top:0;bottom:0}.inset-x-0{right:0;left:0}.inset-y-auto{top:auto;bottom:auto}.inset-x-auto{right:auto;left:auto}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-auto{top:auto}.right-auto{right:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.shadow-none{box-shadow:none}.hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.hover\:shadow-none:hover{box-shadow:none}.focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.focus\:shadow-none:focus{box-shadow:none}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-0{stroke-width:0}.stroke-1{stroke-width:1}.stroke-2{stroke-width:2}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-transparent{color:transparent}.text-current{color:currentColor}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.hover\:text-transparent:hover{color:transparent}.hover\:text-current:hover{color:currentColor}.hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.focus\:text-transparent:focus{color:transparent}.focus\:text-current:focus{color:currentColor}.focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.text-opacity-0{--text-opacity:0}.text-opacity-25{--text-opacity:0.25}.text-opacity-50{--text-opacity:0.5}.text-opacity-75{--text-opacity:0.75}.text-opacity-100{--text-opacity:1}.hover\:text-opacity-0:hover{--text-opacity:0}.hover\:text-opacity-25:hover{--text-opacity:0.25}.hover\:text-opacity-50:hover{--text-opacity:0.5}.hover\:text-opacity-75:hover{--text-opacity:0.75}.hover\:text-opacity-100:hover{--text-opacity:1}.focus\:text-opacity-0:focus{--text-opacity:0}.focus\:text-opacity-25:focus{--text-opacity:0.25}.focus\:text-opacity-50:focus{--text-opacity:0.5}.focus\:text-opacity-75:focus{--text-opacity:0.75}.focus\:text-opacity-100:focus{--text-opacity:1}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.hover\:line-through:hover{text-decoration:line-through}.hover\:no-underline:hover{text-decoration:none}.focus\:underline:focus{text-decoration:underline}.focus\:line-through:focus{text-decoration:line-through}.focus\:no-underline:focus{text-decoration:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.diagonal-fractions,.lining-nums,.oldstyle-nums,.ordinal,.proportional-nums,.slashed-zero,.stacked-fractions,.tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.normal-nums{font-variant-numeric:normal}.ordinal{--font-variant-numeric-ordinal:ordinal}.slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.lining-nums{--font-variant-numeric-figure:lining-nums}.oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.proportional-nums{--font-variant-numeric-spacing:proportional-nums}.tabular-nums{--font-variant-numeric-spacing:tabular-nums}.diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.tracking-tighter{letter-spacing:-.05em}.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.visible{visibility:visible}.invisible{visibility:hidden}.whitespace-normal{white-space:normal}.whitespace-no-wrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.break-words{word-wrap:break-word;overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-1{width:.25rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.w-auto{width:auto}.w-px{width:1px}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-1\/6{width:16.666667%}.w-2\/6{width:33.333333%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-6\/12{width:50%}.w-7\/12{width:58.333333%}.w-8\/12{width:66.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.gap-0{grid-gap:0;gap:0}.gap-1{grid-gap:.25rem;gap:.25rem}.gap-2{grid-gap:.5rem;gap:.5rem}.gap-3{grid-gap:.75rem;gap:.75rem}.gap-4{grid-gap:1rem;gap:1rem}.gap-5{grid-gap:1.25rem;gap:1.25rem}.gap-6{grid-gap:1.5rem;gap:1.5rem}.gap-8{grid-gap:2rem;gap:2rem}.gap-10{grid-gap:2.5rem;gap:2.5rem}.gap-12{grid-gap:3rem;gap:3rem}.gap-16{grid-gap:4rem;gap:4rem}.gap-20{grid-gap:5rem;gap:5rem}.gap-24{grid-gap:6rem;gap:6rem}.gap-32{grid-gap:8rem;gap:8rem}.gap-40{grid-gap:10rem;gap:10rem}.gap-48{grid-gap:12rem;gap:12rem}.gap-56{grid-gap:14rem;gap:14rem}.gap-64{grid-gap:16rem;gap:16rem}.gap-px{grid-gap:1px;gap:1px}.col-gap-0{grid-column-gap:0;column-gap:0}.col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.col-gap-4{grid-column-gap:1rem;column-gap:1rem}.col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.col-gap-8{grid-column-gap:2rem;column-gap:2rem}.col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.col-gap-12{grid-column-gap:3rem;column-gap:3rem}.col-gap-16{grid-column-gap:4rem;column-gap:4rem}.col-gap-20{grid-column-gap:5rem;column-gap:5rem}.col-gap-24{grid-column-gap:6rem;column-gap:6rem}.col-gap-32{grid-column-gap:8rem;column-gap:8rem}.col-gap-40{grid-column-gap:10rem;column-gap:10rem}.col-gap-48{grid-column-gap:12rem;column-gap:12rem}.col-gap-56{grid-column-gap:14rem;column-gap:14rem}.col-gap-64{grid-column-gap:16rem;column-gap:16rem}.col-gap-px{grid-column-gap:1px;column-gap:1px}.gap-x-0{grid-column-gap:0;column-gap:0}.gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.gap-x-4{grid-column-gap:1rem;column-gap:1rem}.gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{grid-column-gap:2rem;column-gap:2rem}.gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.gap-x-12{grid-column-gap:3rem;column-gap:3rem}.gap-x-16{grid-column-gap:4rem;column-gap:4rem}.gap-x-20{grid-column-gap:5rem;column-gap:5rem}.gap-x-24{grid-column-gap:6rem;column-gap:6rem}.gap-x-32{grid-column-gap:8rem;column-gap:8rem}.gap-x-40{grid-column-gap:10rem;column-gap:10rem}.gap-x-48{grid-column-gap:12rem;column-gap:12rem}.gap-x-56{grid-column-gap:14rem;column-gap:14rem}.gap-x-64{grid-column-gap:16rem;column-gap:16rem}.gap-x-px{grid-column-gap:1px;column-gap:1px}.row-gap-0{grid-row-gap:0;row-gap:0}.row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.row-gap-4{grid-row-gap:1rem;row-gap:1rem}.row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.row-gap-8{grid-row-gap:2rem;row-gap:2rem}.row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.row-gap-12{grid-row-gap:3rem;row-gap:3rem}.row-gap-16{grid-row-gap:4rem;row-gap:4rem}.row-gap-20{grid-row-gap:5rem;row-gap:5rem}.row-gap-24{grid-row-gap:6rem;row-gap:6rem}.row-gap-32{grid-row-gap:8rem;row-gap:8rem}.row-gap-40{grid-row-gap:10rem;row-gap:10rem}.row-gap-48{grid-row-gap:12rem;row-gap:12rem}.row-gap-56{grid-row-gap:14rem;row-gap:14rem}.row-gap-64{grid-row-gap:16rem;row-gap:16rem}.row-gap-px{grid-row-gap:1px;row-gap:1px}.gap-y-0{grid-row-gap:0;row-gap:0}.gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.gap-y-4{grid-row-gap:1rem;row-gap:1rem}.gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.gap-y-8{grid-row-gap:2rem;row-gap:2rem}.gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.gap-y-12{grid-row-gap:3rem;row-gap:3rem}.gap-y-16{grid-row-gap:4rem;row-gap:4rem}.gap-y-20{grid-row-gap:5rem;row-gap:5rem}.gap-y-24{grid-row-gap:6rem;row-gap:6rem}.gap-y-32{grid-row-gap:8rem;row-gap:8rem}.gap-y-40{grid-row-gap:10rem;row-gap:10rem}.gap-y-48{grid-row-gap:12rem;row-gap:12rem}.gap-y-56{grid-row-gap:14rem;row-gap:14rem}.gap-y-64{grid-row-gap:16rem;row-gap:16rem}.gap-y-px{grid-row-gap:1px;row-gap:1px}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.auto-cols-auto{grid-auto-columns:auto}.auto-cols-min{grid-auto-columns:min-content}.auto-cols-max{grid-auto-columns:max-content}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-4{grid-column-start:4}.col-start-5{grid-column-start:5}.col-start-6{grid-column-start:6}.col-start-7{grid-column-start:7}.col-start-8{grid-column-start:8}.col-start-9{grid-column-start:9}.col-start-10{grid-column-start:10}.col-start-11{grid-column-start:11}.col-start-12{grid-column-start:12}.col-start-13{grid-column-start:13}.col-start-auto{grid-column-start:auto}.col-end-1{grid-column-end:1}.col-end-2{grid-column-end:2}.col-end-3{grid-column-end:3}.col-end-4{grid-column-end:4}.col-end-5{grid-column-end:5}.col-end-6{grid-column-end:6}.col-end-7{grid-column-end:7}.col-end-8{grid-column-end:8}.col-end-9{grid-column-end:9}.col-end-10{grid-column-end:10}.col-end-11{grid-column-end:11}.col-end-12{grid-column-end:12}.col-end-13{grid-column-end:13}.col-end-auto{grid-column-end:auto}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-none{grid-template-rows:none}.auto-rows-auto{grid-auto-rows:auto}.auto-rows-min{grid-auto-rows:min-content}.auto-rows-max{grid-auto-rows:max-content}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.row-auto{grid-row:auto}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.row-span-5{grid-row:span 5/span 5}.row-span-6{grid-row:span 6/span 6}.row-span-full{grid-row:1/-1}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.row-start-4{grid-row-start:4}.row-start-5{grid-row-start:5}.row-start-6{grid-row-start:6}.row-start-7{grid-row-start:7}.row-start-auto{grid-row-start:auto}.row-end-1{grid-row-end:1}.row-end-2{grid-row-end:2}.row-end-3{grid-row-end:3}.row-end-4{grid-row-end:4}.row-end-5{grid-row-end:5}.row-end-6{grid-row-end:6}.row-end-7{grid-row-end:7}.row-end-auto{grid-row-end:auto}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.transform-none{transform:none}.origin-center{transform-origin:center}.origin-top{transform-origin:top}.origin-top-right{transform-origin:top right}.origin-right{transform-origin:right}.origin-bottom-right{transform-origin:bottom right}.origin-bottom{transform-origin:bottom}.origin-bottom-left{transform-origin:bottom left}.origin-left{transform-origin:left}.origin-top-left{transform-origin:top left}.scale-0{--transform-scale-x:0;--transform-scale-y:0}.scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.scale-x-0{--transform-scale-x:0}.scale-x-50{--transform-scale-x:.5}.scale-x-75{--transform-scale-x:.75}.scale-x-90{--transform-scale-x:.9}.scale-x-95{--transform-scale-x:.95}.scale-x-100{--transform-scale-x:1}.scale-x-105{--transform-scale-x:1.05}.scale-x-110{--transform-scale-x:1.1}.scale-x-125{--transform-scale-x:1.25}.scale-x-150{--transform-scale-x:1.5}.scale-y-0{--transform-scale-y:0}.scale-y-50{--transform-scale-y:.5}.scale-y-75{--transform-scale-y:.75}.scale-y-90{--transform-scale-y:.9}.scale-y-95{--transform-scale-y:.95}.scale-y-100{--transform-scale-y:1}.scale-y-105{--transform-scale-y:1.05}.scale-y-110{--transform-scale-y:1.1}.scale-y-125{--transform-scale-y:1.25}.scale-y-150{--transform-scale-y:1.5}.hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.hover\:scale-x-0:hover{--transform-scale-x:0}.hover\:scale-x-50:hover{--transform-scale-x:.5}.hover\:scale-x-75:hover{--transform-scale-x:.75}.hover\:scale-x-90:hover{--transform-scale-x:.9}.hover\:scale-x-95:hover{--transform-scale-x:.95}.hover\:scale-x-100:hover{--transform-scale-x:1}.hover\:scale-x-105:hover{--transform-scale-x:1.05}.hover\:scale-x-110:hover{--transform-scale-x:1.1}.hover\:scale-x-125:hover{--transform-scale-x:1.25}.hover\:scale-x-150:hover{--transform-scale-x:1.5}.hover\:scale-y-0:hover{--transform-scale-y:0}.hover\:scale-y-50:hover{--transform-scale-y:.5}.hover\:scale-y-75:hover{--transform-scale-y:.75}.hover\:scale-y-90:hover{--transform-scale-y:.9}.hover\:scale-y-95:hover{--transform-scale-y:.95}.hover\:scale-y-100:hover{--transform-scale-y:1}.hover\:scale-y-105:hover{--transform-scale-y:1.05}.hover\:scale-y-110:hover{--transform-scale-y:1.1}.hover\:scale-y-125:hover{--transform-scale-y:1.25}.hover\:scale-y-150:hover{--transform-scale-y:1.5}.focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.focus\:scale-x-0:focus{--transform-scale-x:0}.focus\:scale-x-50:focus{--transform-scale-x:.5}.focus\:scale-x-75:focus{--transform-scale-x:.75}.focus\:scale-x-90:focus{--transform-scale-x:.9}.focus\:scale-x-95:focus{--transform-scale-x:.95}.focus\:scale-x-100:focus{--transform-scale-x:1}.focus\:scale-x-105:focus{--transform-scale-x:1.05}.focus\:scale-x-110:focus{--transform-scale-x:1.1}.focus\:scale-x-125:focus{--transform-scale-x:1.25}.focus\:scale-x-150:focus{--transform-scale-x:1.5}.focus\:scale-y-0:focus{--transform-scale-y:0}.focus\:scale-y-50:focus{--transform-scale-y:.5}.focus\:scale-y-75:focus{--transform-scale-y:.75}.focus\:scale-y-90:focus{--transform-scale-y:.9}.focus\:scale-y-95:focus{--transform-scale-y:.95}.focus\:scale-y-100:focus{--transform-scale-y:1}.focus\:scale-y-105:focus{--transform-scale-y:1.05}.focus\:scale-y-110:focus{--transform-scale-y:1.1}.focus\:scale-y-125:focus{--transform-scale-y:1.25}.focus\:scale-y-150:focus{--transform-scale-y:1.5}.rotate-0{--transform-rotate:0}.rotate-1{--transform-rotate:1deg}.rotate-2{--transform-rotate:2deg}.rotate-3{--transform-rotate:3deg}.rotate-6{--transform-rotate:6deg}.rotate-12{--transform-rotate:12deg}.rotate-45{--transform-rotate:45deg}.rotate-90{--transform-rotate:90deg}.rotate-180{--transform-rotate:180deg}.-rotate-180{--transform-rotate:-180deg}.-rotate-90{--transform-rotate:-90deg}.-rotate-45{--transform-rotate:-45deg}.-rotate-12{--transform-rotate:-12deg}.-rotate-6{--transform-rotate:-6deg}.-rotate-3{--transform-rotate:-3deg}.-rotate-2{--transform-rotate:-2deg}.-rotate-1{--transform-rotate:-1deg}.hover\:rotate-0:hover{--transform-rotate:0}.hover\:rotate-1:hover{--transform-rotate:1deg}.hover\:rotate-2:hover{--transform-rotate:2deg}.hover\:rotate-3:hover{--transform-rotate:3deg}.hover\:rotate-6:hover{--transform-rotate:6deg}.hover\:rotate-12:hover{--transform-rotate:12deg}.hover\:rotate-45:hover{--transform-rotate:45deg}.hover\:rotate-90:hover{--transform-rotate:90deg}.hover\:rotate-180:hover{--transform-rotate:180deg}.hover\:-rotate-180:hover{--transform-rotate:-180deg}.hover\:-rotate-90:hover{--transform-rotate:-90deg}.hover\:-rotate-45:hover{--transform-rotate:-45deg}.hover\:-rotate-12:hover{--transform-rotate:-12deg}.hover\:-rotate-6:hover{--transform-rotate:-6deg}.hover\:-rotate-3:hover{--transform-rotate:-3deg}.hover\:-rotate-2:hover{--transform-rotate:-2deg}.hover\:-rotate-1:hover{--transform-rotate:-1deg}.focus\:rotate-0:focus{--transform-rotate:0}.focus\:rotate-1:focus{--transform-rotate:1deg}.focus\:rotate-2:focus{--transform-rotate:2deg}.focus\:rotate-3:focus{--transform-rotate:3deg}.focus\:rotate-6:focus{--transform-rotate:6deg}.focus\:rotate-12:focus{--transform-rotate:12deg}.focus\:rotate-45:focus{--transform-rotate:45deg}.focus\:rotate-90:focus{--transform-rotate:90deg}.focus\:rotate-180:focus{--transform-rotate:180deg}.focus\:-rotate-180:focus{--transform-rotate:-180deg}.focus\:-rotate-90:focus{--transform-rotate:-90deg}.focus\:-rotate-45:focus{--transform-rotate:-45deg}.focus\:-rotate-12:focus{--transform-rotate:-12deg}.focus\:-rotate-6:focus{--transform-rotate:-6deg}.focus\:-rotate-3:focus{--transform-rotate:-3deg}.focus\:-rotate-2:focus{--transform-rotate:-2deg}.focus\:-rotate-1:focus{--transform-rotate:-1deg}.translate-x-0{--transform-translate-x:0}.translate-x-1{--transform-translate-x:0.25rem}.translate-x-2{--transform-translate-x:0.5rem}.translate-x-3{--transform-translate-x:0.75rem}.translate-x-4{--transform-translate-x:1rem}.translate-x-5{--transform-translate-x:1.25rem}.translate-x-6{--transform-translate-x:1.5rem}.translate-x-8{--transform-translate-x:2rem}.translate-x-10{--transform-translate-x:2.5rem}.translate-x-12{--transform-translate-x:3rem}.translate-x-16{--transform-translate-x:4rem}.translate-x-20{--transform-translate-x:5rem}.translate-x-24{--transform-translate-x:6rem}.translate-x-32{--transform-translate-x:8rem}.translate-x-40{--transform-translate-x:10rem}.translate-x-48{--transform-translate-x:12rem}.translate-x-56{--transform-translate-x:14rem}.translate-x-64{--transform-translate-x:16rem}.translate-x-px{--transform-translate-x:1px}.-translate-x-1{--transform-translate-x:-0.25rem}.-translate-x-2{--transform-translate-x:-0.5rem}.-translate-x-3{--transform-translate-x:-0.75rem}.-translate-x-4{--transform-translate-x:-1rem}.-translate-x-5{--transform-translate-x:-1.25rem}.-translate-x-6{--transform-translate-x:-1.5rem}.-translate-x-8{--transform-translate-x:-2rem}.-translate-x-10{--transform-translate-x:-2.5rem}.-translate-x-12{--transform-translate-x:-3rem}.-translate-x-16{--transform-translate-x:-4rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-x-24{--transform-translate-x:-6rem}.-translate-x-32{--transform-translate-x:-8rem}.-translate-x-40{--transform-translate-x:-10rem}.-translate-x-48{--transform-translate-x:-12rem}.-translate-x-56{--transform-translate-x:-14rem}.-translate-x-64{--transform-translate-x:-16rem}.-translate-x-px{--transform-translate-x:-1px}.-translate-x-full{--transform-translate-x:-100%}.-translate-x-1\/2{--transform-translate-x:-50%}.translate-x-1\/2{--transform-translate-x:50%}.translate-x-full{--transform-translate-x:100%}.translate-y-0{--transform-translate-y:0}.translate-y-1{--transform-translate-y:0.25rem}.translate-y-2{--transform-translate-y:0.5rem}.translate-y-3{--transform-translate-y:0.75rem}.translate-y-4{--transform-translate-y:1rem}.translate-y-5{--transform-translate-y:1.25rem}.translate-y-6{--transform-translate-y:1.5rem}.translate-y-8{--transform-translate-y:2rem}.translate-y-10{--transform-translate-y:2.5rem}.translate-y-12{--transform-translate-y:3rem}.translate-y-16{--transform-translate-y:4rem}.translate-y-20{--transform-translate-y:5rem}.translate-y-24{--transform-translate-y:6rem}.translate-y-32{--transform-translate-y:8rem}.translate-y-40{--transform-translate-y:10rem}.translate-y-48{--transform-translate-y:12rem}.translate-y-56{--transform-translate-y:14rem}.translate-y-64{--transform-translate-y:16rem}.translate-y-px{--transform-translate-y:1px}.-translate-y-1{--transform-translate-y:-0.25rem}.-translate-y-2{--transform-translate-y:-0.5rem}.-translate-y-3{--transform-translate-y:-0.75rem}.-translate-y-4{--transform-translate-y:-1rem}.-translate-y-5{--transform-translate-y:-1.25rem}.-translate-y-6{--transform-translate-y:-1.5rem}.-translate-y-8{--transform-translate-y:-2rem}.-translate-y-10{--transform-translate-y:-2.5rem}.-translate-y-12{--transform-translate-y:-3rem}.-translate-y-16{--transform-translate-y:-4rem}.-translate-y-20{--transform-translate-y:-5rem}.-translate-y-24{--transform-translate-y:-6rem}.-translate-y-32{--transform-translate-y:-8rem}.-translate-y-40{--transform-translate-y:-10rem}.-translate-y-48{--transform-translate-y:-12rem}.-translate-y-56{--transform-translate-y:-14rem}.-translate-y-64{--transform-translate-y:-16rem}.-translate-y-px{--transform-translate-y:-1px}.-translate-y-full{--transform-translate-y:-100%}.-translate-y-1\/2{--transform-translate-y:-50%}.translate-y-1\/2{--transform-translate-y:50%}.translate-y-full{--transform-translate-y:100%}.hover\:translate-x-0:hover{--transform-translate-x:0}.hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.hover\:translate-x-4:hover{--transform-translate-x:1rem}.hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.hover\:translate-x-8:hover{--transform-translate-x:2rem}.hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.hover\:translate-x-12:hover{--transform-translate-x:3rem}.hover\:translate-x-16:hover{--transform-translate-x:4rem}.hover\:translate-x-20:hover{--transform-translate-x:5rem}.hover\:translate-x-24:hover{--transform-translate-x:6rem}.hover\:translate-x-32:hover{--transform-translate-x:8rem}.hover\:translate-x-40:hover{--transform-translate-x:10rem}.hover\:translate-x-48:hover{--transform-translate-x:12rem}.hover\:translate-x-56:hover{--transform-translate-x:14rem}.hover\:translate-x-64:hover{--transform-translate-x:16rem}.hover\:translate-x-px:hover{--transform-translate-x:1px}.hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.hover\:-translate-x-px:hover{--transform-translate-x:-1px}.hover\:-translate-x-full:hover{--transform-translate-x:-100%}.hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.hover\:translate-x-full:hover{--transform-translate-x:100%}.hover\:translate-y-0:hover{--transform-translate-y:0}.hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.hover\:translate-y-4:hover{--transform-translate-y:1rem}.hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.hover\:translate-y-8:hover{--transform-translate-y:2rem}.hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.hover\:translate-y-12:hover{--transform-translate-y:3rem}.hover\:translate-y-16:hover{--transform-translate-y:4rem}.hover\:translate-y-20:hover{--transform-translate-y:5rem}.hover\:translate-y-24:hover{--transform-translate-y:6rem}.hover\:translate-y-32:hover{--transform-translate-y:8rem}.hover\:translate-y-40:hover{--transform-translate-y:10rem}.hover\:translate-y-48:hover{--transform-translate-y:12rem}.hover\:translate-y-56:hover{--transform-translate-y:14rem}.hover\:translate-y-64:hover{--transform-translate-y:16rem}.hover\:translate-y-px:hover{--transform-translate-y:1px}.hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.hover\:-translate-y-px:hover{--transform-translate-y:-1px}.hover\:-translate-y-full:hover{--transform-translate-y:-100%}.hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.hover\:translate-y-full:hover{--transform-translate-y:100%}.focus\:translate-x-0:focus{--transform-translate-x:0}.focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.focus\:translate-x-4:focus{--transform-translate-x:1rem}.focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.focus\:translate-x-8:focus{--transform-translate-x:2rem}.focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.focus\:translate-x-12:focus{--transform-translate-x:3rem}.focus\:translate-x-16:focus{--transform-translate-x:4rem}.focus\:translate-x-20:focus{--transform-translate-x:5rem}.focus\:translate-x-24:focus{--transform-translate-x:6rem}.focus\:translate-x-32:focus{--transform-translate-x:8rem}.focus\:translate-x-40:focus{--transform-translate-x:10rem}.focus\:translate-x-48:focus{--transform-translate-x:12rem}.focus\:translate-x-56:focus{--transform-translate-x:14rem}.focus\:translate-x-64:focus{--transform-translate-x:16rem}.focus\:translate-x-px:focus{--transform-translate-x:1px}.focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.focus\:-translate-x-px:focus{--transform-translate-x:-1px}.focus\:-translate-x-full:focus{--transform-translate-x:-100%}.focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.focus\:translate-x-full:focus{--transform-translate-x:100%}.focus\:translate-y-0:focus{--transform-translate-y:0}.focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.focus\:translate-y-4:focus{--transform-translate-y:1rem}.focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.focus\:translate-y-8:focus{--transform-translate-y:2rem}.focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.focus\:translate-y-12:focus{--transform-translate-y:3rem}.focus\:translate-y-16:focus{--transform-translate-y:4rem}.focus\:translate-y-20:focus{--transform-translate-y:5rem}.focus\:translate-y-24:focus{--transform-translate-y:6rem}.focus\:translate-y-32:focus{--transform-translate-y:8rem}.focus\:translate-y-40:focus{--transform-translate-y:10rem}.focus\:translate-y-48:focus{--transform-translate-y:12rem}.focus\:translate-y-56:focus{--transform-translate-y:14rem}.focus\:translate-y-64:focus{--transform-translate-y:16rem}.focus\:translate-y-px:focus{--transform-translate-y:1px}.focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.focus\:-translate-y-px:focus{--transform-translate-y:-1px}.focus\:-translate-y-full:focus{--transform-translate-y:-100%}.focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.focus\:translate-y-full:focus{--transform-translate-y:100%}.skew-x-0{--transform-skew-x:0}.skew-x-1{--transform-skew-x:1deg}.skew-x-2{--transform-skew-x:2deg}.skew-x-3{--transform-skew-x:3deg}.skew-x-6{--transform-skew-x:6deg}.skew-x-12{--transform-skew-x:12deg}.-skew-x-12{--transform-skew-x:-12deg}.-skew-x-6{--transform-skew-x:-6deg}.-skew-x-3{--transform-skew-x:-3deg}.-skew-x-2{--transform-skew-x:-2deg}.-skew-x-1{--transform-skew-x:-1deg}.skew-y-0{--transform-skew-y:0}.skew-y-1{--transform-skew-y:1deg}.skew-y-2{--transform-skew-y:2deg}.skew-y-3{--transform-skew-y:3deg}.skew-y-6{--transform-skew-y:6deg}.skew-y-12{--transform-skew-y:12deg}.-skew-y-12{--transform-skew-y:-12deg}.-skew-y-6{--transform-skew-y:-6deg}.-skew-y-3{--transform-skew-y:-3deg}.-skew-y-2{--transform-skew-y:-2deg}.-skew-y-1{--transform-skew-y:-1deg}.hover\:skew-x-0:hover{--transform-skew-x:0}.hover\:skew-x-1:hover{--transform-skew-x:1deg}.hover\:skew-x-2:hover{--transform-skew-x:2deg}.hover\:skew-x-3:hover{--transform-skew-x:3deg}.hover\:skew-x-6:hover{--transform-skew-x:6deg}.hover\:skew-x-12:hover{--transform-skew-x:12deg}.hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.hover\:skew-y-0:hover{--transform-skew-y:0}.hover\:skew-y-1:hover{--transform-skew-y:1deg}.hover\:skew-y-2:hover{--transform-skew-y:2deg}.hover\:skew-y-3:hover{--transform-skew-y:3deg}.hover\:skew-y-6:hover{--transform-skew-y:6deg}.hover\:skew-y-12:hover{--transform-skew-y:12deg}.hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.focus\:skew-x-0:focus{--transform-skew-x:0}.focus\:skew-x-1:focus{--transform-skew-x:1deg}.focus\:skew-x-2:focus{--transform-skew-x:2deg}.focus\:skew-x-3:focus{--transform-skew-x:3deg}.focus\:skew-x-6:focus{--transform-skew-x:6deg}.focus\:skew-x-12:focus{--transform-skew-x:12deg}.focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.focus\:skew-y-0:focus{--transform-skew-y:0}.focus\:skew-y-1:focus{--transform-skew-y:1deg}.focus\:skew-y-2:focus{--transform-skew-y:2deg}.focus\:skew-y-3:focus{--transform-skew-y:3deg}.focus\:skew-y-6:focus{--transform-skew-y:6deg}.focus\:skew-y-12:focus{--transform-skew-y:12deg}.focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.transition-none{transition-property:none}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.transition-opacity{transition-property:opacity}.transition-shadow{transition-property:box-shadow}.transition-transform{transition-property:transform}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-1000{transition-duration:1s}.delay-75{transition-delay:75ms}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.delay-1000{transition-delay:1s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-none{animation:none}.animate-spin{animation:spin 1s linear infinite}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}body{font-family:HK Grotesk,sans-serif;max-width:1920px;margin:0 auto;color:#000}.navbar{border-bottom:1px solid #f8f8f8;color:#000}.navbar .site-name{display:none}.dropdown-wrapper .dropdown-title{pointer-events:none}@media (max-width:720px){.dropdown-wrapper .dropdown-title{pointer-events:auto;outline:none}}.dropdown-wrapper span{color:#000}.theme-default-content:not(.custom){max-width:992px!important}img.logo{padding-left:10px}h1,h2,h3,p>span{font-weight:700;color:#000}.custom-block.tip{background-color:#f3f5f7}.bg-circle-right{position:relative}.bg-circle-right:before{content:"";position:absolute;top:10%;left:60%;transform:translate(-20%);width:30rem;height:30rem;background-color:#00d1ff;border-radius:50%;filter:blur(8.4375rem);-webkit-filter:blur(8.4375rem);mix-blend-mode:darken}.bg-circle-left{position:relative}.bg-circle-left:before{content:"";position:absolute;top:20%;left:40%;transform:translate(-80%);width:30rem;height:30rem;background-color:#e077ff;border-radius:50%;filter:blur(8.4375rem);-webkit-filter:blur(8.4375rem);mix-blend-mode:darken}@media (min-width:360px){.xs\:container{width:100%;max-width:360px}@media (min-width:640px){.xs\:container{max-width:640px}}@media (min-width:768px){.xs\:container{max-width:768px}}@media (min-width:1024px){.xs\:container{max-width:1024px}}@media (min-width:1280px){.xs\:container{max-width:1280px}}@media (min-width:1480px){.xs\:container{max-width:1480px}}.xs\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xs\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xs\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xs\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xs\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xs\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xs\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xs\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xs\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xs\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xs\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xs\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xs\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xs\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xs\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xs\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xs\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xs\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xs\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xs\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xs\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xs\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xs\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xs\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xs\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xs\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xs\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xs\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xs\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xs\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xs\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xs\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xs\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xs\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xs\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xs\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xs\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xs\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xs\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xs\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xs\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xs\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xs\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xs\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xs\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xs\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xs\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xs\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xs\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xs\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xs\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xs\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xs\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xs\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xs\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xs\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xs\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xs\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xs\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xs\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xs\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xs\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xs\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xs\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xs\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xs\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xs\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xs\:divide-current>:not(template)~:not(template){border-color:currentColor}.xs\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xs\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xs\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xs\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xs\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xs\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xs\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xs\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xs\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xs\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xs\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xs\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xs\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xs\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xs\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xs\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xs\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xs\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xs\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xs\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xs\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xs\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xs\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xs\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xs\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xs\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xs\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xs\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xs\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xs\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xs\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xs\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xs\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xs\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xs\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xs\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xs\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xs\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xs\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xs\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xs\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xs\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xs\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xs\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xs\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xs\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xs\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xs\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xs\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xs\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xs\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xs\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xs\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xs\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xs\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xs\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xs\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xs\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xs\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xs\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xs\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xs\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xs\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xs\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xs\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xs\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xs\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xs\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xs\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xs\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xs\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xs\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xs\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xs\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xs\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xs\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xs\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xs\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xs\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xs\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xs\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xs\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xs\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xs\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xs\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xs\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xs\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xs\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xs\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xs\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xs\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xs\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xs\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xs\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xs\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xs\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xs\:divide-solid>:not(template)~:not(template){border-style:solid}.xs\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xs\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xs\:divide-double>:not(template)~:not(template){border-style:double}.xs\:divide-none>:not(template)~:not(template){border-style:none}.xs\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xs\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xs\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xs\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xs\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xs\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xs\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xs\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xs\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xs\:appearance-none{-webkit-appearance:none;appearance:none}.xs\:bg-fixed{background-attachment:fixed}.xs\:bg-local{background-attachment:local}.xs\:bg-scroll{background-attachment:scroll}.xs\:bg-clip-border{background-clip:border-box}.xs\:bg-clip-padding{background-clip:padding-box}.xs\:bg-clip-content{background-clip:content-box}.xs\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xs\:bg-transparent{background-color:transparent}.xs\:bg-current{background-color:currentColor}.xs\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:hover\:bg-transparent:hover{background-color:transparent}.xs\:hover\:bg-current:hover{background-color:currentColor}.xs\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:focus\:bg-transparent:focus{background-color:transparent}.xs\:focus\:bg-current:focus{background-color:currentColor}.xs\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xs\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xs\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xs\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xs\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xs\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xs\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xs\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xs\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xs\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xs\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xs\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xs\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xs\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xs\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xs\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xs\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xs\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xs\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xs\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xs\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xs\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xs\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xs\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xs\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xs\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xs\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xs\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xs\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xs\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xs\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xs\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xs\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xs\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xs\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xs\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xs\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xs\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xs\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xs\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xs\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xs\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xs\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xs\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xs\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xs\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xs\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xs\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xs\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xs\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xs\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xs\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xs\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xs\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xs\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xs\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xs\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xs\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xs\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xs\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xs\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xs\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xs\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xs\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xs\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xs\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xs\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xs\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xs\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xs\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xs\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xs\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xs\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xs\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xs\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xs\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xs\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xs\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xs\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xs\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xs\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xs\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xs\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xs\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xs\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xs\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xs\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xs\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xs\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xs\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xs\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xs\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xs\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xs\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xs\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xs\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xs\:bg-none{background-image:none}.xs\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xs\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xs\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xs\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xs\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xs\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:to-transparent{--gradient-to-color:transparent}.xs\:to-current{--gradient-to-color:currentColor}.xs\:to-black{--gradient-to-color:#000}.xs\:to-white{--gradient-to-color:#fff}.xs\:to-gray-100{--gradient-to-color:#f7fafc}.xs\:to-gray-200{--gradient-to-color:#edf2f7}.xs\:to-gray-300{--gradient-to-color:#e2e8f0}.xs\:to-gray-400{--gradient-to-color:#cbd5e0}.xs\:to-gray-500{--gradient-to-color:#a0aec0}.xs\:to-gray-600{--gradient-to-color:#718096}.xs\:to-gray-700{--gradient-to-color:#4a5568}.xs\:to-gray-800{--gradient-to-color:#2d3748}.xs\:to-gray-900{--gradient-to-color:#1a202c}.xs\:to-red-100{--gradient-to-color:#fff5f5}.xs\:to-red-200{--gradient-to-color:#fed7d7}.xs\:to-red-300{--gradient-to-color:#feb2b2}.xs\:to-red-400{--gradient-to-color:#fc8181}.xs\:to-red-500{--gradient-to-color:#f56565}.xs\:to-red-600{--gradient-to-color:#e53e3e}.xs\:to-red-700{--gradient-to-color:#c53030}.xs\:to-red-800{--gradient-to-color:#9b2c2c}.xs\:to-red-900{--gradient-to-color:#742a2a}.xs\:to-orange-100{--gradient-to-color:#fffaf0}.xs\:to-orange-200{--gradient-to-color:#feebc8}.xs\:to-orange-300{--gradient-to-color:#fbd38d}.xs\:to-orange-400{--gradient-to-color:#f6ad55}.xs\:to-orange-500{--gradient-to-color:#ed8936}.xs\:to-orange-600{--gradient-to-color:#dd6b20}.xs\:to-orange-700{--gradient-to-color:#c05621}.xs\:to-orange-800{--gradient-to-color:#9c4221}.xs\:to-orange-900{--gradient-to-color:#7b341e}.xs\:to-yellow-100{--gradient-to-color:ivory}.xs\:to-yellow-200{--gradient-to-color:#fefcbf}.xs\:to-yellow-300{--gradient-to-color:#faf089}.xs\:to-yellow-400{--gradient-to-color:#f6e05e}.xs\:to-yellow-500{--gradient-to-color:#ecc94b}.xs\:to-yellow-600{--gradient-to-color:#d69e2e}.xs\:to-yellow-700{--gradient-to-color:#b7791f}.xs\:to-yellow-800{--gradient-to-color:#975a16}.xs\:to-yellow-900{--gradient-to-color:#744210}.xs\:to-green-100{--gradient-to-color:#f0fff4}.xs\:to-green-200{--gradient-to-color:#c6f6d5}.xs\:to-green-300{--gradient-to-color:#9ae6b4}.xs\:to-green-400{--gradient-to-color:#68d391}.xs\:to-green-500{--gradient-to-color:#48bb78}.xs\:to-green-600{--gradient-to-color:#38a169}.xs\:to-green-700{--gradient-to-color:#2f855a}.xs\:to-green-800{--gradient-to-color:#276749}.xs\:to-green-900{--gradient-to-color:#22543d}.xs\:to-teal-100{--gradient-to-color:#e6fffa}.xs\:to-teal-200{--gradient-to-color:#b2f5ea}.xs\:to-teal-300{--gradient-to-color:#81e6d9}.xs\:to-teal-400{--gradient-to-color:#4fd1c5}.xs\:to-teal-500{--gradient-to-color:#38b2ac}.xs\:to-teal-600{--gradient-to-color:#319795}.xs\:to-teal-700{--gradient-to-color:#2c7a7b}.xs\:to-teal-800{--gradient-to-color:#285e61}.xs\:to-teal-900{--gradient-to-color:#234e52}.xs\:to-blue-100{--gradient-to-color:#ebf8ff}.xs\:to-blue-200{--gradient-to-color:#bee3f8}.xs\:to-blue-300{--gradient-to-color:#90cdf4}.xs\:to-blue-400{--gradient-to-color:#63b3ed}.xs\:to-blue-500{--gradient-to-color:#4299e1}.xs\:to-blue-600{--gradient-to-color:#3182ce}.xs\:to-blue-700{--gradient-to-color:#2b6cb0}.xs\:to-blue-800{--gradient-to-color:#2c5282}.xs\:to-blue-900{--gradient-to-color:#2a4365}.xs\:to-indigo-100{--gradient-to-color:#ebf4ff}.xs\:to-indigo-200{--gradient-to-color:#c3dafe}.xs\:to-indigo-300{--gradient-to-color:#a3bffa}.xs\:to-indigo-400{--gradient-to-color:#7f9cf5}.xs\:to-indigo-500{--gradient-to-color:#667eea}.xs\:to-indigo-600{--gradient-to-color:#5a67d8}.xs\:to-indigo-700{--gradient-to-color:#4c51bf}.xs\:to-indigo-800{--gradient-to-color:#434190}.xs\:to-indigo-900{--gradient-to-color:#3c366b}.xs\:to-purple-100{--gradient-to-color:#faf5ff}.xs\:to-purple-200{--gradient-to-color:#e9d8fd}.xs\:to-purple-300{--gradient-to-color:#d6bcfa}.xs\:to-purple-400{--gradient-to-color:#b794f4}.xs\:to-purple-500{--gradient-to-color:#9f7aea}.xs\:to-purple-600{--gradient-to-color:#805ad5}.xs\:to-purple-700{--gradient-to-color:#6b46c1}.xs\:to-purple-800{--gradient-to-color:#553c9a}.xs\:to-purple-900{--gradient-to-color:#44337a}.xs\:to-pink-100{--gradient-to-color:#fff5f7}.xs\:to-pink-200{--gradient-to-color:#fed7e2}.xs\:to-pink-300{--gradient-to-color:#fbb6ce}.xs\:to-pink-400{--gradient-to-color:#f687b3}.xs\:to-pink-500{--gradient-to-color:#ed64a6}.xs\:to-pink-600{--gradient-to-color:#d53f8c}.xs\:to-pink-700{--gradient-to-color:#b83280}.xs\:to-pink-800{--gradient-to-color:#97266d}.xs\:to-pink-900{--gradient-to-color:#702459}.xs\:to-primary{--gradient-to-color:#00d1ff}.xs\:to-secondary{--gradient-to-color:#e077ff}.xs\:to-greenish-blue{--gradient-to-color:#adffed}.xs\:to-blue-gray{--gradient-to-color:#cfe1e6}.xs\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xs\:hover\:to-current:hover{--gradient-to-color:currentColor}.xs\:hover\:to-black:hover{--gradient-to-color:#000}.xs\:hover\:to-white:hover{--gradient-to-color:#fff}.xs\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xs\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xs\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xs\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xs\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xs\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xs\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xs\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xs\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xs\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xs\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xs\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xs\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xs\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xs\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xs\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xs\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xs\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xs\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xs\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xs\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xs\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xs\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xs\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xs\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xs\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xs\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xs\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xs\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xs\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xs\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xs\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xs\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xs\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xs\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xs\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xs\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xs\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xs\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xs\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xs\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xs\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xs\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xs\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xs\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xs\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xs\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xs\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xs\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xs\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xs\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xs\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xs\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xs\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xs\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xs\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xs\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xs\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xs\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xs\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xs\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xs\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xs\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xs\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xs\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xs\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xs\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xs\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xs\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xs\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xs\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xs\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xs\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xs\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xs\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xs\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xs\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xs\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xs\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xs\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xs\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xs\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xs\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xs\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xs\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xs\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xs\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xs\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xs\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xs\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xs\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xs\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xs\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xs\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xs\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xs\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xs\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xs\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xs\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xs\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xs\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xs\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xs\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xs\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xs\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xs\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xs\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xs\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xs\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xs\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xs\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xs\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xs\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xs\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xs\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xs\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xs\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xs\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xs\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xs\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xs\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xs\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xs\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xs\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xs\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xs\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xs\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xs\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xs\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xs\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xs\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xs\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xs\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xs\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xs\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xs\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xs\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xs\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xs\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xs\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xs\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xs\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xs\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xs\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xs\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xs\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xs\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xs\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xs\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xs\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xs\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xs\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xs\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xs\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xs\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xs\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xs\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xs\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xs\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xs\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xs\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xs\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xs\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xs\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xs\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xs\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xs\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xs\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xs\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xs\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xs\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xs\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xs\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xs\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xs\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xs\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xs\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xs\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xs\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xs\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xs\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xs\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xs\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xs\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xs\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xs\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xs\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xs\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xs\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xs\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xs\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xs\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xs\:focus\:to-current:focus{--gradient-to-color:currentColor}.xs\:focus\:to-black:focus{--gradient-to-color:#000}.xs\:focus\:to-white:focus{--gradient-to-color:#fff}.xs\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xs\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xs\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xs\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xs\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xs\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xs\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xs\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xs\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xs\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xs\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xs\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xs\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xs\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xs\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xs\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xs\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xs\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xs\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xs\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xs\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xs\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xs\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xs\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xs\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xs\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xs\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xs\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xs\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xs\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xs\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xs\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xs\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xs\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xs\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xs\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xs\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xs\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xs\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xs\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xs\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xs\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xs\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xs\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xs\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xs\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xs\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xs\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xs\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xs\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xs\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xs\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xs\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xs\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xs\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xs\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xs\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xs\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xs\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xs\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xs\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xs\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xs\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xs\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xs\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xs\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xs\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xs\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xs\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xs\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xs\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xs\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xs\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xs\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xs\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xs\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xs\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xs\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xs\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xs\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xs\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xs\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xs\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xs\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xs\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xs\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xs\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xs\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xs\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xs\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xs\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xs\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xs\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xs\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xs\:bg-opacity-0{--bg-opacity:0}.xs\:bg-opacity-25{--bg-opacity:0.25}.xs\:bg-opacity-50{--bg-opacity:0.5}.xs\:bg-opacity-75{--bg-opacity:0.75}.xs\:bg-opacity-100{--bg-opacity:1}.xs\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xs\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xs\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xs\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xs\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xs\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xs\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xs\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xs\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xs\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xs\:bg-bottom{background-position:bottom}.xs\:bg-center{background-position:50%}.xs\:bg-left{background-position:0}.xs\:bg-left-bottom{background-position:0 100%}.xs\:bg-left-top{background-position:0 0}.xs\:bg-right{background-position:100%}.xs\:bg-right-bottom{background-position:100% 100%}.xs\:bg-right-top{background-position:100% 0}.xs\:bg-top{background-position:top}.xs\:bg-repeat{background-repeat:repeat}.xs\:bg-no-repeat{background-repeat:no-repeat}.xs\:bg-repeat-x{background-repeat:repeat-x}.xs\:bg-repeat-y{background-repeat:repeat-y}.xs\:bg-repeat-round{background-repeat:round}.xs\:bg-repeat-space{background-repeat:space}.xs\:bg-auto{background-size:auto}.xs\:bg-cover{background-size:cover}.xs\:bg-contain{background-size:contain}.xs\:border-collapse{border-collapse:collapse}.xs\:border-separate{border-collapse:separate}.xs\:border-transparent{border-color:transparent}.xs\:border-current{border-color:currentColor}.xs\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:hover\:border-transparent:hover{border-color:transparent}.xs\:hover\:border-current:hover{border-color:currentColor}.xs\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:focus\:border-transparent:focus{border-color:transparent}.xs\:focus\:border-current:focus{border-color:currentColor}.xs\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xs\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xs\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xs\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xs\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xs\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xs\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xs\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xs\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xs\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xs\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xs\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xs\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xs\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xs\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xs\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xs\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xs\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xs\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xs\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xs\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xs\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xs\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xs\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xs\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xs\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xs\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xs\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xs\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xs\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xs\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xs\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xs\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xs\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xs\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xs\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xs\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xs\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xs\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xs\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xs\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xs\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xs\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xs\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xs\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xs\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xs\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xs\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xs\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xs\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xs\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xs\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xs\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xs\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xs\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xs\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xs\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xs\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xs\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xs\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xs\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xs\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xs\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xs\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xs\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xs\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xs\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xs\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xs\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xs\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xs\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xs\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xs\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xs\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xs\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xs\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xs\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xs\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xs\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xs\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xs\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xs\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xs\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xs\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xs\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xs\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xs\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xs\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xs\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xs\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xs\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xs\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xs\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xs\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xs\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xs\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xs\:border-opacity-0{--border-opacity:0}.xs\:border-opacity-25{--border-opacity:0.25}.xs\:border-opacity-50{--border-opacity:0.5}.xs\:border-opacity-75{--border-opacity:0.75}.xs\:border-opacity-100{--border-opacity:1}.xs\:hover\:border-opacity-0:hover{--border-opacity:0}.xs\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xs\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xs\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xs\:hover\:border-opacity-100:hover{--border-opacity:1}.xs\:focus\:border-opacity-0:focus{--border-opacity:0}.xs\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xs\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xs\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xs\:focus\:border-opacity-100:focus{--border-opacity:1}.xs\:rounded-none{border-radius:0}.xs\:rounded-sm{border-radius:.125rem}.xs\:rounded{border-radius:.25rem}.xs\:rounded-md{border-radius:.375rem}.xs\:rounded-lg{border-radius:.5rem}.xs\:rounded-xl{border-radius:.75rem}.xs\:rounded-2xl{border-radius:1rem}.xs\:rounded-3xl{border-radius:1.5rem}.xs\:rounded-full{border-radius:9999px}.xs\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xs\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xs\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xs\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xs\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xs\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xs\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xs\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xs\:rounded-t{border-top-left-radius:.25rem}.xs\:rounded-r,.xs\:rounded-t{border-top-right-radius:.25rem}.xs\:rounded-b,.xs\:rounded-r{border-bottom-right-radius:.25rem}.xs\:rounded-b,.xs\:rounded-l{border-bottom-left-radius:.25rem}.xs\:rounded-l{border-top-left-radius:.25rem}.xs\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xs\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xs\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xs\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xs\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xs\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xs\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xs\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xs\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xs\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xs\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xs\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xs\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xs\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xs\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xs\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xs\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xs\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xs\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xs\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xs\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xs\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xs\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xs\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xs\:rounded-tl-none{border-top-left-radius:0}.xs\:rounded-tr-none{border-top-right-radius:0}.xs\:rounded-br-none{border-bottom-right-radius:0}.xs\:rounded-bl-none{border-bottom-left-radius:0}.xs\:rounded-tl-sm{border-top-left-radius:.125rem}.xs\:rounded-tr-sm{border-top-right-radius:.125rem}.xs\:rounded-br-sm{border-bottom-right-radius:.125rem}.xs\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xs\:rounded-tl{border-top-left-radius:.25rem}.xs\:rounded-tr{border-top-right-radius:.25rem}.xs\:rounded-br{border-bottom-right-radius:.25rem}.xs\:rounded-bl{border-bottom-left-radius:.25rem}.xs\:rounded-tl-md{border-top-left-radius:.375rem}.xs\:rounded-tr-md{border-top-right-radius:.375rem}.xs\:rounded-br-md{border-bottom-right-radius:.375rem}.xs\:rounded-bl-md{border-bottom-left-radius:.375rem}.xs\:rounded-tl-lg{border-top-left-radius:.5rem}.xs\:rounded-tr-lg{border-top-right-radius:.5rem}.xs\:rounded-br-lg{border-bottom-right-radius:.5rem}.xs\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xs\:rounded-tl-xl{border-top-left-radius:.75rem}.xs\:rounded-tr-xl{border-top-right-radius:.75rem}.xs\:rounded-br-xl{border-bottom-right-radius:.75rem}.xs\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xs\:rounded-tl-2xl{border-top-left-radius:1rem}.xs\:rounded-tr-2xl{border-top-right-radius:1rem}.xs\:rounded-br-2xl{border-bottom-right-radius:1rem}.xs\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xs\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xs\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xs\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xs\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xs\:rounded-tl-full{border-top-left-radius:9999px}.xs\:rounded-tr-full{border-top-right-radius:9999px}.xs\:rounded-br-full{border-bottom-right-radius:9999px}.xs\:rounded-bl-full{border-bottom-left-radius:9999px}.xs\:border-solid{border-style:solid}.xs\:border-dashed{border-style:dashed}.xs\:border-dotted{border-style:dotted}.xs\:border-double{border-style:double}.xs\:border-none{border-style:none}.xs\:border-0{border-width:0}.xs\:border-2{border-width:2px}.xs\:border-4{border-width:4px}.xs\:border-8{border-width:8px}.xs\:border{border-width:1px}.xs\:border-t-0{border-top-width:0}.xs\:border-r-0{border-right-width:0}.xs\:border-b-0{border-bottom-width:0}.xs\:border-l-0{border-left-width:0}.xs\:border-t-2{border-top-width:2px}.xs\:border-r-2{border-right-width:2px}.xs\:border-b-2{border-bottom-width:2px}.xs\:border-l-2{border-left-width:2px}.xs\:border-t-4{border-top-width:4px}.xs\:border-r-4{border-right-width:4px}.xs\:border-b-4{border-bottom-width:4px}.xs\:border-l-4{border-left-width:4px}.xs\:border-t-8{border-top-width:8px}.xs\:border-r-8{border-right-width:8px}.xs\:border-b-8{border-bottom-width:8px}.xs\:border-l-8{border-left-width:8px}.xs\:border-t{border-top-width:1px}.xs\:border-r{border-right-width:1px}.xs\:border-b{border-bottom-width:1px}.xs\:border-l{border-left-width:1px}.xs\:box-border{box-sizing:border-box}.xs\:box-content{box-sizing:content-box}.xs\:cursor-auto{cursor:auto}.xs\:cursor-default{cursor:default}.xs\:cursor-pointer{cursor:pointer}.xs\:cursor-wait{cursor:wait}.xs\:cursor-text{cursor:text}.xs\:cursor-move{cursor:move}.xs\:cursor-not-allowed{cursor:not-allowed}.xs\:block{display:block}.xs\:inline-block{display:inline-block}.xs\:inline{display:inline}.xs\:flex{display:flex}.xs\:inline-flex{display:inline-flex}.xs\:table{display:table}.xs\:table-caption{display:table-caption}.xs\:table-cell{display:table-cell}.xs\:table-column{display:table-column}.xs\:table-column-group{display:table-column-group}.xs\:table-footer-group{display:table-footer-group}.xs\:table-header-group{display:table-header-group}.xs\:table-row-group{display:table-row-group}.xs\:table-row{display:table-row}.xs\:flow-root{display:flow-root}.xs\:grid{display:grid}.xs\:inline-grid{display:inline-grid}.xs\:contents{display:contents}.xs\:hidden{display:none}.xs\:flex-row{flex-direction:row}.xs\:flex-row-reverse{flex-direction:row-reverse}.xs\:flex-col{flex-direction:column}.xs\:flex-col-reverse{flex-direction:column-reverse}.xs\:flex-wrap{flex-wrap:wrap}.xs\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xs\:flex-no-wrap{flex-wrap:nowrap}.xs\:place-items-auto{place-items:auto}.xs\:place-items-start{place-items:start}.xs\:place-items-end{place-items:end}.xs\:place-items-center{place-items:center}.xs\:place-items-stretch{place-items:stretch}.xs\:place-content-center{place-content:center}.xs\:place-content-start{place-content:start}.xs\:place-content-end{place-content:end}.xs\:place-content-between{place-content:space-between}.xs\:place-content-around{place-content:space-around}.xs\:place-content-evenly{place-content:space-evenly}.xs\:place-content-stretch{place-content:stretch}.xs\:place-self-auto{place-self:auto}.xs\:place-self-start{place-self:start}.xs\:place-self-end{place-self:end}.xs\:place-self-center{place-self:center}.xs\:place-self-stretch{place-self:stretch}.xs\:items-start{align-items:flex-start}.xs\:items-end{align-items:flex-end}.xs\:items-center{align-items:center}.xs\:items-baseline{align-items:baseline}.xs\:items-stretch{align-items:stretch}.xs\:content-center{align-content:center}.xs\:content-start{align-content:flex-start}.xs\:content-end{align-content:flex-end}.xs\:content-between{align-content:space-between}.xs\:content-around{align-content:space-around}.xs\:content-evenly{align-content:space-evenly}.xs\:self-auto{align-self:auto}.xs\:self-start{align-self:flex-start}.xs\:self-end{align-self:flex-end}.xs\:self-center{align-self:center}.xs\:self-stretch{align-self:stretch}.xs\:justify-items-auto{justify-items:auto}.xs\:justify-items-start{justify-items:start}.xs\:justify-items-end{justify-items:end}.xs\:justify-items-center{justify-items:center}.xs\:justify-items-stretch{justify-items:stretch}.xs\:justify-start{justify-content:flex-start}.xs\:justify-end{justify-content:flex-end}.xs\:justify-center{justify-content:center}.xs\:justify-between{justify-content:space-between}.xs\:justify-around{justify-content:space-around}.xs\:justify-evenly{justify-content:space-evenly}.xs\:justify-self-auto{justify-self:auto}.xs\:justify-self-start{justify-self:start}.xs\:justify-self-end{justify-self:end}.xs\:justify-self-center{justify-self:center}.xs\:justify-self-stretch{justify-self:stretch}.xs\:flex-1{flex:1 1 0%}.xs\:flex-auto{flex:1 1 auto}.xs\:flex-initial{flex:0 1 auto}.xs\:flex-none{flex:none}.xs\:flex-grow-0{flex-grow:0}.xs\:flex-grow{flex-grow:1}.xs\:flex-shrink-0{flex-shrink:0}.xs\:flex-shrink{flex-shrink:1}.xs\:order-1{order:1}.xs\:order-2{order:2}.xs\:order-3{order:3}.xs\:order-4{order:4}.xs\:order-5{order:5}.xs\:order-6{order:6}.xs\:order-7{order:7}.xs\:order-8{order:8}.xs\:order-9{order:9}.xs\:order-10{order:10}.xs\:order-11{order:11}.xs\:order-12{order:12}.xs\:order-first{order:-9999}.xs\:order-last{order:9999}.xs\:order-none{order:0}.xs\:float-right{float:right}.xs\:float-left{float:left}.xs\:float-none{float:none}.xs\:clearfix:after{content:"";display:table;clear:both}.xs\:clear-left{clear:left}.xs\:clear-right{clear:right}.xs\:clear-both{clear:both}.xs\:clear-none{clear:none}.xs\:font-sans{font-family: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}.xs\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xs\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xs\:font-hairline{font-weight:100}.xs\:font-thin{font-weight:200}.xs\:font-light{font-weight:300}.xs\:font-normal{font-weight:400}.xs\:font-medium{font-weight:500}.xs\:font-semibold{font-weight:600}.xs\:font-bold{font-weight:700}.xs\:font-extrabold{font-weight:800}.xs\:font-black{font-weight:900}.xs\:hover\:font-hairline:hover{font-weight:100}.xs\:hover\:font-thin:hover{font-weight:200}.xs\:hover\:font-light:hover{font-weight:300}.xs\:hover\:font-normal:hover{font-weight:400}.xs\:hover\:font-medium:hover{font-weight:500}.xs\:hover\:font-semibold:hover{font-weight:600}.xs\:hover\:font-bold:hover{font-weight:700}.xs\:hover\:font-extrabold:hover{font-weight:800}.xs\:hover\:font-black:hover{font-weight:900}.xs\:focus\:font-hairline:focus{font-weight:100}.xs\:focus\:font-thin:focus{font-weight:200}.xs\:focus\:font-light:focus{font-weight:300}.xs\:focus\:font-normal:focus{font-weight:400}.xs\:focus\:font-medium:focus{font-weight:500}.xs\:focus\:font-semibold:focus{font-weight:600}.xs\:focus\:font-bold:focus{font-weight:700}.xs\:focus\:font-extrabold:focus{font-weight:800}.xs\:focus\:font-black:focus{font-weight:900}.xs\:h-0{height:0}.xs\:h-1{height:.25rem}.xs\:h-2{height:.5rem}.xs\:h-3{height:.75rem}.xs\:h-4{height:1rem}.xs\:h-5{height:1.25rem}.xs\:h-6{height:1.5rem}.xs\:h-8{height:2rem}.xs\:h-10{height:2.5rem}.xs\:h-12{height:3rem}.xs\:h-16{height:4rem}.xs\:h-20{height:5rem}.xs\:h-24{height:6rem}.xs\:h-32{height:8rem}.xs\:h-40{height:10rem}.xs\:h-48{height:12rem}.xs\:h-56{height:14rem}.xs\:h-64{height:16rem}.xs\:h-auto{height:auto}.xs\:h-px{height:1px}.xs\:h-full{height:100%}.xs\:h-screen{height:100vh}.xs\:text-xs{font-size:.75rem}.xs\:text-sm{font-size:.875rem}.xs\:text-base{font-size:1rem}.xs\:text-lg{font-size:1.125rem}.xs\:text-xl{font-size:1.25rem}.xs\:text-2xl{font-size:1.5rem}.xs\:text-3xl{font-size:1.875rem}.xs\:text-4xl{font-size:2.25rem}.xs\:text-5xl{font-size:3rem}.xs\:text-6xl{font-size:4rem}.xs\:leading-3{line-height:.75rem}.xs\:leading-4{line-height:1rem}.xs\:leading-5{line-height:1.25rem}.xs\:leading-6{line-height:1.5rem}.xs\:leading-7{line-height:1.75rem}.xs\:leading-8{line-height:2rem}.xs\:leading-9{line-height:2.25rem}.xs\:leading-10{line-height:2.5rem}.xs\:leading-none{line-height:1}.xs\:leading-tight{line-height:1.25}.xs\:leading-snug{line-height:1.375}.xs\:leading-normal{line-height:1.5}.xs\:leading-relaxed{line-height:1.625}.xs\:leading-loose{line-height:2}.xs\:list-inside{list-style-position:inside}.xs\:list-outside{list-style-position:outside}.xs\:list-none{list-style-type:none}.xs\:list-disc{list-style-type:disc}.xs\:list-decimal{list-style-type:decimal}.xs\:m-0{margin:0}.xs\:m-1{margin:.25rem}.xs\:m-2{margin:.5rem}.xs\:m-3{margin:.75rem}.xs\:m-4{margin:1rem}.xs\:m-5{margin:1.25rem}.xs\:m-6{margin:1.5rem}.xs\:m-8{margin:2rem}.xs\:m-10{margin:2.5rem}.xs\:m-12{margin:3rem}.xs\:m-16{margin:4rem}.xs\:m-20{margin:5rem}.xs\:m-24{margin:6rem}.xs\:m-32{margin:8rem}.xs\:m-40{margin:10rem}.xs\:m-48{margin:12rem}.xs\:m-56{margin:14rem}.xs\:m-64{margin:16rem}.xs\:m-auto{margin:auto}.xs\:m-px{margin:1px}.xs\:-m-1{margin:-.25rem}.xs\:-m-2{margin:-.5rem}.xs\:-m-3{margin:-.75rem}.xs\:-m-4{margin:-1rem}.xs\:-m-5{margin:-1.25rem}.xs\:-m-6{margin:-1.5rem}.xs\:-m-8{margin:-2rem}.xs\:-m-10{margin:-2.5rem}.xs\:-m-12{margin:-3rem}.xs\:-m-16{margin:-4rem}.xs\:-m-20{margin:-5rem}.xs\:-m-24{margin:-6rem}.xs\:-m-32{margin:-8rem}.xs\:-m-40{margin:-10rem}.xs\:-m-48{margin:-12rem}.xs\:-m-56{margin:-14rem}.xs\:-m-64{margin:-16rem}.xs\:-m-px{margin:-1px}.xs\:my-0{margin-top:0;margin-bottom:0}.xs\:mx-0{margin-left:0;margin-right:0}.xs\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xs\:mx-1{margin-left:.25rem;margin-right:.25rem}.xs\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xs\:mx-2{margin-left:.5rem;margin-right:.5rem}.xs\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xs\:mx-3{margin-left:.75rem;margin-right:.75rem}.xs\:my-4{margin-top:1rem;margin-bottom:1rem}.xs\:mx-4{margin-left:1rem;margin-right:1rem}.xs\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xs\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xs\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xs\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xs\:my-8{margin-top:2rem;margin-bottom:2rem}.xs\:mx-8{margin-left:2rem;margin-right:2rem}.xs\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xs\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xs\:my-12{margin-top:3rem;margin-bottom:3rem}.xs\:mx-12{margin-left:3rem;margin-right:3rem}.xs\:my-16{margin-top:4rem;margin-bottom:4rem}.xs\:mx-16{margin-left:4rem;margin-right:4rem}.xs\:my-20{margin-top:5rem;margin-bottom:5rem}.xs\:mx-20{margin-left:5rem;margin-right:5rem}.xs\:my-24{margin-top:6rem;margin-bottom:6rem}.xs\:mx-24{margin-left:6rem;margin-right:6rem}.xs\:my-32{margin-top:8rem;margin-bottom:8rem}.xs\:mx-32{margin-left:8rem;margin-right:8rem}.xs\:my-40{margin-top:10rem;margin-bottom:10rem}.xs\:mx-40{margin-left:10rem;margin-right:10rem}.xs\:my-48{margin-top:12rem;margin-bottom:12rem}.xs\:mx-48{margin-left:12rem;margin-right:12rem}.xs\:my-56{margin-top:14rem;margin-bottom:14rem}.xs\:mx-56{margin-left:14rem;margin-right:14rem}.xs\:my-64{margin-top:16rem;margin-bottom:16rem}.xs\:mx-64{margin-left:16rem;margin-right:16rem}.xs\:my-auto{margin-top:auto;margin-bottom:auto}.xs\:mx-auto{margin-left:auto;margin-right:auto}.xs\:my-px{margin-top:1px;margin-bottom:1px}.xs\:mx-px{margin-left:1px;margin-right:1px}.xs\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xs\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xs\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xs\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xs\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xs\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xs\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xs\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xs\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xs\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xs\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xs\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xs\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xs\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xs\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xs\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xs\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xs\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xs\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xs\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xs\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xs\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xs\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xs\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xs\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xs\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xs\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xs\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xs\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xs\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xs\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xs\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xs\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xs\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xs\:-my-px{margin-top:-1px;margin-bottom:-1px}.xs\:-mx-px{margin-left:-1px;margin-right:-1px}.xs\:mt-0{margin-top:0}.xs\:mr-0{margin-right:0}.xs\:mb-0{margin-bottom:0}.xs\:ml-0{margin-left:0}.xs\:mt-1{margin-top:.25rem}.xs\:mr-1{margin-right:.25rem}.xs\:mb-1{margin-bottom:.25rem}.xs\:ml-1{margin-left:.25rem}.xs\:mt-2{margin-top:.5rem}.xs\:mr-2{margin-right:.5rem}.xs\:mb-2{margin-bottom:.5rem}.xs\:ml-2{margin-left:.5rem}.xs\:mt-3{margin-top:.75rem}.xs\:mr-3{margin-right:.75rem}.xs\:mb-3{margin-bottom:.75rem}.xs\:ml-3{margin-left:.75rem}.xs\:mt-4{margin-top:1rem}.xs\:mr-4{margin-right:1rem}.xs\:mb-4{margin-bottom:1rem}.xs\:ml-4{margin-left:1rem}.xs\:mt-5{margin-top:1.25rem}.xs\:mr-5{margin-right:1.25rem}.xs\:mb-5{margin-bottom:1.25rem}.xs\:ml-5{margin-left:1.25rem}.xs\:mt-6{margin-top:1.5rem}.xs\:mr-6{margin-right:1.5rem}.xs\:mb-6{margin-bottom:1.5rem}.xs\:ml-6{margin-left:1.5rem}.xs\:mt-8{margin-top:2rem}.xs\:mr-8{margin-right:2rem}.xs\:mb-8{margin-bottom:2rem}.xs\:ml-8{margin-left:2rem}.xs\:mt-10{margin-top:2.5rem}.xs\:mr-10{margin-right:2.5rem}.xs\:mb-10{margin-bottom:2.5rem}.xs\:ml-10{margin-left:2.5rem}.xs\:mt-12{margin-top:3rem}.xs\:mr-12{margin-right:3rem}.xs\:mb-12{margin-bottom:3rem}.xs\:ml-12{margin-left:3rem}.xs\:mt-16{margin-top:4rem}.xs\:mr-16{margin-right:4rem}.xs\:mb-16{margin-bottom:4rem}.xs\:ml-16{margin-left:4rem}.xs\:mt-20{margin-top:5rem}.xs\:mr-20{margin-right:5rem}.xs\:mb-20{margin-bottom:5rem}.xs\:ml-20{margin-left:5rem}.xs\:mt-24{margin-top:6rem}.xs\:mr-24{margin-right:6rem}.xs\:mb-24{margin-bottom:6rem}.xs\:ml-24{margin-left:6rem}.xs\:mt-32{margin-top:8rem}.xs\:mr-32{margin-right:8rem}.xs\:mb-32{margin-bottom:8rem}.xs\:ml-32{margin-left:8rem}.xs\:mt-40{margin-top:10rem}.xs\:mr-40{margin-right:10rem}.xs\:mb-40{margin-bottom:10rem}.xs\:ml-40{margin-left:10rem}.xs\:mt-48{margin-top:12rem}.xs\:mr-48{margin-right:12rem}.xs\:mb-48{margin-bottom:12rem}.xs\:ml-48{margin-left:12rem}.xs\:mt-56{margin-top:14rem}.xs\:mr-56{margin-right:14rem}.xs\:mb-56{margin-bottom:14rem}.xs\:ml-56{margin-left:14rem}.xs\:mt-64{margin-top:16rem}.xs\:mr-64{margin-right:16rem}.xs\:mb-64{margin-bottom:16rem}.xs\:ml-64{margin-left:16rem}.xs\:mt-auto{margin-top:auto}.xs\:mr-auto{margin-right:auto}.xs\:mb-auto{margin-bottom:auto}.xs\:ml-auto{margin-left:auto}.xs\:mt-px{margin-top:1px}.xs\:mr-px{margin-right:1px}.xs\:mb-px{margin-bottom:1px}.xs\:ml-px{margin-left:1px}.xs\:-mt-1{margin-top:-.25rem}.xs\:-mr-1{margin-right:-.25rem}.xs\:-mb-1{margin-bottom:-.25rem}.xs\:-ml-1{margin-left:-.25rem}.xs\:-mt-2{margin-top:-.5rem}.xs\:-mr-2{margin-right:-.5rem}.xs\:-mb-2{margin-bottom:-.5rem}.xs\:-ml-2{margin-left:-.5rem}.xs\:-mt-3{margin-top:-.75rem}.xs\:-mr-3{margin-right:-.75rem}.xs\:-mb-3{margin-bottom:-.75rem}.xs\:-ml-3{margin-left:-.75rem}.xs\:-mt-4{margin-top:-1rem}.xs\:-mr-4{margin-right:-1rem}.xs\:-mb-4{margin-bottom:-1rem}.xs\:-ml-4{margin-left:-1rem}.xs\:-mt-5{margin-top:-1.25rem}.xs\:-mr-5{margin-right:-1.25rem}.xs\:-mb-5{margin-bottom:-1.25rem}.xs\:-ml-5{margin-left:-1.25rem}.xs\:-mt-6{margin-top:-1.5rem}.xs\:-mr-6{margin-right:-1.5rem}.xs\:-mb-6{margin-bottom:-1.5rem}.xs\:-ml-6{margin-left:-1.5rem}.xs\:-mt-8{margin-top:-2rem}.xs\:-mr-8{margin-right:-2rem}.xs\:-mb-8{margin-bottom:-2rem}.xs\:-ml-8{margin-left:-2rem}.xs\:-mt-10{margin-top:-2.5rem}.xs\:-mr-10{margin-right:-2.5rem}.xs\:-mb-10{margin-bottom:-2.5rem}.xs\:-ml-10{margin-left:-2.5rem}.xs\:-mt-12{margin-top:-3rem}.xs\:-mr-12{margin-right:-3rem}.xs\:-mb-12{margin-bottom:-3rem}.xs\:-ml-12{margin-left:-3rem}.xs\:-mt-16{margin-top:-4rem}.xs\:-mr-16{margin-right:-4rem}.xs\:-mb-16{margin-bottom:-4rem}.xs\:-ml-16{margin-left:-4rem}.xs\:-mt-20{margin-top:-5rem}.xs\:-mr-20{margin-right:-5rem}.xs\:-mb-20{margin-bottom:-5rem}.xs\:-ml-20{margin-left:-5rem}.xs\:-mt-24{margin-top:-6rem}.xs\:-mr-24{margin-right:-6rem}.xs\:-mb-24{margin-bottom:-6rem}.xs\:-ml-24{margin-left:-6rem}.xs\:-mt-32{margin-top:-8rem}.xs\:-mr-32{margin-right:-8rem}.xs\:-mb-32{margin-bottom:-8rem}.xs\:-ml-32{margin-left:-8rem}.xs\:-mt-40{margin-top:-10rem}.xs\:-mr-40{margin-right:-10rem}.xs\:-mb-40{margin-bottom:-10rem}.xs\:-ml-40{margin-left:-10rem}.xs\:-mt-48{margin-top:-12rem}.xs\:-mr-48{margin-right:-12rem}.xs\:-mb-48{margin-bottom:-12rem}.xs\:-ml-48{margin-left:-12rem}.xs\:-mt-56{margin-top:-14rem}.xs\:-mr-56{margin-right:-14rem}.xs\:-mb-56{margin-bottom:-14rem}.xs\:-ml-56{margin-left:-14rem}.xs\:-mt-64{margin-top:-16rem}.xs\:-mr-64{margin-right:-16rem}.xs\:-mb-64{margin-bottom:-16rem}.xs\:-ml-64{margin-left:-16rem}.xs\:-mt-px{margin-top:-1px}.xs\:-mr-px{margin-right:-1px}.xs\:-mb-px{margin-bottom:-1px}.xs\:-ml-px{margin-left:-1px}.xs\:max-h-full{max-height:100%}.xs\:max-h-screen{max-height:100vh}.xs\:max-w-none{max-width:none}.xs\:max-w-xs{max-width:20rem}.xs\:max-w-sm{max-width:24rem}.xs\:max-w-md{max-width:28rem}.xs\:max-w-lg{max-width:32rem}.xs\:max-w-xl{max-width:36rem}.xs\:max-w-2xl{max-width:42rem}.xs\:max-w-3xl{max-width:48rem}.xs\:max-w-4xl{max-width:56rem}.xs\:max-w-5xl{max-width:64rem}.xs\:max-w-6xl{max-width:72rem}.xs\:max-w-full{max-width:100%}.xs\:max-w-screen-xs{max-width:360px}.xs\:max-w-screen-sm{max-width:640px}.xs\:max-w-screen-md{max-width:768px}.xs\:max-w-screen-lg{max-width:1024px}.xs\:max-w-screen-xl{max-width:1280px}.xs\:max-w-screen-xxl{max-width:1480px}.xs\:min-h-0{min-height:0}.xs\:min-h-full{min-height:100%}.xs\:min-h-screen{min-height:100vh}.xs\:min-w-0{min-width:0}.xs\:min-w-full{min-width:100%}.xs\:object-contain{-o-object-fit:contain;object-fit:contain}.xs\:object-cover{-o-object-fit:cover;object-fit:cover}.xs\:object-fill{-o-object-fit:fill;object-fit:fill}.xs\:object-none{-o-object-fit:none;object-fit:none}.xs\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xs\:object-bottom{-o-object-position:bottom;object-position:bottom}.xs\:object-center{-o-object-position:center;object-position:center}.xs\:object-left{-o-object-position:left;object-position:left}.xs\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xs\:object-left-top{-o-object-position:left top;object-position:left top}.xs\:object-right{-o-object-position:right;object-position:right}.xs\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xs\:object-right-top{-o-object-position:right top;object-position:right top}.xs\:object-top{-o-object-position:top;object-position:top}.xs\:opacity-0{opacity:0}.xs\:opacity-25{opacity:.25}.xs\:opacity-50{opacity:.5}.xs\:opacity-75{opacity:.75}.xs\:opacity-100{opacity:1}.xs\:hover\:opacity-0:hover{opacity:0}.xs\:hover\:opacity-25:hover{opacity:.25}.xs\:hover\:opacity-50:hover{opacity:.5}.xs\:hover\:opacity-75:hover{opacity:.75}.xs\:hover\:opacity-100:hover{opacity:1}.xs\:focus\:opacity-0:focus{opacity:0}.xs\:focus\:opacity-25:focus{opacity:.25}.xs\:focus\:opacity-50:focus{opacity:.5}.xs\:focus\:opacity-75:focus{opacity:.75}.xs\:focus\:opacity-100:focus{opacity:1}.xs\:outline-none{outline:2px solid transparent;outline-offset:2px}.xs\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xs\:outline-black{outline:2px dotted #000;outline-offset:2px}.xs\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xs\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xs\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xs\:overflow-auto{overflow:auto}.xs\:overflow-hidden{overflow:hidden}.xs\:overflow-visible{overflow:visible}.xs\:overflow-scroll{overflow:scroll}.xs\:overflow-x-auto{overflow-x:auto}.xs\:overflow-y-auto{overflow-y:auto}.xs\:overflow-x-hidden{overflow-x:hidden}.xs\:overflow-y-hidden{overflow-y:hidden}.xs\:overflow-x-visible{overflow-x:visible}.xs\:overflow-y-visible{overflow-y:visible}.xs\:overflow-x-scroll{overflow-x:scroll}.xs\:overflow-y-scroll{overflow-y:scroll}.xs\:scrolling-touch{-webkit-overflow-scrolling:touch}.xs\:scrolling-auto{-webkit-overflow-scrolling:auto}.xs\:overscroll-auto{overscroll-behavior:auto}.xs\:overscroll-contain{overscroll-behavior:contain}.xs\:overscroll-none{overscroll-behavior:none}.xs\:overscroll-y-auto{overscroll-behavior-y:auto}.xs\:overscroll-y-contain{overscroll-behavior-y:contain}.xs\:overscroll-y-none{overscroll-behavior-y:none}.xs\:overscroll-x-auto{overscroll-behavior-x:auto}.xs\:overscroll-x-contain{overscroll-behavior-x:contain}.xs\:overscroll-x-none{overscroll-behavior-x:none}.xs\:p-0{padding:0}.xs\:p-1{padding:.25rem}.xs\:p-2{padding:.5rem}.xs\:p-3{padding:.75rem}.xs\:p-4{padding:1rem}.xs\:p-5{padding:1.25rem}.xs\:p-6{padding:1.5rem}.xs\:p-8{padding:2rem}.xs\:p-10{padding:2.5rem}.xs\:p-12{padding:3rem}.xs\:p-16{padding:4rem}.xs\:p-20{padding:5rem}.xs\:p-24{padding:6rem}.xs\:p-32{padding:8rem}.xs\:p-40{padding:10rem}.xs\:p-48{padding:12rem}.xs\:p-56{padding:14rem}.xs\:p-64{padding:16rem}.xs\:p-px{padding:1px}.xs\:py-0{padding-top:0;padding-bottom:0}.xs\:px-0{padding-left:0;padding-right:0}.xs\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xs\:px-1{padding-left:.25rem;padding-right:.25rem}.xs\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xs\:px-2{padding-left:.5rem;padding-right:.5rem}.xs\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xs\:px-3{padding-left:.75rem;padding-right:.75rem}.xs\:py-4{padding-top:1rem;padding-bottom:1rem}.xs\:px-4{padding-left:1rem;padding-right:1rem}.xs\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xs\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xs\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xs\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xs\:py-8{padding-top:2rem;padding-bottom:2rem}.xs\:px-8{padding-left:2rem;padding-right:2rem}.xs\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xs\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xs\:py-12{padding-top:3rem;padding-bottom:3rem}.xs\:px-12{padding-left:3rem;padding-right:3rem}.xs\:py-16{padding-top:4rem;padding-bottom:4rem}.xs\:px-16{padding-left:4rem;padding-right:4rem}.xs\:py-20{padding-top:5rem;padding-bottom:5rem}.xs\:px-20{padding-left:5rem;padding-right:5rem}.xs\:py-24{padding-top:6rem;padding-bottom:6rem}.xs\:px-24{padding-left:6rem;padding-right:6rem}.xs\:py-32{padding-top:8rem;padding-bottom:8rem}.xs\:px-32{padding-left:8rem;padding-right:8rem}.xs\:py-40{padding-top:10rem;padding-bottom:10rem}.xs\:px-40{padding-left:10rem;padding-right:10rem}.xs\:py-48{padding-top:12rem;padding-bottom:12rem}.xs\:px-48{padding-left:12rem;padding-right:12rem}.xs\:py-56{padding-top:14rem;padding-bottom:14rem}.xs\:px-56{padding-left:14rem;padding-right:14rem}.xs\:py-64{padding-top:16rem;padding-bottom:16rem}.xs\:px-64{padding-left:16rem;padding-right:16rem}.xs\:py-px{padding-top:1px;padding-bottom:1px}.xs\:px-px{padding-left:1px;padding-right:1px}.xs\:pt-0{padding-top:0}.xs\:pr-0{padding-right:0}.xs\:pb-0{padding-bottom:0}.xs\:pl-0{padding-left:0}.xs\:pt-1{padding-top:.25rem}.xs\:pr-1{padding-right:.25rem}.xs\:pb-1{padding-bottom:.25rem}.xs\:pl-1{padding-left:.25rem}.xs\:pt-2{padding-top:.5rem}.xs\:pr-2{padding-right:.5rem}.xs\:pb-2{padding-bottom:.5rem}.xs\:pl-2{padding-left:.5rem}.xs\:pt-3{padding-top:.75rem}.xs\:pr-3{padding-right:.75rem}.xs\:pb-3{padding-bottom:.75rem}.xs\:pl-3{padding-left:.75rem}.xs\:pt-4{padding-top:1rem}.xs\:pr-4{padding-right:1rem}.xs\:pb-4{padding-bottom:1rem}.xs\:pl-4{padding-left:1rem}.xs\:pt-5{padding-top:1.25rem}.xs\:pr-5{padding-right:1.25rem}.xs\:pb-5{padding-bottom:1.25rem}.xs\:pl-5{padding-left:1.25rem}.xs\:pt-6{padding-top:1.5rem}.xs\:pr-6{padding-right:1.5rem}.xs\:pb-6{padding-bottom:1.5rem}.xs\:pl-6{padding-left:1.5rem}.xs\:pt-8{padding-top:2rem}.xs\:pr-8{padding-right:2rem}.xs\:pb-8{padding-bottom:2rem}.xs\:pl-8{padding-left:2rem}.xs\:pt-10{padding-top:2.5rem}.xs\:pr-10{padding-right:2.5rem}.xs\:pb-10{padding-bottom:2.5rem}.xs\:pl-10{padding-left:2.5rem}.xs\:pt-12{padding-top:3rem}.xs\:pr-12{padding-right:3rem}.xs\:pb-12{padding-bottom:3rem}.xs\:pl-12{padding-left:3rem}.xs\:pt-16{padding-top:4rem}.xs\:pr-16{padding-right:4rem}.xs\:pb-16{padding-bottom:4rem}.xs\:pl-16{padding-left:4rem}.xs\:pt-20{padding-top:5rem}.xs\:pr-20{padding-right:5rem}.xs\:pb-20{padding-bottom:5rem}.xs\:pl-20{padding-left:5rem}.xs\:pt-24{padding-top:6rem}.xs\:pr-24{padding-right:6rem}.xs\:pb-24{padding-bottom:6rem}.xs\:pl-24{padding-left:6rem}.xs\:pt-32{padding-top:8rem}.xs\:pr-32{padding-right:8rem}.xs\:pb-32{padding-bottom:8rem}.xs\:pl-32{padding-left:8rem}.xs\:pt-40{padding-top:10rem}.xs\:pr-40{padding-right:10rem}.xs\:pb-40{padding-bottom:10rem}.xs\:pl-40{padding-left:10rem}.xs\:pt-48{padding-top:12rem}.xs\:pr-48{padding-right:12rem}.xs\:pb-48{padding-bottom:12rem}.xs\:pl-48{padding-left:12rem}.xs\:pt-56{padding-top:14rem}.xs\:pr-56{padding-right:14rem}.xs\:pb-56{padding-bottom:14rem}.xs\:pl-56{padding-left:14rem}.xs\:pt-64{padding-top:16rem}.xs\:pr-64{padding-right:16rem}.xs\:pb-64{padding-bottom:16rem}.xs\:pl-64{padding-left:16rem}.xs\:pt-px{padding-top:1px}.xs\:pr-px{padding-right:1px}.xs\:pb-px{padding-bottom:1px}.xs\:pl-px{padding-left:1px}.xs\:placeholder-transparent::placeholder{color:transparent}.xs\:placeholder-current::placeholder{color:currentColor}.xs\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xs\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xs\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xs\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xs\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xs\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xs\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xs\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xs\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xs\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xs\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xs\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xs\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xs\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xs\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xs\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xs\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xs\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xs\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xs\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xs\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xs\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xs\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xs\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xs\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xs\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xs\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xs\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xs\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xs\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xs\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xs\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xs\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xs\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xs\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xs\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xs\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xs\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xs\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xs\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xs\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xs\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xs\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xs\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xs\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xs\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xs\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xs\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xs\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xs\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xs\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xs\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xs\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xs\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xs\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xs\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xs\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xs\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xs\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xs\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xs\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xs\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xs\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xs\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xs\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xs\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xs\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xs\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xs\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xs\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xs\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xs\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xs\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xs\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xs\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xs\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xs\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xs\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xs\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xs\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xs\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xs\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xs\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xs\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xs\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xs\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xs\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xs\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xs\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xs\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xs\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xs\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xs\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xs\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xs\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xs\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xs\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xs\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xs\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xs\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xs\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xs\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xs\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xs\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xs\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xs\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xs\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xs\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xs\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xs\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xs\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xs\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xs\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xs\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xs\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xs\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xs\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xs\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xs\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xs\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xs\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xs\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xs\:pointer-events-none{pointer-events:none}.xs\:pointer-events-auto{pointer-events:auto}.xs\:static{position:static}.xs\:fixed{position:fixed}.xs\:absolute{position:absolute}.xs\:relative{position:relative}.xs\:sticky{position:sticky}.xs\:inset-0{top:0;right:0;bottom:0;left:0}.xs\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xs\:inset-y-0{top:0;bottom:0}.xs\:inset-x-0{right:0;left:0}.xs\:inset-y-auto{top:auto;bottom:auto}.xs\:inset-x-auto{right:auto;left:auto}.xs\:top-0{top:0}.xs\:right-0{right:0}.xs\:bottom-0{bottom:0}.xs\:left-0{left:0}.xs\:top-auto{top:auto}.xs\:right-auto{right:auto}.xs\:bottom-auto{bottom:auto}.xs\:left-auto{left:auto}.xs\:resize-none{resize:none}.xs\:resize-y{resize:vertical}.xs\:resize-x{resize:horizontal}.xs\:resize{resize:both}.xs\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:shadow-none{box-shadow:none}.xs\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:hover\:shadow-none:hover{box-shadow:none}.xs\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xs\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xs\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xs\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xs\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xs\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xs\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xs\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xs\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xs\:focus\:shadow-none:focus{box-shadow:none}.xs\:fill-current{fill:currentColor}.xs\:stroke-current{stroke:currentColor}.xs\:stroke-0{stroke-width:0}.xs\:stroke-1{stroke-width:1}.xs\:stroke-2{stroke-width:2}.xs\:table-auto{table-layout:auto}.xs\:table-fixed{table-layout:fixed}.xs\:text-left{text-align:left}.xs\:text-center{text-align:center}.xs\:text-right{text-align:right}.xs\:text-justify{text-align:justify}.xs\:text-transparent{color:transparent}.xs\:text-current{color:currentColor}.xs\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:hover\:text-transparent:hover{color:transparent}.xs\:hover\:text-current:hover{color:currentColor}.xs\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:focus\:text-transparent:focus{color:transparent}.xs\:focus\:text-current:focus{color:currentColor}.xs\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xs\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xs\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xs\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xs\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xs\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xs\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xs\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xs\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xs\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xs\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xs\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xs\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xs\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xs\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xs\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xs\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xs\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xs\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xs\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xs\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xs\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xs\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xs\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xs\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xs\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xs\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xs\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xs\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xs\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xs\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xs\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xs\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xs\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xs\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xs\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xs\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xs\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xs\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xs\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xs\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xs\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xs\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xs\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xs\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xs\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xs\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xs\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xs\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xs\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xs\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xs\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xs\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xs\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xs\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xs\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xs\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xs\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xs\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xs\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xs\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xs\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xs\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xs\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xs\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xs\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xs\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xs\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xs\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xs\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xs\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xs\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xs\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xs\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xs\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xs\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xs\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xs\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xs\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xs\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xs\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xs\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xs\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xs\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xs\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xs\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xs\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xs\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xs\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xs\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xs\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xs\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xs\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xs\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xs\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xs\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xs\:text-opacity-0{--text-opacity:0}.xs\:text-opacity-25{--text-opacity:0.25}.xs\:text-opacity-50{--text-opacity:0.5}.xs\:text-opacity-75{--text-opacity:0.75}.xs\:text-opacity-100{--text-opacity:1}.xs\:hover\:text-opacity-0:hover{--text-opacity:0}.xs\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xs\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xs\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xs\:hover\:text-opacity-100:hover{--text-opacity:1}.xs\:focus\:text-opacity-0:focus{--text-opacity:0}.xs\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xs\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xs\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xs\:focus\:text-opacity-100:focus{--text-opacity:1}.xs\:italic{font-style:italic}.xs\:not-italic{font-style:normal}.xs\:uppercase{text-transform:uppercase}.xs\:lowercase{text-transform:lowercase}.xs\:capitalize{text-transform:capitalize}.xs\:normal-case{text-transform:none}.xs\:underline{text-decoration:underline}.xs\:line-through{text-decoration:line-through}.xs\:no-underline{text-decoration:none}.xs\:hover\:underline:hover{text-decoration:underline}.xs\:hover\:line-through:hover{text-decoration:line-through}.xs\:hover\:no-underline:hover{text-decoration:none}.xs\:focus\:underline:focus{text-decoration:underline}.xs\:focus\:line-through:focus{text-decoration:line-through}.xs\:focus\:no-underline:focus{text-decoration:none}.xs\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xs\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xs\:diagonal-fractions,.xs\:lining-nums,.xs\:oldstyle-nums,.xs\:ordinal,.xs\:proportional-nums,.xs\:slashed-zero,.xs\:stacked-fractions,.xs\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xs\:normal-nums{font-variant-numeric:normal}.xs\:ordinal{--font-variant-numeric-ordinal:ordinal}.xs\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xs\:lining-nums{--font-variant-numeric-figure:lining-nums}.xs\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xs\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xs\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xs\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xs\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xs\:tracking-tighter{letter-spacing:-.05em}.xs\:tracking-tight{letter-spacing:-.025em}.xs\:tracking-normal{letter-spacing:0}.xs\:tracking-wide{letter-spacing:.025em}.xs\:tracking-wider{letter-spacing:.05em}.xs\:tracking-widest{letter-spacing:.1em}.xs\:select-none{-webkit-user-select:none;user-select:none}.xs\:select-text{-webkit-user-select:text;user-select:text}.xs\:select-all{-webkit-user-select:all;user-select:all}.xs\:select-auto{-webkit-user-select:auto;user-select:auto}.xs\:align-baseline{vertical-align:baseline}.xs\:align-top{vertical-align:top}.xs\:align-middle{vertical-align:middle}.xs\:align-bottom{vertical-align:bottom}.xs\:align-text-top{vertical-align:text-top}.xs\:align-text-bottom{vertical-align:text-bottom}.xs\:visible{visibility:visible}.xs\:invisible{visibility:hidden}.xs\:whitespace-normal{white-space:normal}.xs\:whitespace-no-wrap{white-space:nowrap}.xs\:whitespace-pre{white-space:pre}.xs\:whitespace-pre-line{white-space:pre-line}.xs\:whitespace-pre-wrap{white-space:pre-wrap}.xs\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xs\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xs\:break-all{word-break:break-all}.xs\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xs\:w-0{width:0}.xs\:w-1{width:.25rem}.xs\:w-2{width:.5rem}.xs\:w-3{width:.75rem}.xs\:w-4{width:1rem}.xs\:w-5{width:1.25rem}.xs\:w-6{width:1.5rem}.xs\:w-8{width:2rem}.xs\:w-10{width:2.5rem}.xs\:w-12{width:3rem}.xs\:w-16{width:4rem}.xs\:w-20{width:5rem}.xs\:w-24{width:6rem}.xs\:w-32{width:8rem}.xs\:w-40{width:10rem}.xs\:w-48{width:12rem}.xs\:w-56{width:14rem}.xs\:w-64{width:16rem}.xs\:w-auto{width:auto}.xs\:w-px{width:1px}.xs\:w-1\/2{width:50%}.xs\:w-1\/3{width:33.333333%}.xs\:w-2\/3{width:66.666667%}.xs\:w-1\/4{width:25%}.xs\:w-2\/4{width:50%}.xs\:w-3\/4{width:75%}.xs\:w-1\/5{width:20%}.xs\:w-2\/5{width:40%}.xs\:w-3\/5{width:60%}.xs\:w-4\/5{width:80%}.xs\:w-1\/6{width:16.666667%}.xs\:w-2\/6{width:33.333333%}.xs\:w-3\/6{width:50%}.xs\:w-4\/6{width:66.666667%}.xs\:w-5\/6{width:83.333333%}.xs\:w-1\/12{width:8.333333%}.xs\:w-2\/12{width:16.666667%}.xs\:w-3\/12{width:25%}.xs\:w-4\/12{width:33.333333%}.xs\:w-5\/12{width:41.666667%}.xs\:w-6\/12{width:50%}.xs\:w-7\/12{width:58.333333%}.xs\:w-8\/12{width:66.666667%}.xs\:w-9\/12{width:75%}.xs\:w-10\/12{width:83.333333%}.xs\:w-11\/12{width:91.666667%}.xs\:w-full{width:100%}.xs\:w-screen{width:100vw}.xs\:z-0{z-index:0}.xs\:z-10{z-index:10}.xs\:z-20{z-index:20}.xs\:z-30{z-index:30}.xs\:z-40{z-index:40}.xs\:z-50{z-index:50}.xs\:z-auto{z-index:auto}.xs\:gap-0{grid-gap:0;gap:0}.xs\:gap-1{grid-gap:.25rem;gap:.25rem}.xs\:gap-2{grid-gap:.5rem;gap:.5rem}.xs\:gap-3{grid-gap:.75rem;gap:.75rem}.xs\:gap-4{grid-gap:1rem;gap:1rem}.xs\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xs\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xs\:gap-8{grid-gap:2rem;gap:2rem}.xs\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xs\:gap-12{grid-gap:3rem;gap:3rem}.xs\:gap-16{grid-gap:4rem;gap:4rem}.xs\:gap-20{grid-gap:5rem;gap:5rem}.xs\:gap-24{grid-gap:6rem;gap:6rem}.xs\:gap-32{grid-gap:8rem;gap:8rem}.xs\:gap-40{grid-gap:10rem;gap:10rem}.xs\:gap-48{grid-gap:12rem;gap:12rem}.xs\:gap-56{grid-gap:14rem;gap:14rem}.xs\:gap-64{grid-gap:16rem;gap:16rem}.xs\:gap-px{grid-gap:1px;gap:1px}.xs\:col-gap-0{grid-column-gap:0;column-gap:0}.xs\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xs\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xs\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xs\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xs\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xs\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xs\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xs\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xs\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xs\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xs\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xs\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xs\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xs\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xs\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xs\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xs\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xs\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xs\:gap-x-0{grid-column-gap:0;column-gap:0}.xs\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xs\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xs\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xs\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xs\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xs\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xs\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xs\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xs\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xs\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xs\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xs\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xs\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xs\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xs\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xs\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xs\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xs\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xs\:row-gap-0{grid-row-gap:0;row-gap:0}.xs\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xs\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xs\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xs\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xs\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xs\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xs\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xs\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xs\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xs\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xs\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xs\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xs\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xs\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xs\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xs\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xs\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xs\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xs\:gap-y-0{grid-row-gap:0;row-gap:0}.xs\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xs\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xs\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xs\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xs\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xs\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xs\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xs\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xs\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xs\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xs\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xs\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xs\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xs\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xs\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xs\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xs\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xs\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xs\:grid-flow-row{grid-auto-flow:row}.xs\:grid-flow-col{grid-auto-flow:column}.xs\:grid-flow-row-dense{grid-auto-flow:row dense}.xs\:grid-flow-col-dense{grid-auto-flow:column dense}.xs\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xs\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xs\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xs\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xs\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xs\:grid-cols-none{grid-template-columns:none}.xs\:auto-cols-auto{grid-auto-columns:auto}.xs\:auto-cols-min{grid-auto-columns:min-content}.xs\:auto-cols-max{grid-auto-columns:max-content}.xs\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xs\:col-auto{grid-column:auto}.xs\:col-span-1{grid-column:span 1/span 1}.xs\:col-span-2{grid-column:span 2/span 2}.xs\:col-span-3{grid-column:span 3/span 3}.xs\:col-span-4{grid-column:span 4/span 4}.xs\:col-span-5{grid-column:span 5/span 5}.xs\:col-span-6{grid-column:span 6/span 6}.xs\:col-span-7{grid-column:span 7/span 7}.xs\:col-span-8{grid-column:span 8/span 8}.xs\:col-span-9{grid-column:span 9/span 9}.xs\:col-span-10{grid-column:span 10/span 10}.xs\:col-span-11{grid-column:span 11/span 11}.xs\:col-span-12{grid-column:span 12/span 12}.xs\:col-span-full{grid-column:1/-1}.xs\:col-start-1{grid-column-start:1}.xs\:col-start-2{grid-column-start:2}.xs\:col-start-3{grid-column-start:3}.xs\:col-start-4{grid-column-start:4}.xs\:col-start-5{grid-column-start:5}.xs\:col-start-6{grid-column-start:6}.xs\:col-start-7{grid-column-start:7}.xs\:col-start-8{grid-column-start:8}.xs\:col-start-9{grid-column-start:9}.xs\:col-start-10{grid-column-start:10}.xs\:col-start-11{grid-column-start:11}.xs\:col-start-12{grid-column-start:12}.xs\:col-start-13{grid-column-start:13}.xs\:col-start-auto{grid-column-start:auto}.xs\:col-end-1{grid-column-end:1}.xs\:col-end-2{grid-column-end:2}.xs\:col-end-3{grid-column-end:3}.xs\:col-end-4{grid-column-end:4}.xs\:col-end-5{grid-column-end:5}.xs\:col-end-6{grid-column-end:6}.xs\:col-end-7{grid-column-end:7}.xs\:col-end-8{grid-column-end:8}.xs\:col-end-9{grid-column-end:9}.xs\:col-end-10{grid-column-end:10}.xs\:col-end-11{grid-column-end:11}.xs\:col-end-12{grid-column-end:12}.xs\:col-end-13{grid-column-end:13}.xs\:col-end-auto{grid-column-end:auto}.xs\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xs\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:grid-rows-none{grid-template-rows:none}.xs\:auto-rows-auto{grid-auto-rows:auto}.xs\:auto-rows-min{grid-auto-rows:min-content}.xs\:auto-rows-max{grid-auto-rows:max-content}.xs\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xs\:row-auto{grid-row:auto}.xs\:row-span-1{grid-row:span 1/span 1}.xs\:row-span-2{grid-row:span 2/span 2}.xs\:row-span-3{grid-row:span 3/span 3}.xs\:row-span-4{grid-row:span 4/span 4}.xs\:row-span-5{grid-row:span 5/span 5}.xs\:row-span-6{grid-row:span 6/span 6}.xs\:row-span-full{grid-row:1/-1}.xs\:row-start-1{grid-row-start:1}.xs\:row-start-2{grid-row-start:2}.xs\:row-start-3{grid-row-start:3}.xs\:row-start-4{grid-row-start:4}.xs\:row-start-5{grid-row-start:5}.xs\:row-start-6{grid-row-start:6}.xs\:row-start-7{grid-row-start:7}.xs\:row-start-auto{grid-row-start:auto}.xs\:row-end-1{grid-row-end:1}.xs\:row-end-2{grid-row-end:2}.xs\:row-end-3{grid-row-end:3}.xs\:row-end-4{grid-row-end:4}.xs\:row-end-5{grid-row-end:5}.xs\:row-end-6{grid-row-end:6}.xs\:row-end-7{grid-row-end:7}.xs\:row-end-auto{grid-row-end:auto}.xs\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xs\:transform-none{transform:none}.xs\:origin-center{transform-origin:center}.xs\:origin-top{transform-origin:top}.xs\:origin-top-right{transform-origin:top right}.xs\:origin-right{transform-origin:right}.xs\:origin-bottom-right{transform-origin:bottom right}.xs\:origin-bottom{transform-origin:bottom}.xs\:origin-bottom-left{transform-origin:bottom left}.xs\:origin-left{transform-origin:left}.xs\:origin-top-left{transform-origin:top left}.xs\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xs\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xs\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:scale-x-0{--transform-scale-x:0}.xs\:scale-x-50{--transform-scale-x:.5}.xs\:scale-x-75{--transform-scale-x:.75}.xs\:scale-x-90{--transform-scale-x:.9}.xs\:scale-x-95{--transform-scale-x:.95}.xs\:scale-x-100{--transform-scale-x:1}.xs\:scale-x-105{--transform-scale-x:1.05}.xs\:scale-x-110{--transform-scale-x:1.1}.xs\:scale-x-125{--transform-scale-x:1.25}.xs\:scale-x-150{--transform-scale-x:1.5}.xs\:scale-y-0{--transform-scale-y:0}.xs\:scale-y-50{--transform-scale-y:.5}.xs\:scale-y-75{--transform-scale-y:.75}.xs\:scale-y-90{--transform-scale-y:.9}.xs\:scale-y-95{--transform-scale-y:.95}.xs\:scale-y-100{--transform-scale-y:1}.xs\:scale-y-105{--transform-scale-y:1.05}.xs\:scale-y-110{--transform-scale-y:1.1}.xs\:scale-y-125{--transform-scale-y:1.25}.xs\:scale-y-150{--transform-scale-y:1.5}.xs\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xs\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xs\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:hover\:scale-x-0:hover{--transform-scale-x:0}.xs\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xs\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xs\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xs\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xs\:hover\:scale-x-100:hover{--transform-scale-x:1}.xs\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xs\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xs\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xs\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xs\:hover\:scale-y-0:hover{--transform-scale-y:0}.xs\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xs\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xs\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xs\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xs\:hover\:scale-y-100:hover{--transform-scale-y:1}.xs\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xs\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xs\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xs\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xs\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xs\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xs\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xs\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xs\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xs\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xs\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xs\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xs\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xs\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xs\:focus\:scale-x-0:focus{--transform-scale-x:0}.xs\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xs\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xs\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xs\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xs\:focus\:scale-x-100:focus{--transform-scale-x:1}.xs\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xs\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xs\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xs\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xs\:focus\:scale-y-0:focus{--transform-scale-y:0}.xs\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xs\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xs\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xs\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xs\:focus\:scale-y-100:focus{--transform-scale-y:1}.xs\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xs\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xs\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xs\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xs\:rotate-0{--transform-rotate:0}.xs\:rotate-1{--transform-rotate:1deg}.xs\:rotate-2{--transform-rotate:2deg}.xs\:rotate-3{--transform-rotate:3deg}.xs\:rotate-6{--transform-rotate:6deg}.xs\:rotate-12{--transform-rotate:12deg}.xs\:rotate-45{--transform-rotate:45deg}.xs\:rotate-90{--transform-rotate:90deg}.xs\:rotate-180{--transform-rotate:180deg}.xs\:-rotate-180{--transform-rotate:-180deg}.xs\:-rotate-90{--transform-rotate:-90deg}.xs\:-rotate-45{--transform-rotate:-45deg}.xs\:-rotate-12{--transform-rotate:-12deg}.xs\:-rotate-6{--transform-rotate:-6deg}.xs\:-rotate-3{--transform-rotate:-3deg}.xs\:-rotate-2{--transform-rotate:-2deg}.xs\:-rotate-1{--transform-rotate:-1deg}.xs\:hover\:rotate-0:hover{--transform-rotate:0}.xs\:hover\:rotate-1:hover{--transform-rotate:1deg}.xs\:hover\:rotate-2:hover{--transform-rotate:2deg}.xs\:hover\:rotate-3:hover{--transform-rotate:3deg}.xs\:hover\:rotate-6:hover{--transform-rotate:6deg}.xs\:hover\:rotate-12:hover{--transform-rotate:12deg}.xs\:hover\:rotate-45:hover{--transform-rotate:45deg}.xs\:hover\:rotate-90:hover{--transform-rotate:90deg}.xs\:hover\:rotate-180:hover{--transform-rotate:180deg}.xs\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xs\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xs\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xs\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xs\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xs\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xs\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xs\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xs\:focus\:rotate-0:focus{--transform-rotate:0}.xs\:focus\:rotate-1:focus{--transform-rotate:1deg}.xs\:focus\:rotate-2:focus{--transform-rotate:2deg}.xs\:focus\:rotate-3:focus{--transform-rotate:3deg}.xs\:focus\:rotate-6:focus{--transform-rotate:6deg}.xs\:focus\:rotate-12:focus{--transform-rotate:12deg}.xs\:focus\:rotate-45:focus{--transform-rotate:45deg}.xs\:focus\:rotate-90:focus{--transform-rotate:90deg}.xs\:focus\:rotate-180:focus{--transform-rotate:180deg}.xs\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xs\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xs\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xs\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xs\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xs\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xs\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xs\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xs\:translate-x-0{--transform-translate-x:0}.xs\:translate-x-1{--transform-translate-x:0.25rem}.xs\:translate-x-2{--transform-translate-x:0.5rem}.xs\:translate-x-3{--transform-translate-x:0.75rem}.xs\:translate-x-4{--transform-translate-x:1rem}.xs\:translate-x-5{--transform-translate-x:1.25rem}.xs\:translate-x-6{--transform-translate-x:1.5rem}.xs\:translate-x-8{--transform-translate-x:2rem}.xs\:translate-x-10{--transform-translate-x:2.5rem}.xs\:translate-x-12{--transform-translate-x:3rem}.xs\:translate-x-16{--transform-translate-x:4rem}.xs\:translate-x-20{--transform-translate-x:5rem}.xs\:translate-x-24{--transform-translate-x:6rem}.xs\:translate-x-32{--transform-translate-x:8rem}.xs\:translate-x-40{--transform-translate-x:10rem}.xs\:translate-x-48{--transform-translate-x:12rem}.xs\:translate-x-56{--transform-translate-x:14rem}.xs\:translate-x-64{--transform-translate-x:16rem}.xs\:translate-x-px{--transform-translate-x:1px}.xs\:-translate-x-1{--transform-translate-x:-0.25rem}.xs\:-translate-x-2{--transform-translate-x:-0.5rem}.xs\:-translate-x-3{--transform-translate-x:-0.75rem}.xs\:-translate-x-4{--transform-translate-x:-1rem}.xs\:-translate-x-5{--transform-translate-x:-1.25rem}.xs\:-translate-x-6{--transform-translate-x:-1.5rem}.xs\:-translate-x-8{--transform-translate-x:-2rem}.xs\:-translate-x-10{--transform-translate-x:-2.5rem}.xs\:-translate-x-12{--transform-translate-x:-3rem}.xs\:-translate-x-16{--transform-translate-x:-4rem}.xs\:-translate-x-20{--transform-translate-x:-5rem}.xs\:-translate-x-24{--transform-translate-x:-6rem}.xs\:-translate-x-32{--transform-translate-x:-8rem}.xs\:-translate-x-40{--transform-translate-x:-10rem}.xs\:-translate-x-48{--transform-translate-x:-12rem}.xs\:-translate-x-56{--transform-translate-x:-14rem}.xs\:-translate-x-64{--transform-translate-x:-16rem}.xs\:-translate-x-px{--transform-translate-x:-1px}.xs\:-translate-x-full{--transform-translate-x:-100%}.xs\:-translate-x-1\/2{--transform-translate-x:-50%}.xs\:translate-x-1\/2{--transform-translate-x:50%}.xs\:translate-x-full{--transform-translate-x:100%}.xs\:translate-y-0{--transform-translate-y:0}.xs\:translate-y-1{--transform-translate-y:0.25rem}.xs\:translate-y-2{--transform-translate-y:0.5rem}.xs\:translate-y-3{--transform-translate-y:0.75rem}.xs\:translate-y-4{--transform-translate-y:1rem}.xs\:translate-y-5{--transform-translate-y:1.25rem}.xs\:translate-y-6{--transform-translate-y:1.5rem}.xs\:translate-y-8{--transform-translate-y:2rem}.xs\:translate-y-10{--transform-translate-y:2.5rem}.xs\:translate-y-12{--transform-translate-y:3rem}.xs\:translate-y-16{--transform-translate-y:4rem}.xs\:translate-y-20{--transform-translate-y:5rem}.xs\:translate-y-24{--transform-translate-y:6rem}.xs\:translate-y-32{--transform-translate-y:8rem}.xs\:translate-y-40{--transform-translate-y:10rem}.xs\:translate-y-48{--transform-translate-y:12rem}.xs\:translate-y-56{--transform-translate-y:14rem}.xs\:translate-y-64{--transform-translate-y:16rem}.xs\:translate-y-px{--transform-translate-y:1px}.xs\:-translate-y-1{--transform-translate-y:-0.25rem}.xs\:-translate-y-2{--transform-translate-y:-0.5rem}.xs\:-translate-y-3{--transform-translate-y:-0.75rem}.xs\:-translate-y-4{--transform-translate-y:-1rem}.xs\:-translate-y-5{--transform-translate-y:-1.25rem}.xs\:-translate-y-6{--transform-translate-y:-1.5rem}.xs\:-translate-y-8{--transform-translate-y:-2rem}.xs\:-translate-y-10{--transform-translate-y:-2.5rem}.xs\:-translate-y-12{--transform-translate-y:-3rem}.xs\:-translate-y-16{--transform-translate-y:-4rem}.xs\:-translate-y-20{--transform-translate-y:-5rem}.xs\:-translate-y-24{--transform-translate-y:-6rem}.xs\:-translate-y-32{--transform-translate-y:-8rem}.xs\:-translate-y-40{--transform-translate-y:-10rem}.xs\:-translate-y-48{--transform-translate-y:-12rem}.xs\:-translate-y-56{--transform-translate-y:-14rem}.xs\:-translate-y-64{--transform-translate-y:-16rem}.xs\:-translate-y-px{--transform-translate-y:-1px}.xs\:-translate-y-full{--transform-translate-y:-100%}.xs\:-translate-y-1\/2{--transform-translate-y:-50%}.xs\:translate-y-1\/2{--transform-translate-y:50%}.xs\:translate-y-full{--transform-translate-y:100%}.xs\:hover\:translate-x-0:hover{--transform-translate-x:0}.xs\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xs\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xs\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xs\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xs\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xs\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xs\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xs\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xs\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xs\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xs\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xs\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xs\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xs\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xs\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xs\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xs\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xs\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xs\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xs\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xs\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xs\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xs\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xs\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xs\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xs\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xs\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xs\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xs\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xs\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xs\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xs\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xs\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xs\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xs\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xs\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xs\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xs\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xs\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xs\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xs\:hover\:translate-y-0:hover{--transform-translate-y:0}.xs\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xs\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xs\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xs\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xs\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xs\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xs\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xs\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xs\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xs\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xs\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xs\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xs\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xs\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xs\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xs\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xs\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xs\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xs\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xs\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xs\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xs\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xs\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xs\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xs\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xs\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xs\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xs\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xs\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xs\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xs\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xs\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xs\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xs\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xs\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xs\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xs\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xs\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xs\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xs\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xs\:focus\:translate-x-0:focus{--transform-translate-x:0}.xs\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xs\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xs\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xs\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xs\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xs\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xs\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xs\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xs\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xs\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xs\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xs\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xs\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xs\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xs\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xs\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xs\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xs\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xs\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xs\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xs\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xs\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xs\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xs\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xs\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xs\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xs\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xs\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xs\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xs\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xs\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xs\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xs\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xs\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xs\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xs\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xs\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xs\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xs\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xs\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xs\:focus\:translate-y-0:focus{--transform-translate-y:0}.xs\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xs\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xs\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xs\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xs\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xs\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xs\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xs\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xs\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xs\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xs\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xs\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xs\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xs\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xs\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xs\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xs\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xs\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xs\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xs\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xs\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xs\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xs\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xs\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xs\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xs\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xs\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xs\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xs\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xs\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xs\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xs\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xs\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xs\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xs\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xs\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xs\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xs\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xs\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xs\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xs\:skew-x-0{--transform-skew-x:0}.xs\:skew-x-1{--transform-skew-x:1deg}.xs\:skew-x-2{--transform-skew-x:2deg}.xs\:skew-x-3{--transform-skew-x:3deg}.xs\:skew-x-6{--transform-skew-x:6deg}.xs\:skew-x-12{--transform-skew-x:12deg}.xs\:-skew-x-12{--transform-skew-x:-12deg}.xs\:-skew-x-6{--transform-skew-x:-6deg}.xs\:-skew-x-3{--transform-skew-x:-3deg}.xs\:-skew-x-2{--transform-skew-x:-2deg}.xs\:-skew-x-1{--transform-skew-x:-1deg}.xs\:skew-y-0{--transform-skew-y:0}.xs\:skew-y-1{--transform-skew-y:1deg}.xs\:skew-y-2{--transform-skew-y:2deg}.xs\:skew-y-3{--transform-skew-y:3deg}.xs\:skew-y-6{--transform-skew-y:6deg}.xs\:skew-y-12{--transform-skew-y:12deg}.xs\:-skew-y-12{--transform-skew-y:-12deg}.xs\:-skew-y-6{--transform-skew-y:-6deg}.xs\:-skew-y-3{--transform-skew-y:-3deg}.xs\:-skew-y-2{--transform-skew-y:-2deg}.xs\:-skew-y-1{--transform-skew-y:-1deg}.xs\:hover\:skew-x-0:hover{--transform-skew-x:0}.xs\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xs\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xs\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xs\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xs\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xs\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xs\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xs\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xs\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xs\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xs\:hover\:skew-y-0:hover{--transform-skew-y:0}.xs\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xs\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xs\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xs\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xs\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xs\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xs\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xs\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xs\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xs\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xs\:focus\:skew-x-0:focus{--transform-skew-x:0}.xs\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xs\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xs\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xs\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xs\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xs\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xs\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xs\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xs\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xs\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xs\:focus\:skew-y-0:focus{--transform-skew-y:0}.xs\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xs\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xs\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xs\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xs\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xs\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xs\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xs\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xs\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xs\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xs\:transition-none{transition-property:none}.xs\:transition-all{transition-property:all}.xs\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xs\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xs\:transition-opacity{transition-property:opacity}.xs\:transition-shadow{transition-property:box-shadow}.xs\:transition-transform{transition-property:transform}.xs\:ease-linear{transition-timing-function:linear}.xs\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xs\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xs\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xs\:duration-75{transition-duration:75ms}.xs\:duration-100{transition-duration:.1s}.xs\:duration-150{transition-duration:.15s}.xs\:duration-200{transition-duration:.2s}.xs\:duration-300{transition-duration:.3s}.xs\:duration-500{transition-duration:.5s}.xs\:duration-700{transition-duration:.7s}.xs\:duration-1000{transition-duration:1s}.xs\:delay-75{transition-delay:75ms}.xs\:delay-100{transition-delay:.1s}.xs\:delay-150{transition-delay:.15s}.xs\:delay-200{transition-delay:.2s}.xs\:delay-300{transition-delay:.3s}.xs\:delay-500{transition-delay:.5s}.xs\:delay-700{transition-delay:.7s}.xs\:delay-1000{transition-delay:1s}.xs\:animate-none{animation:none}.xs\:animate-spin{animation:spin 1s linear infinite}.xs\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xs\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xs\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:360px){.sm\:container{max-width:360px}}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1480px){.sm\:container{max-width:1480px}}.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.sm\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.sm\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.sm\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.sm\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.sm\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.sm\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.sm\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.sm\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.sm\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.sm\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.sm\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.sm\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.sm\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.sm\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.sm\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.sm\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.sm\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.sm\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.sm\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.sm\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.sm\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.sm\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.sm\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.sm\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.sm\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.sm\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.sm\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.sm\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.sm\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.sm\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.sm\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.sm\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.sm\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.sm\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.sm\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.sm\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.sm\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.sm\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.sm\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.sm\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.sm\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.sm\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.sm\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.sm\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.sm\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.sm\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.sm\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.sm\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.sm\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.sm\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.sm\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.sm\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.sm\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.sm\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.sm\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.sm\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.sm\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.sm\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.sm\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.sm\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.sm\:divide-transparent>:not(template)~:not(template){border-color:transparent}.sm\:divide-current>:not(template)~:not(template){border-color:currentColor}.sm\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.sm\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.sm\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.sm\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.sm\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.sm\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.sm\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.sm\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.sm\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.sm\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.sm\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.sm\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.sm\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.sm\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.sm\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.sm\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.sm\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.sm\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.sm\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.sm\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.sm\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.sm\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.sm\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.sm\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.sm\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.sm\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.sm\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.sm\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.sm\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.sm\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.sm\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.sm\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.sm\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.sm\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.sm\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.sm\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.sm\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.sm\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.sm\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.sm\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.sm\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.sm\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.sm\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.sm\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.sm\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.sm\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.sm\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.sm\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.sm\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.sm\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.sm\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.sm\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.sm\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.sm\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.sm\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.sm\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.sm\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.sm\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.sm\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.sm\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.sm\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.sm\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.sm\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.sm\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.sm\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.sm\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.sm\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.sm\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.sm\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.sm\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.sm\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.sm\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.sm\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.sm\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.sm\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.sm\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.sm\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.sm\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.sm\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.sm\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.sm\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.sm\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.sm\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.sm\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.sm\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.sm\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.sm\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.sm\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.sm\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.sm\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.sm\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.sm\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.sm\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.sm\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.sm\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.sm\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.sm\:divide-solid>:not(template)~:not(template){border-style:solid}.sm\:divide-dashed>:not(template)~:not(template){border-style:dashed}.sm\:divide-dotted>:not(template)~:not(template){border-style:dotted}.sm\:divide-double>:not(template)~:not(template){border-style:double}.sm\:divide-none>:not(template)~:not(template){border-style:none}.sm\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.sm\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.sm\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.sm\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.sm\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.sm\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sm\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sm\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:appearance-none{-webkit-appearance:none;appearance:none}.sm\:bg-fixed{background-attachment:fixed}.sm\:bg-local{background-attachment:local}.sm\:bg-scroll{background-attachment:scroll}.sm\:bg-clip-border{background-clip:border-box}.sm\:bg-clip-padding{background-clip:padding-box}.sm\:bg-clip-content{background-clip:content-box}.sm\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.sm\:bg-transparent{background-color:transparent}.sm\:bg-current{background-color:currentColor}.sm\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:hover\:bg-transparent:hover{background-color:transparent}.sm\:hover\:bg-current:hover{background-color:currentColor}.sm\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:focus\:bg-transparent:focus{background-color:transparent}.sm\:focus\:bg-current:focus{background-color:currentColor}.sm\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.sm\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.sm\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.sm\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.sm\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.sm\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.sm\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.sm\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.sm\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.sm\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.sm\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.sm\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.sm\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.sm\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.sm\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.sm\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.sm\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.sm\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.sm\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.sm\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.sm\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.sm\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.sm\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.sm\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.sm\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.sm\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.sm\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.sm\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.sm\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.sm\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.sm\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.sm\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.sm\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.sm\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.sm\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.sm\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.sm\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.sm\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.sm\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.sm\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.sm\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.sm\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.sm\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.sm\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.sm\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.sm\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.sm\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.sm\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.sm\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.sm\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.sm\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.sm\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.sm\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.sm\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.sm\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.sm\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.sm\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.sm\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.sm\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.sm\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.sm\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.sm\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.sm\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.sm\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.sm\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.sm\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.sm\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.sm\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.sm\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.sm\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.sm\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.sm\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.sm\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.sm\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.sm\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.sm\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.sm\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.sm\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.sm\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.sm\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.sm\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.sm\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.sm\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.sm\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.sm\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.sm\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.sm\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.sm\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.sm\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.sm\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.sm\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.sm\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.sm\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.sm\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.sm\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.sm\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.sm\:bg-none{background-image:none}.sm\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.sm\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.sm\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.sm\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.sm\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.sm\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:to-transparent{--gradient-to-color:transparent}.sm\:to-current{--gradient-to-color:currentColor}.sm\:to-black{--gradient-to-color:#000}.sm\:to-white{--gradient-to-color:#fff}.sm\:to-gray-100{--gradient-to-color:#f7fafc}.sm\:to-gray-200{--gradient-to-color:#edf2f7}.sm\:to-gray-300{--gradient-to-color:#e2e8f0}.sm\:to-gray-400{--gradient-to-color:#cbd5e0}.sm\:to-gray-500{--gradient-to-color:#a0aec0}.sm\:to-gray-600{--gradient-to-color:#718096}.sm\:to-gray-700{--gradient-to-color:#4a5568}.sm\:to-gray-800{--gradient-to-color:#2d3748}.sm\:to-gray-900{--gradient-to-color:#1a202c}.sm\:to-red-100{--gradient-to-color:#fff5f5}.sm\:to-red-200{--gradient-to-color:#fed7d7}.sm\:to-red-300{--gradient-to-color:#feb2b2}.sm\:to-red-400{--gradient-to-color:#fc8181}.sm\:to-red-500{--gradient-to-color:#f56565}.sm\:to-red-600{--gradient-to-color:#e53e3e}.sm\:to-red-700{--gradient-to-color:#c53030}.sm\:to-red-800{--gradient-to-color:#9b2c2c}.sm\:to-red-900{--gradient-to-color:#742a2a}.sm\:to-orange-100{--gradient-to-color:#fffaf0}.sm\:to-orange-200{--gradient-to-color:#feebc8}.sm\:to-orange-300{--gradient-to-color:#fbd38d}.sm\:to-orange-400{--gradient-to-color:#f6ad55}.sm\:to-orange-500{--gradient-to-color:#ed8936}.sm\:to-orange-600{--gradient-to-color:#dd6b20}.sm\:to-orange-700{--gradient-to-color:#c05621}.sm\:to-orange-800{--gradient-to-color:#9c4221}.sm\:to-orange-900{--gradient-to-color:#7b341e}.sm\:to-yellow-100{--gradient-to-color:ivory}.sm\:to-yellow-200{--gradient-to-color:#fefcbf}.sm\:to-yellow-300{--gradient-to-color:#faf089}.sm\:to-yellow-400{--gradient-to-color:#f6e05e}.sm\:to-yellow-500{--gradient-to-color:#ecc94b}.sm\:to-yellow-600{--gradient-to-color:#d69e2e}.sm\:to-yellow-700{--gradient-to-color:#b7791f}.sm\:to-yellow-800{--gradient-to-color:#975a16}.sm\:to-yellow-900{--gradient-to-color:#744210}.sm\:to-green-100{--gradient-to-color:#f0fff4}.sm\:to-green-200{--gradient-to-color:#c6f6d5}.sm\:to-green-300{--gradient-to-color:#9ae6b4}.sm\:to-green-400{--gradient-to-color:#68d391}.sm\:to-green-500{--gradient-to-color:#48bb78}.sm\:to-green-600{--gradient-to-color:#38a169}.sm\:to-green-700{--gradient-to-color:#2f855a}.sm\:to-green-800{--gradient-to-color:#276749}.sm\:to-green-900{--gradient-to-color:#22543d}.sm\:to-teal-100{--gradient-to-color:#e6fffa}.sm\:to-teal-200{--gradient-to-color:#b2f5ea}.sm\:to-teal-300{--gradient-to-color:#81e6d9}.sm\:to-teal-400{--gradient-to-color:#4fd1c5}.sm\:to-teal-500{--gradient-to-color:#38b2ac}.sm\:to-teal-600{--gradient-to-color:#319795}.sm\:to-teal-700{--gradient-to-color:#2c7a7b}.sm\:to-teal-800{--gradient-to-color:#285e61}.sm\:to-teal-900{--gradient-to-color:#234e52}.sm\:to-blue-100{--gradient-to-color:#ebf8ff}.sm\:to-blue-200{--gradient-to-color:#bee3f8}.sm\:to-blue-300{--gradient-to-color:#90cdf4}.sm\:to-blue-400{--gradient-to-color:#63b3ed}.sm\:to-blue-500{--gradient-to-color:#4299e1}.sm\:to-blue-600{--gradient-to-color:#3182ce}.sm\:to-blue-700{--gradient-to-color:#2b6cb0}.sm\:to-blue-800{--gradient-to-color:#2c5282}.sm\:to-blue-900{--gradient-to-color:#2a4365}.sm\:to-indigo-100{--gradient-to-color:#ebf4ff}.sm\:to-indigo-200{--gradient-to-color:#c3dafe}.sm\:to-indigo-300{--gradient-to-color:#a3bffa}.sm\:to-indigo-400{--gradient-to-color:#7f9cf5}.sm\:to-indigo-500{--gradient-to-color:#667eea}.sm\:to-indigo-600{--gradient-to-color:#5a67d8}.sm\:to-indigo-700{--gradient-to-color:#4c51bf}.sm\:to-indigo-800{--gradient-to-color:#434190}.sm\:to-indigo-900{--gradient-to-color:#3c366b}.sm\:to-purple-100{--gradient-to-color:#faf5ff}.sm\:to-purple-200{--gradient-to-color:#e9d8fd}.sm\:to-purple-300{--gradient-to-color:#d6bcfa}.sm\:to-purple-400{--gradient-to-color:#b794f4}.sm\:to-purple-500{--gradient-to-color:#9f7aea}.sm\:to-purple-600{--gradient-to-color:#805ad5}.sm\:to-purple-700{--gradient-to-color:#6b46c1}.sm\:to-purple-800{--gradient-to-color:#553c9a}.sm\:to-purple-900{--gradient-to-color:#44337a}.sm\:to-pink-100{--gradient-to-color:#fff5f7}.sm\:to-pink-200{--gradient-to-color:#fed7e2}.sm\:to-pink-300{--gradient-to-color:#fbb6ce}.sm\:to-pink-400{--gradient-to-color:#f687b3}.sm\:to-pink-500{--gradient-to-color:#ed64a6}.sm\:to-pink-600{--gradient-to-color:#d53f8c}.sm\:to-pink-700{--gradient-to-color:#b83280}.sm\:to-pink-800{--gradient-to-color:#97266d}.sm\:to-pink-900{--gradient-to-color:#702459}.sm\:to-primary{--gradient-to-color:#00d1ff}.sm\:to-secondary{--gradient-to-color:#e077ff}.sm\:to-greenish-blue{--gradient-to-color:#adffed}.sm\:to-blue-gray{--gradient-to-color:#cfe1e6}.sm\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:hover\:to-transparent:hover{--gradient-to-color:transparent}.sm\:hover\:to-current:hover{--gradient-to-color:currentColor}.sm\:hover\:to-black:hover{--gradient-to-color:#000}.sm\:hover\:to-white:hover{--gradient-to-color:#fff}.sm\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.sm\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.sm\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.sm\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.sm\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.sm\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.sm\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.sm\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.sm\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.sm\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.sm\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.sm\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.sm\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.sm\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.sm\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.sm\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.sm\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.sm\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.sm\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.sm\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.sm\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.sm\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.sm\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.sm\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.sm\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.sm\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.sm\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.sm\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.sm\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.sm\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.sm\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.sm\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.sm\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.sm\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.sm\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.sm\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.sm\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.sm\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.sm\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.sm\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.sm\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.sm\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.sm\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.sm\:hover\:to-green-800:hover{--gradient-to-color:#276749}.sm\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.sm\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.sm\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.sm\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.sm\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.sm\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.sm\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.sm\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.sm\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.sm\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.sm\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.sm\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.sm\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.sm\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.sm\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.sm\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.sm\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.sm\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.sm\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.sm\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.sm\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.sm\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.sm\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.sm\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.sm\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.sm\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.sm\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.sm\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.sm\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.sm\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.sm\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.sm\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.sm\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.sm\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.sm\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.sm\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.sm\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.sm\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.sm\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.sm\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.sm\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.sm\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.sm\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.sm\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.sm\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.sm\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.sm\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.sm\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.sm\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.sm\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.sm\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.sm\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.sm\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.sm\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.sm\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.sm\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.sm\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.sm\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.sm\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.sm\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.sm\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.sm\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.sm\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.sm\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.sm\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.sm\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.sm\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.sm\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.sm\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.sm\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.sm\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.sm\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.sm\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.sm\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.sm\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.sm\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.sm\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.sm\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.sm\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.sm\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.sm\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.sm\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.sm\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.sm\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.sm\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.sm\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.sm\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.sm\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.sm\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.sm\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.sm\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.sm\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.sm\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.sm\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.sm\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.sm\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.sm\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.sm\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.sm\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.sm\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.sm\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.sm\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.sm\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.sm\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.sm\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.sm\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.sm\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.sm\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.sm\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.sm\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.sm\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.sm\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.sm\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.sm\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.sm\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.sm\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.sm\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.sm\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.sm\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.sm\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.sm\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.sm\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.sm\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.sm\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.sm\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.sm\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.sm\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.sm\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.sm\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.sm\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.sm\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.sm\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.sm\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.sm\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.sm\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.sm\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.sm\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.sm\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.sm\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.sm\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.sm\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.sm\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.sm\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.sm\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.sm\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.sm\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.sm\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.sm\:focus\:to-transparent:focus{--gradient-to-color:transparent}.sm\:focus\:to-current:focus{--gradient-to-color:currentColor}.sm\:focus\:to-black:focus{--gradient-to-color:#000}.sm\:focus\:to-white:focus{--gradient-to-color:#fff}.sm\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.sm\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.sm\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.sm\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.sm\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.sm\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.sm\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.sm\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.sm\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.sm\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.sm\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.sm\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.sm\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.sm\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.sm\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.sm\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.sm\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.sm\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.sm\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.sm\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.sm\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.sm\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.sm\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.sm\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.sm\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.sm\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.sm\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.sm\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.sm\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.sm\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.sm\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.sm\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.sm\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.sm\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.sm\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.sm\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.sm\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.sm\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.sm\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.sm\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.sm\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.sm\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.sm\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.sm\:focus\:to-green-800:focus{--gradient-to-color:#276749}.sm\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.sm\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.sm\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.sm\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.sm\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.sm\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.sm\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.sm\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.sm\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.sm\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.sm\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.sm\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.sm\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.sm\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.sm\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.sm\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.sm\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.sm\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.sm\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.sm\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.sm\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.sm\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.sm\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.sm\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.sm\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.sm\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.sm\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.sm\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.sm\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.sm\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.sm\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.sm\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.sm\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.sm\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.sm\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.sm\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.sm\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.sm\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.sm\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.sm\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.sm\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.sm\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.sm\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.sm\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.sm\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.sm\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.sm\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.sm\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.sm\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.sm\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.sm\:bg-opacity-0{--bg-opacity:0}.sm\:bg-opacity-25{--bg-opacity:0.25}.sm\:bg-opacity-50{--bg-opacity:0.5}.sm\:bg-opacity-75{--bg-opacity:0.75}.sm\:bg-opacity-100{--bg-opacity:1}.sm\:hover\:bg-opacity-0:hover{--bg-opacity:0}.sm\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.sm\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.sm\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.sm\:hover\:bg-opacity-100:hover{--bg-opacity:1}.sm\:focus\:bg-opacity-0:focus{--bg-opacity:0}.sm\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.sm\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.sm\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.sm\:focus\:bg-opacity-100:focus{--bg-opacity:1}.sm\:bg-bottom{background-position:bottom}.sm\:bg-center{background-position:50%}.sm\:bg-left{background-position:0}.sm\:bg-left-bottom{background-position:0 100%}.sm\:bg-left-top{background-position:0 0}.sm\:bg-right{background-position:100%}.sm\:bg-right-bottom{background-position:100% 100%}.sm\:bg-right-top{background-position:100% 0}.sm\:bg-top{background-position:top}.sm\:bg-repeat{background-repeat:repeat}.sm\:bg-no-repeat{background-repeat:no-repeat}.sm\:bg-repeat-x{background-repeat:repeat-x}.sm\:bg-repeat-y{background-repeat:repeat-y}.sm\:bg-repeat-round{background-repeat:round}.sm\:bg-repeat-space{background-repeat:space}.sm\:bg-auto{background-size:auto}.sm\:bg-cover{background-size:cover}.sm\:bg-contain{background-size:contain}.sm\:border-collapse{border-collapse:collapse}.sm\:border-separate{border-collapse:separate}.sm\:border-transparent{border-color:transparent}.sm\:border-current{border-color:currentColor}.sm\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:hover\:border-transparent:hover{border-color:transparent}.sm\:hover\:border-current:hover{border-color:currentColor}.sm\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:focus\:border-transparent:focus{border-color:transparent}.sm\:focus\:border-current:focus{border-color:currentColor}.sm\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.sm\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.sm\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.sm\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.sm\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.sm\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.sm\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.sm\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.sm\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.sm\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.sm\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.sm\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.sm\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.sm\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.sm\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.sm\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.sm\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.sm\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.sm\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.sm\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.sm\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.sm\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.sm\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.sm\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.sm\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.sm\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.sm\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.sm\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.sm\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.sm\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.sm\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.sm\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.sm\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.sm\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.sm\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.sm\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.sm\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.sm\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.sm\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.sm\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.sm\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.sm\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.sm\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.sm\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.sm\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.sm\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.sm\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.sm\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.sm\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.sm\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.sm\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.sm\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.sm\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.sm\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.sm\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.sm\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.sm\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.sm\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.sm\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.sm\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.sm\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.sm\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.sm\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.sm\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.sm\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.sm\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.sm\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.sm\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.sm\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.sm\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.sm\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.sm\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.sm\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.sm\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.sm\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.sm\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.sm\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.sm\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.sm\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.sm\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.sm\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.sm\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.sm\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.sm\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.sm\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.sm\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.sm\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.sm\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.sm\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.sm\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.sm\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.sm\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.sm\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.sm\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.sm\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.sm\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.sm\:border-opacity-0{--border-opacity:0}.sm\:border-opacity-25{--border-opacity:0.25}.sm\:border-opacity-50{--border-opacity:0.5}.sm\:border-opacity-75{--border-opacity:0.75}.sm\:border-opacity-100{--border-opacity:1}.sm\:hover\:border-opacity-0:hover{--border-opacity:0}.sm\:hover\:border-opacity-25:hover{--border-opacity:0.25}.sm\:hover\:border-opacity-50:hover{--border-opacity:0.5}.sm\:hover\:border-opacity-75:hover{--border-opacity:0.75}.sm\:hover\:border-opacity-100:hover{--border-opacity:1}.sm\:focus\:border-opacity-0:focus{--border-opacity:0}.sm\:focus\:border-opacity-25:focus{--border-opacity:0.25}.sm\:focus\:border-opacity-50:focus{--border-opacity:0.5}.sm\:focus\:border-opacity-75:focus{--border-opacity:0.75}.sm\:focus\:border-opacity-100:focus{--border-opacity:1}.sm\:rounded-none{border-radius:0}.sm\:rounded-sm{border-radius:.125rem}.sm\:rounded{border-radius:.25rem}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:rounded-2xl{border-radius:1rem}.sm\:rounded-3xl{border-radius:1.5rem}.sm\:rounded-full{border-radius:9999px}.sm\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.sm\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.sm\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.sm\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.sm\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.sm\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.sm\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.sm\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.sm\:rounded-t{border-top-left-radius:.25rem}.sm\:rounded-r,.sm\:rounded-t{border-top-right-radius:.25rem}.sm\:rounded-b,.sm\:rounded-r{border-bottom-right-radius:.25rem}.sm\:rounded-b,.sm\:rounded-l{border-bottom-left-radius:.25rem}.sm\:rounded-l{border-top-left-radius:.25rem}.sm\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.sm\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.sm\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.sm\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.sm\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.sm\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.sm\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.sm\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.sm\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.sm\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.sm\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.sm\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.sm\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.sm\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.sm\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.sm\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.sm\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.sm\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.sm\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.sm\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.sm\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.sm\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.sm\:rounded-tl-none{border-top-left-radius:0}.sm\:rounded-tr-none{border-top-right-radius:0}.sm\:rounded-br-none{border-bottom-right-radius:0}.sm\:rounded-bl-none{border-bottom-left-radius:0}.sm\:rounded-tl-sm{border-top-left-radius:.125rem}.sm\:rounded-tr-sm{border-top-right-radius:.125rem}.sm\:rounded-br-sm{border-bottom-right-radius:.125rem}.sm\:rounded-bl-sm{border-bottom-left-radius:.125rem}.sm\:rounded-tl{border-top-left-radius:.25rem}.sm\:rounded-tr{border-top-right-radius:.25rem}.sm\:rounded-br{border-bottom-right-radius:.25rem}.sm\:rounded-bl{border-bottom-left-radius:.25rem}.sm\:rounded-tl-md{border-top-left-radius:.375rem}.sm\:rounded-tr-md{border-top-right-radius:.375rem}.sm\:rounded-br-md{border-bottom-right-radius:.375rem}.sm\:rounded-bl-md{border-bottom-left-radius:.375rem}.sm\:rounded-tl-lg{border-top-left-radius:.5rem}.sm\:rounded-tr-lg{border-top-right-radius:.5rem}.sm\:rounded-br-lg{border-bottom-right-radius:.5rem}.sm\:rounded-bl-lg{border-bottom-left-radius:.5rem}.sm\:rounded-tl-xl{border-top-left-radius:.75rem}.sm\:rounded-tr-xl{border-top-right-radius:.75rem}.sm\:rounded-br-xl{border-bottom-right-radius:.75rem}.sm\:rounded-bl-xl{border-bottom-left-radius:.75rem}.sm\:rounded-tl-2xl{border-top-left-radius:1rem}.sm\:rounded-tr-2xl{border-top-right-radius:1rem}.sm\:rounded-br-2xl{border-bottom-right-radius:1rem}.sm\:rounded-bl-2xl{border-bottom-left-radius:1rem}.sm\:rounded-tl-3xl{border-top-left-radius:1.5rem}.sm\:rounded-tr-3xl{border-top-right-radius:1.5rem}.sm\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.sm\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.sm\:rounded-tl-full{border-top-left-radius:9999px}.sm\:rounded-tr-full{border-top-right-radius:9999px}.sm\:rounded-br-full{border-bottom-right-radius:9999px}.sm\:rounded-bl-full{border-bottom-left-radius:9999px}.sm\:border-solid{border-style:solid}.sm\:border-dashed{border-style:dashed}.sm\:border-dotted{border-style:dotted}.sm\:border-double{border-style:double}.sm\:border-none{border-style:none}.sm\:border-0{border-width:0}.sm\:border-2{border-width:2px}.sm\:border-4{border-width:4px}.sm\:border-8{border-width:8px}.sm\:border{border-width:1px}.sm\:border-t-0{border-top-width:0}.sm\:border-r-0{border-right-width:0}.sm\:border-b-0{border-bottom-width:0}.sm\:border-l-0{border-left-width:0}.sm\:border-t-2{border-top-width:2px}.sm\:border-r-2{border-right-width:2px}.sm\:border-b-2{border-bottom-width:2px}.sm\:border-l-2{border-left-width:2px}.sm\:border-t-4{border-top-width:4px}.sm\:border-r-4{border-right-width:4px}.sm\:border-b-4{border-bottom-width:4px}.sm\:border-l-4{border-left-width:4px}.sm\:border-t-8{border-top-width:8px}.sm\:border-r-8{border-right-width:8px}.sm\:border-b-8{border-bottom-width:8px}.sm\:border-l-8{border-left-width:8px}.sm\:border-t{border-top-width:1px}.sm\:border-r{border-right-width:1px}.sm\:border-b{border-bottom-width:1px}.sm\:border-l{border-left-width:1px}.sm\:box-border{box-sizing:border-box}.sm\:box-content{box-sizing:content-box}.sm\:cursor-auto{cursor:auto}.sm\:cursor-default{cursor:default}.sm\:cursor-pointer{cursor:pointer}.sm\:cursor-wait{cursor:wait}.sm\:cursor-text{cursor:text}.sm\:cursor-move{cursor:move}.sm\:cursor-not-allowed{cursor:not-allowed}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:table{display:table}.sm\:table-caption{display:table-caption}.sm\:table-cell{display:table-cell}.sm\:table-column{display:table-column}.sm\:table-column-group{display:table-column-group}.sm\:table-footer-group{display:table-footer-group}.sm\:table-header-group{display:table-header-group}.sm\:table-row-group{display:table-row-group}.sm\:table-row{display:table-row}.sm\:flow-root{display:flow-root}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:contents{display:contents}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-col{flex-direction:column}.sm\:flex-col-reverse{flex-direction:column-reverse}.sm\:flex-wrap{flex-wrap:wrap}.sm\:flex-wrap-reverse{flex-wrap:wrap-reverse}.sm\:flex-no-wrap{flex-wrap:nowrap}.sm\:place-items-auto{place-items:auto}.sm\:place-items-start{place-items:start}.sm\:place-items-end{place-items:end}.sm\:place-items-center{place-items:center}.sm\:place-items-stretch{place-items:stretch}.sm\:place-content-center{place-content:center}.sm\:place-content-start{place-content:start}.sm\:place-content-end{place-content:end}.sm\:place-content-between{place-content:space-between}.sm\:place-content-around{place-content:space-around}.sm\:place-content-evenly{place-content:space-evenly}.sm\:place-content-stretch{place-content:stretch}.sm\:place-self-auto{place-self:auto}.sm\:place-self-start{place-self:start}.sm\:place-self-end{place-self:end}.sm\:place-self-center{place-self:center}.sm\:place-self-stretch{place-self:stretch}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:items-baseline{align-items:baseline}.sm\:items-stretch{align-items:stretch}.sm\:content-center{align-content:center}.sm\:content-start{align-content:flex-start}.sm\:content-end{align-content:flex-end}.sm\:content-between{align-content:space-between}.sm\:content-around{align-content:space-around}.sm\:content-evenly{align-content:space-evenly}.sm\:self-auto{align-self:auto}.sm\:self-start{align-self:flex-start}.sm\:self-end{align-self:flex-end}.sm\:self-center{align-self:center}.sm\:self-stretch{align-self:stretch}.sm\:justify-items-auto{justify-items:auto}.sm\:justify-items-start{justify-items:start}.sm\:justify-items-end{justify-items:end}.sm\:justify-items-center{justify-items:center}.sm\:justify-items-stretch{justify-items:stretch}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-around{justify-content:space-around}.sm\:justify-evenly{justify-content:space-evenly}.sm\:justify-self-auto{justify-self:auto}.sm\:justify-self-start{justify-self:start}.sm\:justify-self-end{justify-self:end}.sm\:justify-self-center{justify-self:center}.sm\:justify-self-stretch{justify-self:stretch}.sm\:flex-1{flex:1 1 0%}.sm\:flex-auto{flex:1 1 auto}.sm\:flex-initial{flex:0 1 auto}.sm\:flex-none{flex:none}.sm\:flex-grow-0{flex-grow:0}.sm\:flex-grow{flex-grow:1}.sm\:flex-shrink-0{flex-shrink:0}.sm\:flex-shrink{flex-shrink:1}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:order-6{order:6}.sm\:order-7{order:7}.sm\:order-8{order:8}.sm\:order-9{order:9}.sm\:order-10{order:10}.sm\:order-11{order:11}.sm\:order-12{order:12}.sm\:order-first{order:-9999}.sm\:order-last{order:9999}.sm\:order-none{order:0}.sm\:float-right{float:right}.sm\:float-left{float:left}.sm\:float-none{float:none}.sm\:clearfix:after{content:"";display:table;clear:both}.sm\:clear-left{clear:left}.sm\:clear-right{clear:right}.sm\:clear-both{clear:both}.sm\:clear-none{clear:none}.sm\:font-sans{font-family: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}.sm\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.sm\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.sm\:font-hairline{font-weight:100}.sm\:font-thin{font-weight:200}.sm\:font-light{font-weight:300}.sm\:font-normal{font-weight:400}.sm\:font-medium{font-weight:500}.sm\:font-semibold{font-weight:600}.sm\:font-bold{font-weight:700}.sm\:font-extrabold{font-weight:800}.sm\:font-black{font-weight:900}.sm\:hover\:font-hairline:hover{font-weight:100}.sm\:hover\:font-thin:hover{font-weight:200}.sm\:hover\:font-light:hover{font-weight:300}.sm\:hover\:font-normal:hover{font-weight:400}.sm\:hover\:font-medium:hover{font-weight:500}.sm\:hover\:font-semibold:hover{font-weight:600}.sm\:hover\:font-bold:hover{font-weight:700}.sm\:hover\:font-extrabold:hover{font-weight:800}.sm\:hover\:font-black:hover{font-weight:900}.sm\:focus\:font-hairline:focus{font-weight:100}.sm\:focus\:font-thin:focus{font-weight:200}.sm\:focus\:font-light:focus{font-weight:300}.sm\:focus\:font-normal:focus{font-weight:400}.sm\:focus\:font-medium:focus{font-weight:500}.sm\:focus\:font-semibold:focus{font-weight:600}.sm\:focus\:font-bold:focus{font-weight:700}.sm\:focus\:font-extrabold:focus{font-weight:800}.sm\:focus\:font-black:focus{font-weight:900}.sm\:h-0{height:0}.sm\:h-1{height:.25rem}.sm\:h-2{height:.5rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-16{height:4rem}.sm\:h-20{height:5rem}.sm\:h-24{height:6rem}.sm\:h-32{height:8rem}.sm\:h-40{height:10rem}.sm\:h-48{height:12rem}.sm\:h-56{height:14rem}.sm\:h-64{height:16rem}.sm\:h-auto{height:auto}.sm\:h-px{height:1px}.sm\:h-full{height:100%}.sm\:h-screen{height:100vh}.sm\:text-xs{font-size:.75rem}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}.sm\:text-lg{font-size:1.125rem}.sm\:text-xl{font-size:1.25rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:text-4xl{font-size:2.25rem}.sm\:text-5xl{font-size:3rem}.sm\:text-6xl{font-size:4rem}.sm\:leading-3{line-height:.75rem}.sm\:leading-4{line-height:1rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-8{line-height:2rem}.sm\:leading-9{line-height:2.25rem}.sm\:leading-10{line-height:2.5rem}.sm\:leading-none{line-height:1}.sm\:leading-tight{line-height:1.25}.sm\:leading-snug{line-height:1.375}.sm\:leading-normal{line-height:1.5}.sm\:leading-relaxed{line-height:1.625}.sm\:leading-loose{line-height:2}.sm\:list-inside{list-style-position:inside}.sm\:list-outside{list-style-position:outside}.sm\:list-none{list-style-type:none}.sm\:list-disc{list-style-type:disc}.sm\:list-decimal{list-style-type:decimal}.sm\:m-0{margin:0}.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:m-3{margin:.75rem}.sm\:m-4{margin:1rem}.sm\:m-5{margin:1.25rem}.sm\:m-6{margin:1.5rem}.sm\:m-8{margin:2rem}.sm\:m-10{margin:2.5rem}.sm\:m-12{margin:3rem}.sm\:m-16{margin:4rem}.sm\:m-20{margin:5rem}.sm\:m-24{margin:6rem}.sm\:m-32{margin:8rem}.sm\:m-40{margin:10rem}.sm\:m-48{margin:12rem}.sm\:m-56{margin:14rem}.sm\:m-64{margin:16rem}.sm\:m-auto{margin:auto}.sm\:m-px{margin:1px}.sm\:-m-1{margin:-.25rem}.sm\:-m-2{margin:-.5rem}.sm\:-m-3{margin:-.75rem}.sm\:-m-4{margin:-1rem}.sm\:-m-5{margin:-1.25rem}.sm\:-m-6{margin:-1.5rem}.sm\:-m-8{margin:-2rem}.sm\:-m-10{margin:-2.5rem}.sm\:-m-12{margin:-3rem}.sm\:-m-16{margin:-4rem}.sm\:-m-20{margin:-5rem}.sm\:-m-24{margin:-6rem}.sm\:-m-32{margin:-8rem}.sm\:-m-40{margin:-10rem}.sm\:-m-48{margin:-12rem}.sm\:-m-56{margin:-14rem}.sm\:-m-64{margin:-16rem}.sm\:-m-px{margin:-1px}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-1{margin-top:.25rem;margin-bottom:.25rem}.sm\:mx-1{margin-left:.25rem;margin-right:.25rem}.sm\:my-2{margin-top:.5rem;margin-bottom:.5rem}.sm\:mx-2{margin-left:.5rem;margin-right:.5rem}.sm\:my-3{margin-top:.75rem;margin-bottom:.75rem}.sm\:mx-3{margin-left:.75rem;margin-right:.75rem}.sm\:my-4{margin-top:1rem;margin-bottom:1rem}.sm\:mx-4{margin-left:1rem;margin-right:1rem}.sm\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.sm\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.sm\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mx-8{margin-left:2rem;margin-right:2rem}.sm\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.sm\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mx-12{margin-left:3rem;margin-right:3rem}.sm\:my-16{margin-top:4rem;margin-bottom:4rem}.sm\:mx-16{margin-left:4rem;margin-right:4rem}.sm\:my-20{margin-top:5rem;margin-bottom:5rem}.sm\:mx-20{margin-left:5rem;margin-right:5rem}.sm\:my-24{margin-top:6rem;margin-bottom:6rem}.sm\:mx-24{margin-left:6rem;margin-right:6rem}.sm\:my-32{margin-top:8rem;margin-bottom:8rem}.sm\:mx-32{margin-left:8rem;margin-right:8rem}.sm\:my-40{margin-top:10rem;margin-bottom:10rem}.sm\:mx-40{margin-left:10rem;margin-right:10rem}.sm\:my-48{margin-top:12rem;margin-bottom:12rem}.sm\:mx-48{margin-left:12rem;margin-right:12rem}.sm\:my-56{margin-top:14rem;margin-bottom:14rem}.sm\:mx-56{margin-left:14rem;margin-right:14rem}.sm\:my-64{margin-top:16rem;margin-bottom:16rem}.sm\:mx-64{margin-left:16rem;margin-right:16rem}.sm\:my-auto{margin-top:auto;margin-bottom:auto}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-px{margin-top:1px;margin-bottom:1px}.sm\:mx-px{margin-left:1px;margin-right:1px}.sm\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.sm\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.sm\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sm\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.sm\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.sm\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.sm\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.sm\:-mx-4{margin-left:-1rem;margin-right:-1rem}.sm\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.sm\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.sm\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.sm\:-mx-8{margin-left:-2rem;margin-right:-2rem}.sm\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.sm\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.sm\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.sm\:-mx-12{margin-left:-3rem;margin-right:-3rem}.sm\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.sm\:-mx-16{margin-left:-4rem;margin-right:-4rem}.sm\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.sm\:-mx-20{margin-left:-5rem;margin-right:-5rem}.sm\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.sm\:-mx-24{margin-left:-6rem;margin-right:-6rem}.sm\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.sm\:-mx-32{margin-left:-8rem;margin-right:-8rem}.sm\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.sm\:-mx-40{margin-left:-10rem;margin-right:-10rem}.sm\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.sm\:-mx-48{margin-left:-12rem;margin-right:-12rem}.sm\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.sm\:-mx-56{margin-left:-14rem;margin-right:-14rem}.sm\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.sm\:-mx-64{margin-left:-16rem;margin-right:-16rem}.sm\:-my-px{margin-top:-1px;margin-bottom:-1px}.sm\:-mx-px{margin-left:-1px;margin-right:-1px}.sm\:mt-0{margin-top:0}.sm\:mr-0{margin-right:0}.sm\:mb-0{margin-bottom:0}.sm\:ml-0{margin-left:0}.sm\:mt-1{margin-top:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mb-1{margin-bottom:.25rem}.sm\:ml-1{margin-left:.25rem}.sm\:mt-2{margin-top:.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mb-2{margin-bottom:.5rem}.sm\:ml-2{margin-left:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mr-3{margin-right:.75rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:ml-3{margin-left:.75rem}.sm\:mt-4{margin-top:1rem}.sm\:mr-4{margin-right:1rem}.sm\:mb-4{margin-bottom:1rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:mr-5{margin-right:1.25rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:ml-5{margin-left:1.25rem}.sm\:mt-6{margin-top:1.5rem}.sm\:mr-6{margin-right:1.5rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-6{margin-left:1.5rem}.sm\:mt-8{margin-top:2rem}.sm\:mr-8{margin-right:2rem}.sm\:mb-8{margin-bottom:2rem}.sm\:ml-8{margin-left:2rem}.sm\:mt-10{margin-top:2.5rem}.sm\:mr-10{margin-right:2.5rem}.sm\:mb-10{margin-bottom:2.5rem}.sm\:ml-10{margin-left:2.5rem}.sm\:mt-12{margin-top:3rem}.sm\:mr-12{margin-right:3rem}.sm\:mb-12{margin-bottom:3rem}.sm\:ml-12{margin-left:3rem}.sm\:mt-16{margin-top:4rem}.sm\:mr-16{margin-right:4rem}.sm\:mb-16{margin-bottom:4rem}.sm\:ml-16{margin-left:4rem}.sm\:mt-20{margin-top:5rem}.sm\:mr-20{margin-right:5rem}.sm\:mb-20{margin-bottom:5rem}.sm\:ml-20{margin-left:5rem}.sm\:mt-24{margin-top:6rem}.sm\:mr-24{margin-right:6rem}.sm\:mb-24{margin-bottom:6rem}.sm\:ml-24{margin-left:6rem}.sm\:mt-32{margin-top:8rem}.sm\:mr-32{margin-right:8rem}.sm\:mb-32{margin-bottom:8rem}.sm\:ml-32{margin-left:8rem}.sm\:mt-40{margin-top:10rem}.sm\:mr-40{margin-right:10rem}.sm\:mb-40{margin-bottom:10rem}.sm\:ml-40{margin-left:10rem}.sm\:mt-48{margin-top:12rem}.sm\:mr-48{margin-right:12rem}.sm\:mb-48{margin-bottom:12rem}.sm\:ml-48{margin-left:12rem}.sm\:mt-56{margin-top:14rem}.sm\:mr-56{margin-right:14rem}.sm\:mb-56{margin-bottom:14rem}.sm\:ml-56{margin-left:14rem}.sm\:mt-64{margin-top:16rem}.sm\:mr-64{margin-right:16rem}.sm\:mb-64{margin-bottom:16rem}.sm\:ml-64{margin-left:16rem}.sm\:mt-auto{margin-top:auto}.sm\:mr-auto{margin-right:auto}.sm\:mb-auto{margin-bottom:auto}.sm\:ml-auto{margin-left:auto}.sm\:mt-px{margin-top:1px}.sm\:mr-px{margin-right:1px}.sm\:mb-px{margin-bottom:1px}.sm\:ml-px{margin-left:1px}.sm\:-mt-1{margin-top:-.25rem}.sm\:-mr-1{margin-right:-.25rem}.sm\:-mb-1{margin-bottom:-.25rem}.sm\:-ml-1{margin-left:-.25rem}.sm\:-mt-2{margin-top:-.5rem}.sm\:-mr-2{margin-right:-.5rem}.sm\:-mb-2{margin-bottom:-.5rem}.sm\:-ml-2{margin-left:-.5rem}.sm\:-mt-3{margin-top:-.75rem}.sm\:-mr-3{margin-right:-.75rem}.sm\:-mb-3{margin-bottom:-.75rem}.sm\:-ml-3{margin-left:-.75rem}.sm\:-mt-4{margin-top:-1rem}.sm\:-mr-4{margin-right:-1rem}.sm\:-mb-4{margin-bottom:-1rem}.sm\:-ml-4{margin-left:-1rem}.sm\:-mt-5{margin-top:-1.25rem}.sm\:-mr-5{margin-right:-1.25rem}.sm\:-mb-5{margin-bottom:-1.25rem}.sm\:-ml-5{margin-left:-1.25rem}.sm\:-mt-6{margin-top:-1.5rem}.sm\:-mr-6{margin-right:-1.5rem}.sm\:-mb-6{margin-bottom:-1.5rem}.sm\:-ml-6{margin-left:-1.5rem}.sm\:-mt-8{margin-top:-2rem}.sm\:-mr-8{margin-right:-2rem}.sm\:-mb-8{margin-bottom:-2rem}.sm\:-ml-8{margin-left:-2rem}.sm\:-mt-10{margin-top:-2.5rem}.sm\:-mr-10{margin-right:-2.5rem}.sm\:-mb-10{margin-bottom:-2.5rem}.sm\:-ml-10{margin-left:-2.5rem}.sm\:-mt-12{margin-top:-3rem}.sm\:-mr-12{margin-right:-3rem}.sm\:-mb-12{margin-bottom:-3rem}.sm\:-ml-12{margin-left:-3rem}.sm\:-mt-16{margin-top:-4rem}.sm\:-mr-16{margin-right:-4rem}.sm\:-mb-16{margin-bottom:-4rem}.sm\:-ml-16{margin-left:-4rem}.sm\:-mt-20{margin-top:-5rem}.sm\:-mr-20{margin-right:-5rem}.sm\:-mb-20{margin-bottom:-5rem}.sm\:-ml-20{margin-left:-5rem}.sm\:-mt-24{margin-top:-6rem}.sm\:-mr-24{margin-right:-6rem}.sm\:-mb-24{margin-bottom:-6rem}.sm\:-ml-24{margin-left:-6rem}.sm\:-mt-32{margin-top:-8rem}.sm\:-mr-32{margin-right:-8rem}.sm\:-mb-32{margin-bottom:-8rem}.sm\:-ml-32{margin-left:-8rem}.sm\:-mt-40{margin-top:-10rem}.sm\:-mr-40{margin-right:-10rem}.sm\:-mb-40{margin-bottom:-10rem}.sm\:-ml-40{margin-left:-10rem}.sm\:-mt-48{margin-top:-12rem}.sm\:-mr-48{margin-right:-12rem}.sm\:-mb-48{margin-bottom:-12rem}.sm\:-ml-48{margin-left:-12rem}.sm\:-mt-56{margin-top:-14rem}.sm\:-mr-56{margin-right:-14rem}.sm\:-mb-56{margin-bottom:-14rem}.sm\:-ml-56{margin-left:-14rem}.sm\:-mt-64{margin-top:-16rem}.sm\:-mr-64{margin-right:-16rem}.sm\:-mb-64{margin-bottom:-16rem}.sm\:-ml-64{margin-left:-16rem}.sm\:-mt-px{margin-top:-1px}.sm\:-mr-px{margin-right:-1px}.sm\:-mb-px{margin-bottom:-1px}.sm\:-ml-px{margin-left:-1px}.sm\:max-h-full{max-height:100%}.sm\:max-h-screen{max-height:100vh}.sm\:max-w-none{max-width:none}.sm\:max-w-xs{max-width:20rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-xl{max-width:36rem}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-5xl{max-width:64rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-full{max-width:100%}.sm\:max-w-screen-xs{max-width:360px}.sm\:max-w-screen-sm{max-width:640px}.sm\:max-w-screen-md{max-width:768px}.sm\:max-w-screen-lg{max-width:1024px}.sm\:max-w-screen-xl{max-width:1280px}.sm\:max-w-screen-xxl{max-width:1480px}.sm\:min-h-0{min-height:0}.sm\:min-h-full{min-height:100%}.sm\:min-h-screen{min-height:100vh}.sm\:min-w-0{min-width:0}.sm\:min-w-full{min-width:100%}.sm\:object-contain{-o-object-fit:contain;object-fit:contain}.sm\:object-cover{-o-object-fit:cover;object-fit:cover}.sm\:object-fill{-o-object-fit:fill;object-fit:fill}.sm\:object-none{-o-object-fit:none;object-fit:none}.sm\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.sm\:object-bottom{-o-object-position:bottom;object-position:bottom}.sm\:object-center{-o-object-position:center;object-position:center}.sm\:object-left{-o-object-position:left;object-position:left}.sm\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.sm\:object-left-top{-o-object-position:left top;object-position:left top}.sm\:object-right{-o-object-position:right;object-position:right}.sm\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.sm\:object-right-top{-o-object-position:right top;object-position:right top}.sm\:object-top{-o-object-position:top;object-position:top}.sm\:opacity-0{opacity:0}.sm\:opacity-25{opacity:.25}.sm\:opacity-50{opacity:.5}.sm\:opacity-75{opacity:.75}.sm\:opacity-100{opacity:1}.sm\:hover\:opacity-0:hover{opacity:0}.sm\:hover\:opacity-25:hover{opacity:.25}.sm\:hover\:opacity-50:hover{opacity:.5}.sm\:hover\:opacity-75:hover{opacity:.75}.sm\:hover\:opacity-100:hover{opacity:1}.sm\:focus\:opacity-0:focus{opacity:0}.sm\:focus\:opacity-25:focus{opacity:.25}.sm\:focus\:opacity-50:focus{opacity:.5}.sm\:focus\:opacity-75:focus{opacity:.75}.sm\:focus\:opacity-100:focus{opacity:1}.sm\:outline-none{outline:2px solid transparent;outline-offset:2px}.sm\:outline-white{outline:2px dotted #fff;outline-offset:2px}.sm\:outline-black{outline:2px dotted #000;outline-offset:2px}.sm\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.sm\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.sm\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.sm\:overflow-auto{overflow:auto}.sm\:overflow-hidden{overflow:hidden}.sm\:overflow-visible{overflow:visible}.sm\:overflow-scroll{overflow:scroll}.sm\:overflow-x-auto{overflow-x:auto}.sm\:overflow-y-auto{overflow-y:auto}.sm\:overflow-x-hidden{overflow-x:hidden}.sm\:overflow-y-hidden{overflow-y:hidden}.sm\:overflow-x-visible{overflow-x:visible}.sm\:overflow-y-visible{overflow-y:visible}.sm\:overflow-x-scroll{overflow-x:scroll}.sm\:overflow-y-scroll{overflow-y:scroll}.sm\:scrolling-touch{-webkit-overflow-scrolling:touch}.sm\:scrolling-auto{-webkit-overflow-scrolling:auto}.sm\:overscroll-auto{overscroll-behavior:auto}.sm\:overscroll-contain{overscroll-behavior:contain}.sm\:overscroll-none{overscroll-behavior:none}.sm\:overscroll-y-auto{overscroll-behavior-y:auto}.sm\:overscroll-y-contain{overscroll-behavior-y:contain}.sm\:overscroll-y-none{overscroll-behavior-y:none}.sm\:overscroll-x-auto{overscroll-behavior-x:auto}.sm\:overscroll-x-contain{overscroll-behavior-x:contain}.sm\:overscroll-x-none{overscroll-behavior-x:none}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}.sm\:p-16{padding:4rem}.sm\:p-20{padding:5rem}.sm\:p-24{padding:6rem}.sm\:p-32{padding:8rem}.sm\:p-40{padding:10rem}.sm\:p-48{padding:12rem}.sm\:p-56{padding:14rem}.sm\:p-64{padding:16rem}.sm\:p-px{padding:1px}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:px-0{padding-left:0;padding-right:0}.sm\:py-1{padding-top:.25rem;padding-bottom:.25rem}.sm\:px-1{padding-left:.25rem;padding-right:.25rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:px-20{padding-left:5rem;padding-right:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:px-24{padding-left:6rem;padding-right:6rem}.sm\:py-32{padding-top:8rem;padding-bottom:8rem}.sm\:px-32{padding-left:8rem;padding-right:8rem}.sm\:py-40{padding-top:10rem;padding-bottom:10rem}.sm\:px-40{padding-left:10rem;padding-right:10rem}.sm\:py-48{padding-top:12rem;padding-bottom:12rem}.sm\:px-48{padding-left:12rem;padding-right:12rem}.sm\:py-56{padding-top:14rem;padding-bottom:14rem}.sm\:px-56{padding-left:14rem;padding-right:14rem}.sm\:py-64{padding-top:16rem;padding-bottom:16rem}.sm\:px-64{padding-left:16rem;padding-right:16rem}.sm\:py-px{padding-top:1px;padding-bottom:1px}.sm\:px-px{padding-left:1px;padding-right:1px}.sm\:pt-0{padding-top:0}.sm\:pr-0{padding-right:0}.sm\:pb-0{padding-bottom:0}.sm\:pl-0{padding-left:0}.sm\:pt-1{padding-top:.25rem}.sm\:pr-1{padding-right:.25rem}.sm\:pb-1{padding-bottom:.25rem}.sm\:pl-1{padding-left:.25rem}.sm\:pt-2{padding-top:.5rem}.sm\:pr-2{padding-right:.5rem}.sm\:pb-2{padding-bottom:.5rem}.sm\:pl-2{padding-left:.5rem}.sm\:pt-3{padding-top:.75rem}.sm\:pr-3{padding-right:.75rem}.sm\:pb-3{padding-bottom:.75rem}.sm\:pl-3{padding-left:.75rem}.sm\:pt-4{padding-top:1rem}.sm\:pr-4{padding-right:1rem}.sm\:pb-4{padding-bottom:1rem}.sm\:pl-4{padding-left:1rem}.sm\:pt-5{padding-top:1.25rem}.sm\:pr-5{padding-right:1.25rem}.sm\:pb-5{padding-bottom:1.25rem}.sm\:pl-5{padding-left:1.25rem}.sm\:pt-6{padding-top:1.5rem}.sm\:pr-6{padding-right:1.5rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pl-6{padding-left:1.5rem}.sm\:pt-8{padding-top:2rem}.sm\:pr-8{padding-right:2rem}.sm\:pb-8{padding-bottom:2rem}.sm\:pl-8{padding-left:2rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pr-10{padding-right:2.5rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:pl-10{padding-left:2.5rem}.sm\:pt-12{padding-top:3rem}.sm\:pr-12{padding-right:3rem}.sm\:pb-12{padding-bottom:3rem}.sm\:pl-12{padding-left:3rem}.sm\:pt-16{padding-top:4rem}.sm\:pr-16{padding-right:4rem}.sm\:pb-16{padding-bottom:4rem}.sm\:pl-16{padding-left:4rem}.sm\:pt-20{padding-top:5rem}.sm\:pr-20{padding-right:5rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pl-20{padding-left:5rem}.sm\:pt-24{padding-top:6rem}.sm\:pr-24{padding-right:6rem}.sm\:pb-24{padding-bottom:6rem}.sm\:pl-24{padding-left:6rem}.sm\:pt-32{padding-top:8rem}.sm\:pr-32{padding-right:8rem}.sm\:pb-32{padding-bottom:8rem}.sm\:pl-32{padding-left:8rem}.sm\:pt-40{padding-top:10rem}.sm\:pr-40{padding-right:10rem}.sm\:pb-40{padding-bottom:10rem}.sm\:pl-40{padding-left:10rem}.sm\:pt-48{padding-top:12rem}.sm\:pr-48{padding-right:12rem}.sm\:pb-48{padding-bottom:12rem}.sm\:pl-48{padding-left:12rem}.sm\:pt-56{padding-top:14rem}.sm\:pr-56{padding-right:14rem}.sm\:pb-56{padding-bottom:14rem}.sm\:pl-56{padding-left:14rem}.sm\:pt-64{padding-top:16rem}.sm\:pr-64{padding-right:16rem}.sm\:pb-64{padding-bottom:16rem}.sm\:pl-64{padding-left:16rem}.sm\:pt-px{padding-top:1px}.sm\:pr-px{padding-right:1px}.sm\:pb-px{padding-bottom:1px}.sm\:pl-px{padding-left:1px}.sm\:placeholder-transparent::placeholder{color:transparent}.sm\:placeholder-current::placeholder{color:currentColor}.sm\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.sm\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.sm\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.sm\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.sm\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.sm\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.sm\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.sm\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.sm\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.sm\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.sm\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.sm\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.sm\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.sm\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.sm\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.sm\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.sm\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.sm\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.sm\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.sm\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.sm\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.sm\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.sm\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.sm\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.sm\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.sm\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.sm\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.sm\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.sm\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.sm\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.sm\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.sm\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.sm\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.sm\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.sm\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.sm\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.sm\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.sm\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.sm\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.sm\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.sm\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.sm\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.sm\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.sm\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.sm\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.sm\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.sm\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.sm\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.sm\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.sm\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.sm\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.sm\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.sm\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.sm\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.sm\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.sm\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.sm\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.sm\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.sm\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.sm\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.sm\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.sm\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.sm\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.sm\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.sm\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.sm\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.sm\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.sm\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.sm\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.sm\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.sm\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.sm\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.sm\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.sm\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.sm\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.sm\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.sm\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.sm\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.sm\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.sm\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.sm\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.sm\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.sm\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.sm\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.sm\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.sm\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.sm\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.sm\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.sm\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.sm\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.sm\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.sm\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.sm\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.sm\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.sm\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.sm\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.sm\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.sm\:focus\:placeholder-current:focus::placeholder{color:currentColor}.sm\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.sm\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.sm\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.sm\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.sm\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.sm\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.sm\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.sm\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.sm\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.sm\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.sm\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.sm\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.sm\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.sm\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.sm\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.sm\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.sm\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.sm\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.sm\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.sm\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.sm\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.sm\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.sm\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.sm\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.sm\:pointer-events-none{pointer-events:none}.sm\:pointer-events-auto{pointer-events:auto}.sm\:static{position:static}.sm\:fixed{position:fixed}.sm\:absolute{position:absolute}.sm\:relative{position:relative}.sm\:sticky{position:sticky}.sm\:inset-0{top:0;right:0;bottom:0;left:0}.sm\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.sm\:inset-y-0{top:0;bottom:0}.sm\:inset-x-0{right:0;left:0}.sm\:inset-y-auto{top:auto;bottom:auto}.sm\:inset-x-auto{right:auto;left:auto}.sm\:top-0{top:0}.sm\:right-0{right:0}.sm\:bottom-0{bottom:0}.sm\:left-0{left:0}.sm\:top-auto{top:auto}.sm\:right-auto{right:auto}.sm\:bottom-auto{bottom:auto}.sm\:left-auto{left:auto}.sm\:resize-none{resize:none}.sm\:resize-y{resize:vertical}.sm\:resize-x{resize:horizontal}.sm\:resize{resize:both}.sm\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:shadow-none{box-shadow:none}.sm\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:hover\:shadow-none:hover{box-shadow:none}.sm\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.sm\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.sm\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.sm\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.sm\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.sm\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.sm\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.sm\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.sm\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.sm\:focus\:shadow-none:focus{box-shadow:none}.sm\:fill-current{fill:currentColor}.sm\:stroke-current{stroke:currentColor}.sm\:stroke-0{stroke-width:0}.sm\:stroke-1{stroke-width:1}.sm\:stroke-2{stroke-width:2}.sm\:table-auto{table-layout:auto}.sm\:table-fixed{table-layout:fixed}.sm\:text-left{text-align:left}.sm\:text-center{text-align:center}.sm\:text-right{text-align:right}.sm\:text-justify{text-align:justify}.sm\:text-transparent{color:transparent}.sm\:text-current{color:currentColor}.sm\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:hover\:text-transparent:hover{color:transparent}.sm\:hover\:text-current:hover{color:currentColor}.sm\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:focus\:text-transparent:focus{color:transparent}.sm\:focus\:text-current:focus{color:currentColor}.sm\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.sm\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.sm\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.sm\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.sm\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.sm\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.sm\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.sm\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.sm\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.sm\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.sm\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.sm\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.sm\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.sm\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.sm\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.sm\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.sm\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.sm\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.sm\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.sm\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.sm\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.sm\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.sm\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.sm\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.sm\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.sm\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.sm\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.sm\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.sm\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.sm\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.sm\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.sm\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.sm\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.sm\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.sm\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.sm\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.sm\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.sm\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.sm\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.sm\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.sm\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.sm\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.sm\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.sm\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.sm\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.sm\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.sm\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.sm\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.sm\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.sm\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.sm\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.sm\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.sm\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.sm\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.sm\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.sm\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.sm\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.sm\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.sm\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.sm\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.sm\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.sm\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.sm\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.sm\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.sm\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.sm\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.sm\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.sm\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.sm\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.sm\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.sm\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.sm\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.sm\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.sm\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.sm\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.sm\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.sm\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.sm\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.sm\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.sm\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.sm\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.sm\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.sm\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.sm\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.sm\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.sm\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.sm\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.sm\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.sm\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.sm\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.sm\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.sm\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.sm\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.sm\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.sm\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.sm\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.sm\:text-opacity-0{--text-opacity:0}.sm\:text-opacity-25{--text-opacity:0.25}.sm\:text-opacity-50{--text-opacity:0.5}.sm\:text-opacity-75{--text-opacity:0.75}.sm\:text-opacity-100{--text-opacity:1}.sm\:hover\:text-opacity-0:hover{--text-opacity:0}.sm\:hover\:text-opacity-25:hover{--text-opacity:0.25}.sm\:hover\:text-opacity-50:hover{--text-opacity:0.5}.sm\:hover\:text-opacity-75:hover{--text-opacity:0.75}.sm\:hover\:text-opacity-100:hover{--text-opacity:1}.sm\:focus\:text-opacity-0:focus{--text-opacity:0}.sm\:focus\:text-opacity-25:focus{--text-opacity:0.25}.sm\:focus\:text-opacity-50:focus{--text-opacity:0.5}.sm\:focus\:text-opacity-75:focus{--text-opacity:0.75}.sm\:focus\:text-opacity-100:focus{--text-opacity:1}.sm\:italic{font-style:italic}.sm\:not-italic{font-style:normal}.sm\:uppercase{text-transform:uppercase}.sm\:lowercase{text-transform:lowercase}.sm\:capitalize{text-transform:capitalize}.sm\:normal-case{text-transform:none}.sm\:underline{text-decoration:underline}.sm\:line-through{text-decoration:line-through}.sm\:no-underline{text-decoration:none}.sm\:hover\:underline:hover{text-decoration:underline}.sm\:hover\:line-through:hover{text-decoration:line-through}.sm\:hover\:no-underline:hover{text-decoration:none}.sm\:focus\:underline:focus{text-decoration:underline}.sm\:focus\:line-through:focus{text-decoration:line-through}.sm\:focus\:no-underline:focus{text-decoration:none}.sm\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sm\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.sm\:diagonal-fractions,.sm\:lining-nums,.sm\:oldstyle-nums,.sm\:ordinal,.sm\:proportional-nums,.sm\:slashed-zero,.sm\:stacked-fractions,.sm\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.sm\:normal-nums{font-variant-numeric:normal}.sm\:ordinal{--font-variant-numeric-ordinal:ordinal}.sm\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.sm\:lining-nums{--font-variant-numeric-figure:lining-nums}.sm\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.sm\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.sm\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.sm\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.sm\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.sm\:tracking-tighter{letter-spacing:-.05em}.sm\:tracking-tight{letter-spacing:-.025em}.sm\:tracking-normal{letter-spacing:0}.sm\:tracking-wide{letter-spacing:.025em}.sm\:tracking-wider{letter-spacing:.05em}.sm\:tracking-widest{letter-spacing:.1em}.sm\:select-none{-webkit-user-select:none;user-select:none}.sm\:select-text{-webkit-user-select:text;user-select:text}.sm\:select-all{-webkit-user-select:all;user-select:all}.sm\:select-auto{-webkit-user-select:auto;user-select:auto}.sm\:align-baseline{vertical-align:baseline}.sm\:align-top{vertical-align:top}.sm\:align-middle{vertical-align:middle}.sm\:align-bottom{vertical-align:bottom}.sm\:align-text-top{vertical-align:text-top}.sm\:align-text-bottom{vertical-align:text-bottom}.sm\:visible{visibility:visible}.sm\:invisible{visibility:hidden}.sm\:whitespace-normal{white-space:normal}.sm\:whitespace-no-wrap{white-space:nowrap}.sm\:whitespace-pre{white-space:pre}.sm\:whitespace-pre-line{white-space:pre-line}.sm\:whitespace-pre-wrap{white-space:pre-wrap}.sm\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.sm\:break-words{word-wrap:break-word;overflow-wrap:break-word}.sm\:break-all{word-break:break-all}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-0{width:0}.sm\:w-1{width:.25rem}.sm\:w-2{width:.5rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-10{width:2.5rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:w-20{width:5rem}.sm\:w-24{width:6rem}.sm\:w-32{width:8rem}.sm\:w-40{width:10rem}.sm\:w-48{width:12rem}.sm\:w-56{width:14rem}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-px{width:1px}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-1\/4{width:25%}.sm\:w-2\/4{width:50%}.sm\:w-3\/4{width:75%}.sm\:w-1\/5{width:20%}.sm\:w-2\/5{width:40%}.sm\:w-3\/5{width:60%}.sm\:w-4\/5{width:80%}.sm\:w-1\/6{width:16.666667%}.sm\:w-2\/6{width:33.333333%}.sm\:w-3\/6{width:50%}.sm\:w-4\/6{width:66.666667%}.sm\:w-5\/6{width:83.333333%}.sm\:w-1\/12{width:8.333333%}.sm\:w-2\/12{width:16.666667%}.sm\:w-3\/12{width:25%}.sm\:w-4\/12{width:33.333333%}.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:w-7\/12{width:58.333333%}.sm\:w-8\/12{width:66.666667%}.sm\:w-9\/12{width:75%}.sm\:w-10\/12{width:83.333333%}.sm\:w-11\/12{width:91.666667%}.sm\:w-full{width:100%}.sm\:w-screen{width:100vw}.sm\:z-0{z-index:0}.sm\:z-10{z-index:10}.sm\:z-20{z-index:20}.sm\:z-30{z-index:30}.sm\:z-40{z-index:40}.sm\:z-50{z-index:50}.sm\:z-auto{z-index:auto}.sm\:gap-0{grid-gap:0;gap:0}.sm\:gap-1{grid-gap:.25rem;gap:.25rem}.sm\:gap-2{grid-gap:.5rem;gap:.5rem}.sm\:gap-3{grid-gap:.75rem;gap:.75rem}.sm\:gap-4{grid-gap:1rem;gap:1rem}.sm\:gap-5{grid-gap:1.25rem;gap:1.25rem}.sm\:gap-6{grid-gap:1.5rem;gap:1.5rem}.sm\:gap-8{grid-gap:2rem;gap:2rem}.sm\:gap-10{grid-gap:2.5rem;gap:2.5rem}.sm\:gap-12{grid-gap:3rem;gap:3rem}.sm\:gap-16{grid-gap:4rem;gap:4rem}.sm\:gap-20{grid-gap:5rem;gap:5rem}.sm\:gap-24{grid-gap:6rem;gap:6rem}.sm\:gap-32{grid-gap:8rem;gap:8rem}.sm\:gap-40{grid-gap:10rem;gap:10rem}.sm\:gap-48{grid-gap:12rem;gap:12rem}.sm\:gap-56{grid-gap:14rem;gap:14rem}.sm\:gap-64{grid-gap:16rem;gap:16rem}.sm\:gap-px{grid-gap:1px;gap:1px}.sm\:col-gap-0{grid-column-gap:0;column-gap:0}.sm\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.sm\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.sm\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.sm\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.sm\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.sm\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.sm\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.sm\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.sm\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.sm\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.sm\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.sm\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.sm\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.sm\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.sm\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.sm\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.sm\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.sm\:col-gap-px{grid-column-gap:1px;column-gap:1px}.sm\:gap-x-0{grid-column-gap:0;column-gap:0}.sm\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.sm\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.sm\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.sm\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.sm\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.sm\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.sm\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.sm\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.sm\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.sm\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.sm\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.sm\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.sm\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.sm\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.sm\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.sm\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.sm\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.sm\:gap-x-px{grid-column-gap:1px;column-gap:1px}.sm\:row-gap-0{grid-row-gap:0;row-gap:0}.sm\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.sm\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.sm\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.sm\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.sm\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.sm\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.sm\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.sm\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.sm\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.sm\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.sm\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.sm\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.sm\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.sm\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.sm\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.sm\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.sm\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.sm\:row-gap-px{grid-row-gap:1px;row-gap:1px}.sm\:gap-y-0{grid-row-gap:0;row-gap:0}.sm\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.sm\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.sm\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.sm\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.sm\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.sm\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.sm\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.sm\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.sm\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.sm\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.sm\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.sm\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.sm\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.sm\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.sm\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.sm\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.sm\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.sm\:gap-y-px{grid-row-gap:1px;row-gap:1px}.sm\:grid-flow-row{grid-auto-flow:row}.sm\:grid-flow-col{grid-auto-flow:column}.sm\:grid-flow-row-dense{grid-auto-flow:row dense}.sm\:grid-flow-col-dense{grid-auto-flow:column dense}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.sm\:grid-cols-none{grid-template-columns:none}.sm\:auto-cols-auto{grid-auto-columns:auto}.sm\:auto-cols-min{grid-auto-columns:min-content}.sm\:auto-cols-max{grid-auto-columns:max-content}.sm\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.sm\:col-auto{grid-column:auto}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-span-7{grid-column:span 7/span 7}.sm\:col-span-8{grid-column:span 8/span 8}.sm\:col-span-9{grid-column:span 9/span 9}.sm\:col-span-10{grid-column:span 10/span 10}.sm\:col-span-11{grid-column:span 11/span 11}.sm\:col-span-12{grid-column:span 12/span 12}.sm\:col-span-full{grid-column:1/-1}.sm\:col-start-1{grid-column-start:1}.sm\:col-start-2{grid-column-start:2}.sm\:col-start-3{grid-column-start:3}.sm\:col-start-4{grid-column-start:4}.sm\:col-start-5{grid-column-start:5}.sm\:col-start-6{grid-column-start:6}.sm\:col-start-7{grid-column-start:7}.sm\:col-start-8{grid-column-start:8}.sm\:col-start-9{grid-column-start:9}.sm\:col-start-10{grid-column-start:10}.sm\:col-start-11{grid-column-start:11}.sm\:col-start-12{grid-column-start:12}.sm\:col-start-13{grid-column-start:13}.sm\:col-start-auto{grid-column-start:auto}.sm\:col-end-1{grid-column-end:1}.sm\:col-end-2{grid-column-end:2}.sm\:col-end-3{grid-column-end:3}.sm\:col-end-4{grid-column-end:4}.sm\:col-end-5{grid-column-end:5}.sm\:col-end-6{grid-column-end:6}.sm\:col-end-7{grid-column-end:7}.sm\:col-end-8{grid-column-end:8}.sm\:col-end-9{grid-column-end:9}.sm\:col-end-10{grid-column-end:10}.sm\:col-end-11{grid-column-end:11}.sm\:col-end-12{grid-column-end:12}.sm\:col-end-13{grid-column-end:13}.sm\:col-end-auto{grid-column-end:auto}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.sm\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:grid-rows-none{grid-template-rows:none}.sm\:auto-rows-auto{grid-auto-rows:auto}.sm\:auto-rows-min{grid-auto-rows:min-content}.sm\:auto-rows-max{grid-auto-rows:max-content}.sm\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.sm\:row-auto{grid-row:auto}.sm\:row-span-1{grid-row:span 1/span 1}.sm\:row-span-2{grid-row:span 2/span 2}.sm\:row-span-3{grid-row:span 3/span 3}.sm\:row-span-4{grid-row:span 4/span 4}.sm\:row-span-5{grid-row:span 5/span 5}.sm\:row-span-6{grid-row:span 6/span 6}.sm\:row-span-full{grid-row:1/-1}.sm\:row-start-1{grid-row-start:1}.sm\:row-start-2{grid-row-start:2}.sm\:row-start-3{grid-row-start:3}.sm\:row-start-4{grid-row-start:4}.sm\:row-start-5{grid-row-start:5}.sm\:row-start-6{grid-row-start:6}.sm\:row-start-7{grid-row-start:7}.sm\:row-start-auto{grid-row-start:auto}.sm\:row-end-1{grid-row-end:1}.sm\:row-end-2{grid-row-end:2}.sm\:row-end-3{grid-row-end:3}.sm\:row-end-4{grid-row-end:4}.sm\:row-end-5{grid-row-end:5}.sm\:row-end-6{grid-row-end:6}.sm\:row-end-7{grid-row-end:7}.sm\:row-end-auto{grid-row-end:auto}.sm\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.sm\:transform-none{transform:none}.sm\:origin-center{transform-origin:center}.sm\:origin-top{transform-origin:top}.sm\:origin-top-right{transform-origin:top right}.sm\:origin-right{transform-origin:right}.sm\:origin-bottom-right{transform-origin:bottom right}.sm\:origin-bottom{transform-origin:bottom}.sm\:origin-bottom-left{transform-origin:bottom left}.sm\:origin-left{transform-origin:left}.sm\:origin-top-left{transform-origin:top left}.sm\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.sm\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.sm\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:scale-x-0{--transform-scale-x:0}.sm\:scale-x-50{--transform-scale-x:.5}.sm\:scale-x-75{--transform-scale-x:.75}.sm\:scale-x-90{--transform-scale-x:.9}.sm\:scale-x-95{--transform-scale-x:.95}.sm\:scale-x-100{--transform-scale-x:1}.sm\:scale-x-105{--transform-scale-x:1.05}.sm\:scale-x-110{--transform-scale-x:1.1}.sm\:scale-x-125{--transform-scale-x:1.25}.sm\:scale-x-150{--transform-scale-x:1.5}.sm\:scale-y-0{--transform-scale-y:0}.sm\:scale-y-50{--transform-scale-y:.5}.sm\:scale-y-75{--transform-scale-y:.75}.sm\:scale-y-90{--transform-scale-y:.9}.sm\:scale-y-95{--transform-scale-y:.95}.sm\:scale-y-100{--transform-scale-y:1}.sm\:scale-y-105{--transform-scale-y:1.05}.sm\:scale-y-110{--transform-scale-y:1.1}.sm\:scale-y-125{--transform-scale-y:1.25}.sm\:scale-y-150{--transform-scale-y:1.5}.sm\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.sm\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.sm\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:hover\:scale-x-0:hover{--transform-scale-x:0}.sm\:hover\:scale-x-50:hover{--transform-scale-x:.5}.sm\:hover\:scale-x-75:hover{--transform-scale-x:.75}.sm\:hover\:scale-x-90:hover{--transform-scale-x:.9}.sm\:hover\:scale-x-95:hover{--transform-scale-x:.95}.sm\:hover\:scale-x-100:hover{--transform-scale-x:1}.sm\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.sm\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.sm\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.sm\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.sm\:hover\:scale-y-0:hover{--transform-scale-y:0}.sm\:hover\:scale-y-50:hover{--transform-scale-y:.5}.sm\:hover\:scale-y-75:hover{--transform-scale-y:.75}.sm\:hover\:scale-y-90:hover{--transform-scale-y:.9}.sm\:hover\:scale-y-95:hover{--transform-scale-y:.95}.sm\:hover\:scale-y-100:hover{--transform-scale-y:1}.sm\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.sm\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.sm\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.sm\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.sm\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.sm\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.sm\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.sm\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.sm\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.sm\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.sm\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.sm\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.sm\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.sm\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.sm\:focus\:scale-x-0:focus{--transform-scale-x:0}.sm\:focus\:scale-x-50:focus{--transform-scale-x:.5}.sm\:focus\:scale-x-75:focus{--transform-scale-x:.75}.sm\:focus\:scale-x-90:focus{--transform-scale-x:.9}.sm\:focus\:scale-x-95:focus{--transform-scale-x:.95}.sm\:focus\:scale-x-100:focus{--transform-scale-x:1}.sm\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.sm\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.sm\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.sm\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.sm\:focus\:scale-y-0:focus{--transform-scale-y:0}.sm\:focus\:scale-y-50:focus{--transform-scale-y:.5}.sm\:focus\:scale-y-75:focus{--transform-scale-y:.75}.sm\:focus\:scale-y-90:focus{--transform-scale-y:.9}.sm\:focus\:scale-y-95:focus{--transform-scale-y:.95}.sm\:focus\:scale-y-100:focus{--transform-scale-y:1}.sm\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.sm\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.sm\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.sm\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.sm\:rotate-0{--transform-rotate:0}.sm\:rotate-1{--transform-rotate:1deg}.sm\:rotate-2{--transform-rotate:2deg}.sm\:rotate-3{--transform-rotate:3deg}.sm\:rotate-6{--transform-rotate:6deg}.sm\:rotate-12{--transform-rotate:12deg}.sm\:rotate-45{--transform-rotate:45deg}.sm\:rotate-90{--transform-rotate:90deg}.sm\:rotate-180{--transform-rotate:180deg}.sm\:-rotate-180{--transform-rotate:-180deg}.sm\:-rotate-90{--transform-rotate:-90deg}.sm\:-rotate-45{--transform-rotate:-45deg}.sm\:-rotate-12{--transform-rotate:-12deg}.sm\:-rotate-6{--transform-rotate:-6deg}.sm\:-rotate-3{--transform-rotate:-3deg}.sm\:-rotate-2{--transform-rotate:-2deg}.sm\:-rotate-1{--transform-rotate:-1deg}.sm\:hover\:rotate-0:hover{--transform-rotate:0}.sm\:hover\:rotate-1:hover{--transform-rotate:1deg}.sm\:hover\:rotate-2:hover{--transform-rotate:2deg}.sm\:hover\:rotate-3:hover{--transform-rotate:3deg}.sm\:hover\:rotate-6:hover{--transform-rotate:6deg}.sm\:hover\:rotate-12:hover{--transform-rotate:12deg}.sm\:hover\:rotate-45:hover{--transform-rotate:45deg}.sm\:hover\:rotate-90:hover{--transform-rotate:90deg}.sm\:hover\:rotate-180:hover{--transform-rotate:180deg}.sm\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.sm\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.sm\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.sm\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.sm\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.sm\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.sm\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.sm\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.sm\:focus\:rotate-0:focus{--transform-rotate:0}.sm\:focus\:rotate-1:focus{--transform-rotate:1deg}.sm\:focus\:rotate-2:focus{--transform-rotate:2deg}.sm\:focus\:rotate-3:focus{--transform-rotate:3deg}.sm\:focus\:rotate-6:focus{--transform-rotate:6deg}.sm\:focus\:rotate-12:focus{--transform-rotate:12deg}.sm\:focus\:rotate-45:focus{--transform-rotate:45deg}.sm\:focus\:rotate-90:focus{--transform-rotate:90deg}.sm\:focus\:rotate-180:focus{--transform-rotate:180deg}.sm\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.sm\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.sm\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.sm\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.sm\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.sm\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.sm\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.sm\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.sm\:translate-x-0{--transform-translate-x:0}.sm\:translate-x-1{--transform-translate-x:0.25rem}.sm\:translate-x-2{--transform-translate-x:0.5rem}.sm\:translate-x-3{--transform-translate-x:0.75rem}.sm\:translate-x-4{--transform-translate-x:1rem}.sm\:translate-x-5{--transform-translate-x:1.25rem}.sm\:translate-x-6{--transform-translate-x:1.5rem}.sm\:translate-x-8{--transform-translate-x:2rem}.sm\:translate-x-10{--transform-translate-x:2.5rem}.sm\:translate-x-12{--transform-translate-x:3rem}.sm\:translate-x-16{--transform-translate-x:4rem}.sm\:translate-x-20{--transform-translate-x:5rem}.sm\:translate-x-24{--transform-translate-x:6rem}.sm\:translate-x-32{--transform-translate-x:8rem}.sm\:translate-x-40{--transform-translate-x:10rem}.sm\:translate-x-48{--transform-translate-x:12rem}.sm\:translate-x-56{--transform-translate-x:14rem}.sm\:translate-x-64{--transform-translate-x:16rem}.sm\:translate-x-px{--transform-translate-x:1px}.sm\:-translate-x-1{--transform-translate-x:-0.25rem}.sm\:-translate-x-2{--transform-translate-x:-0.5rem}.sm\:-translate-x-3{--transform-translate-x:-0.75rem}.sm\:-translate-x-4{--transform-translate-x:-1rem}.sm\:-translate-x-5{--transform-translate-x:-1.25rem}.sm\:-translate-x-6{--transform-translate-x:-1.5rem}.sm\:-translate-x-8{--transform-translate-x:-2rem}.sm\:-translate-x-10{--transform-translate-x:-2.5rem}.sm\:-translate-x-12{--transform-translate-x:-3rem}.sm\:-translate-x-16{--transform-translate-x:-4rem}.sm\:-translate-x-20{--transform-translate-x:-5rem}.sm\:-translate-x-24{--transform-translate-x:-6rem}.sm\:-translate-x-32{--transform-translate-x:-8rem}.sm\:-translate-x-40{--transform-translate-x:-10rem}.sm\:-translate-x-48{--transform-translate-x:-12rem}.sm\:-translate-x-56{--transform-translate-x:-14rem}.sm\:-translate-x-64{--transform-translate-x:-16rem}.sm\:-translate-x-px{--transform-translate-x:-1px}.sm\:-translate-x-full{--transform-translate-x:-100%}.sm\:-translate-x-1\/2{--transform-translate-x:-50%}.sm\:translate-x-1\/2{--transform-translate-x:50%}.sm\:translate-x-full{--transform-translate-x:100%}.sm\:translate-y-0{--transform-translate-y:0}.sm\:translate-y-1{--transform-translate-y:0.25rem}.sm\:translate-y-2{--transform-translate-y:0.5rem}.sm\:translate-y-3{--transform-translate-y:0.75rem}.sm\:translate-y-4{--transform-translate-y:1rem}.sm\:translate-y-5{--transform-translate-y:1.25rem}.sm\:translate-y-6{--transform-translate-y:1.5rem}.sm\:translate-y-8{--transform-translate-y:2rem}.sm\:translate-y-10{--transform-translate-y:2.5rem}.sm\:translate-y-12{--transform-translate-y:3rem}.sm\:translate-y-16{--transform-translate-y:4rem}.sm\:translate-y-20{--transform-translate-y:5rem}.sm\:translate-y-24{--transform-translate-y:6rem}.sm\:translate-y-32{--transform-translate-y:8rem}.sm\:translate-y-40{--transform-translate-y:10rem}.sm\:translate-y-48{--transform-translate-y:12rem}.sm\:translate-y-56{--transform-translate-y:14rem}.sm\:translate-y-64{--transform-translate-y:16rem}.sm\:translate-y-px{--transform-translate-y:1px}.sm\:-translate-y-1{--transform-translate-y:-0.25rem}.sm\:-translate-y-2{--transform-translate-y:-0.5rem}.sm\:-translate-y-3{--transform-translate-y:-0.75rem}.sm\:-translate-y-4{--transform-translate-y:-1rem}.sm\:-translate-y-5{--transform-translate-y:-1.25rem}.sm\:-translate-y-6{--transform-translate-y:-1.5rem}.sm\:-translate-y-8{--transform-translate-y:-2rem}.sm\:-translate-y-10{--transform-translate-y:-2.5rem}.sm\:-translate-y-12{--transform-translate-y:-3rem}.sm\:-translate-y-16{--transform-translate-y:-4rem}.sm\:-translate-y-20{--transform-translate-y:-5rem}.sm\:-translate-y-24{--transform-translate-y:-6rem}.sm\:-translate-y-32{--transform-translate-y:-8rem}.sm\:-translate-y-40{--transform-translate-y:-10rem}.sm\:-translate-y-48{--transform-translate-y:-12rem}.sm\:-translate-y-56{--transform-translate-y:-14rem}.sm\:-translate-y-64{--transform-translate-y:-16rem}.sm\:-translate-y-px{--transform-translate-y:-1px}.sm\:-translate-y-full{--transform-translate-y:-100%}.sm\:-translate-y-1\/2{--transform-translate-y:-50%}.sm\:translate-y-1\/2{--transform-translate-y:50%}.sm\:translate-y-full{--transform-translate-y:100%}.sm\:hover\:translate-x-0:hover{--transform-translate-x:0}.sm\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.sm\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.sm\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.sm\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.sm\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.sm\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.sm\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.sm\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.sm\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.sm\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.sm\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.sm\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.sm\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.sm\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.sm\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.sm\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.sm\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.sm\:hover\:translate-x-px:hover{--transform-translate-x:1px}.sm\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.sm\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.sm\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.sm\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.sm\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.sm\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.sm\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.sm\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.sm\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.sm\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.sm\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.sm\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.sm\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.sm\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.sm\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.sm\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.sm\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.sm\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.sm\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.sm\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.sm\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.sm\:hover\:translate-x-full:hover{--transform-translate-x:100%}.sm\:hover\:translate-y-0:hover{--transform-translate-y:0}.sm\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.sm\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.sm\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.sm\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.sm\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.sm\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.sm\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.sm\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.sm\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.sm\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.sm\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.sm\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.sm\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.sm\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.sm\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.sm\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.sm\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.sm\:hover\:translate-y-px:hover{--transform-translate-y:1px}.sm\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.sm\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.sm\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.sm\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.sm\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.sm\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.sm\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.sm\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.sm\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.sm\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.sm\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.sm\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.sm\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.sm\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.sm\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.sm\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.sm\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.sm\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.sm\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.sm\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.sm\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.sm\:hover\:translate-y-full:hover{--transform-translate-y:100%}.sm\:focus\:translate-x-0:focus{--transform-translate-x:0}.sm\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.sm\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.sm\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.sm\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.sm\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.sm\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.sm\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.sm\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.sm\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.sm\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.sm\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.sm\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.sm\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.sm\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.sm\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.sm\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.sm\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.sm\:focus\:translate-x-px:focus{--transform-translate-x:1px}.sm\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.sm\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.sm\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.sm\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.sm\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.sm\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.sm\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.sm\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.sm\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.sm\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.sm\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.sm\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.sm\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.sm\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.sm\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.sm\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.sm\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.sm\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.sm\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.sm\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.sm\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.sm\:focus\:translate-x-full:focus{--transform-translate-x:100%}.sm\:focus\:translate-y-0:focus{--transform-translate-y:0}.sm\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.sm\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.sm\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.sm\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.sm\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.sm\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.sm\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.sm\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.sm\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.sm\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.sm\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.sm\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.sm\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.sm\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.sm\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.sm\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.sm\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.sm\:focus\:translate-y-px:focus{--transform-translate-y:1px}.sm\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.sm\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.sm\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.sm\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.sm\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.sm\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.sm\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.sm\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.sm\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.sm\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.sm\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.sm\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.sm\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.sm\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.sm\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.sm\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.sm\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.sm\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.sm\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.sm\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.sm\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.sm\:focus\:translate-y-full:focus{--transform-translate-y:100%}.sm\:skew-x-0{--transform-skew-x:0}.sm\:skew-x-1{--transform-skew-x:1deg}.sm\:skew-x-2{--transform-skew-x:2deg}.sm\:skew-x-3{--transform-skew-x:3deg}.sm\:skew-x-6{--transform-skew-x:6deg}.sm\:skew-x-12{--transform-skew-x:12deg}.sm\:-skew-x-12{--transform-skew-x:-12deg}.sm\:-skew-x-6{--transform-skew-x:-6deg}.sm\:-skew-x-3{--transform-skew-x:-3deg}.sm\:-skew-x-2{--transform-skew-x:-2deg}.sm\:-skew-x-1{--transform-skew-x:-1deg}.sm\:skew-y-0{--transform-skew-y:0}.sm\:skew-y-1{--transform-skew-y:1deg}.sm\:skew-y-2{--transform-skew-y:2deg}.sm\:skew-y-3{--transform-skew-y:3deg}.sm\:skew-y-6{--transform-skew-y:6deg}.sm\:skew-y-12{--transform-skew-y:12deg}.sm\:-skew-y-12{--transform-skew-y:-12deg}.sm\:-skew-y-6{--transform-skew-y:-6deg}.sm\:-skew-y-3{--transform-skew-y:-3deg}.sm\:-skew-y-2{--transform-skew-y:-2deg}.sm\:-skew-y-1{--transform-skew-y:-1deg}.sm\:hover\:skew-x-0:hover{--transform-skew-x:0}.sm\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.sm\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.sm\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.sm\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.sm\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.sm\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.sm\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.sm\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.sm\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.sm\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.sm\:hover\:skew-y-0:hover{--transform-skew-y:0}.sm\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.sm\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.sm\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.sm\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.sm\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.sm\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.sm\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.sm\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.sm\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.sm\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.sm\:focus\:skew-x-0:focus{--transform-skew-x:0}.sm\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.sm\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.sm\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.sm\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.sm\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.sm\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.sm\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.sm\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.sm\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.sm\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.sm\:focus\:skew-y-0:focus{--transform-skew-y:0}.sm\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.sm\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.sm\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.sm\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.sm\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.sm\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.sm\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.sm\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.sm\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.sm\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.sm\:transition-none{transition-property:none}.sm\:transition-all{transition-property:all}.sm\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.sm\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.sm\:transition-opacity{transition-property:opacity}.sm\:transition-shadow{transition-property:box-shadow}.sm\:transition-transform{transition-property:transform}.sm\:ease-linear{transition-timing-function:linear}.sm\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.sm\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.sm\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sm\:duration-75{transition-duration:75ms}.sm\:duration-100{transition-duration:.1s}.sm\:duration-150{transition-duration:.15s}.sm\:duration-200{transition-duration:.2s}.sm\:duration-300{transition-duration:.3s}.sm\:duration-500{transition-duration:.5s}.sm\:duration-700{transition-duration:.7s}.sm\:duration-1000{transition-duration:1s}.sm\:delay-75{transition-delay:75ms}.sm\:delay-100{transition-delay:.1s}.sm\:delay-150{transition-delay:.15s}.sm\:delay-200{transition-delay:.2s}.sm\:delay-300{transition-delay:.3s}.sm\:delay-500{transition-delay:.5s}.sm\:delay-700{transition-delay:.7s}.sm\:delay-1000{transition-delay:1s}.sm\:animate-none{animation:none}.sm\:animate-spin{animation:spin 1s linear infinite}.sm\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.sm\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.sm\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:768px){.md\:container{width:100%}@media (min-width:360px){.md\:container{max-width:360px}}@media (min-width:640px){.md\:container{max-width:640px}}@media (min-width:768px){.md\:container{max-width:768px}}@media (min-width:1024px){.md\:container{max-width:1024px}}@media (min-width:1280px){.md\:container{max-width:1280px}}@media (min-width:1480px){.md\:container{max-width:1480px}}.md\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.md\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.md\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.md\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.md\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.md\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.md\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.md\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.md\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.md\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.md\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.md\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.md\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.md\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.md\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.md\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.md\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.md\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.md\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.md\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.md\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.md\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.md\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.md\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.md\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.md\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.md\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.md\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.md\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.md\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.md\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.md\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.md\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.md\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.md\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.md\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.md\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.md\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.md\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.md\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.md\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.md\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.md\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.md\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.md\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.md\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.md\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.md\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.md\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.md\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.md\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.md\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.md\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.md\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.md\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.md\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.md\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.md\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.md\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.md\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.md\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.md\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.md\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.md\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.md\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.md\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.md\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.md\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.md\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.md\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.md\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.md\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.md\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.md\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.md\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.md\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.md\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.md\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.md\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.md\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.md\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.md\:divide-transparent>:not(template)~:not(template){border-color:transparent}.md\:divide-current>:not(template)~:not(template){border-color:currentColor}.md\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.md\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.md\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.md\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.md\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.md\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.md\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.md\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.md\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.md\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.md\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.md\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.md\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.md\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.md\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.md\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.md\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.md\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.md\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.md\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.md\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.md\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.md\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.md\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.md\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.md\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.md\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.md\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.md\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.md\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.md\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.md\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.md\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.md\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.md\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.md\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.md\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.md\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.md\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.md\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.md\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.md\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.md\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.md\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.md\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.md\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.md\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.md\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.md\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.md\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.md\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.md\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.md\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.md\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.md\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.md\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.md\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.md\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.md\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.md\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.md\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.md\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.md\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.md\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.md\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.md\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.md\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.md\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.md\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.md\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.md\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.md\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.md\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.md\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.md\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.md\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.md\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.md\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.md\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.md\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.md\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.md\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.md\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.md\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.md\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.md\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.md\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.md\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.md\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.md\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.md\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.md\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.md\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.md\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.md\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.md\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.md\:divide-solid>:not(template)~:not(template){border-style:solid}.md\:divide-dashed>:not(template)~:not(template){border-style:dashed}.md\:divide-dotted>:not(template)~:not(template){border-style:dotted}.md\:divide-double>:not(template)~:not(template){border-style:double}.md\:divide-none>:not(template)~:not(template){border-style:none}.md\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.md\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.md\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.md\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.md\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.md\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.md\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.md\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.md\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.md\:appearance-none{-webkit-appearance:none;appearance:none}.md\:bg-fixed{background-attachment:fixed}.md\:bg-local{background-attachment:local}.md\:bg-scroll{background-attachment:scroll}.md\:bg-clip-border{background-clip:border-box}.md\:bg-clip-padding{background-clip:padding-box}.md\:bg-clip-content{background-clip:content-box}.md\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.md\:bg-transparent{background-color:transparent}.md\:bg-current{background-color:currentColor}.md\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:hover\:bg-transparent:hover{background-color:transparent}.md\:hover\:bg-current:hover{background-color:currentColor}.md\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:focus\:bg-transparent:focus{background-color:transparent}.md\:focus\:bg-current:focus{background-color:currentColor}.md\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.md\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.md\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.md\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.md\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.md\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.md\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.md\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.md\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.md\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.md\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.md\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.md\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.md\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.md\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.md\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.md\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.md\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.md\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.md\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.md\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.md\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.md\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.md\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.md\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.md\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.md\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.md\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.md\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.md\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.md\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.md\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.md\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.md\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.md\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.md\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.md\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.md\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.md\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.md\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.md\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.md\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.md\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.md\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.md\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.md\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.md\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.md\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.md\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.md\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.md\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.md\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.md\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.md\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.md\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.md\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.md\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.md\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.md\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.md\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.md\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.md\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.md\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.md\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.md\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.md\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.md\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.md\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.md\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.md\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.md\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.md\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.md\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.md\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.md\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.md\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.md\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.md\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.md\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.md\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.md\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.md\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.md\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.md\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.md\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.md\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.md\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.md\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.md\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.md\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.md\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.md\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.md\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.md\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.md\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.md\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.md\:bg-none{background-image:none}.md\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.md\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.md\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.md\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.md\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.md\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.md\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.md\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.md\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:to-transparent{--gradient-to-color:transparent}.md\:to-current{--gradient-to-color:currentColor}.md\:to-black{--gradient-to-color:#000}.md\:to-white{--gradient-to-color:#fff}.md\:to-gray-100{--gradient-to-color:#f7fafc}.md\:to-gray-200{--gradient-to-color:#edf2f7}.md\:to-gray-300{--gradient-to-color:#e2e8f0}.md\:to-gray-400{--gradient-to-color:#cbd5e0}.md\:to-gray-500{--gradient-to-color:#a0aec0}.md\:to-gray-600{--gradient-to-color:#718096}.md\:to-gray-700{--gradient-to-color:#4a5568}.md\:to-gray-800{--gradient-to-color:#2d3748}.md\:to-gray-900{--gradient-to-color:#1a202c}.md\:to-red-100{--gradient-to-color:#fff5f5}.md\:to-red-200{--gradient-to-color:#fed7d7}.md\:to-red-300{--gradient-to-color:#feb2b2}.md\:to-red-400{--gradient-to-color:#fc8181}.md\:to-red-500{--gradient-to-color:#f56565}.md\:to-red-600{--gradient-to-color:#e53e3e}.md\:to-red-700{--gradient-to-color:#c53030}.md\:to-red-800{--gradient-to-color:#9b2c2c}.md\:to-red-900{--gradient-to-color:#742a2a}.md\:to-orange-100{--gradient-to-color:#fffaf0}.md\:to-orange-200{--gradient-to-color:#feebc8}.md\:to-orange-300{--gradient-to-color:#fbd38d}.md\:to-orange-400{--gradient-to-color:#f6ad55}.md\:to-orange-500{--gradient-to-color:#ed8936}.md\:to-orange-600{--gradient-to-color:#dd6b20}.md\:to-orange-700{--gradient-to-color:#c05621}.md\:to-orange-800{--gradient-to-color:#9c4221}.md\:to-orange-900{--gradient-to-color:#7b341e}.md\:to-yellow-100{--gradient-to-color:ivory}.md\:to-yellow-200{--gradient-to-color:#fefcbf}.md\:to-yellow-300{--gradient-to-color:#faf089}.md\:to-yellow-400{--gradient-to-color:#f6e05e}.md\:to-yellow-500{--gradient-to-color:#ecc94b}.md\:to-yellow-600{--gradient-to-color:#d69e2e}.md\:to-yellow-700{--gradient-to-color:#b7791f}.md\:to-yellow-800{--gradient-to-color:#975a16}.md\:to-yellow-900{--gradient-to-color:#744210}.md\:to-green-100{--gradient-to-color:#f0fff4}.md\:to-green-200{--gradient-to-color:#c6f6d5}.md\:to-green-300{--gradient-to-color:#9ae6b4}.md\:to-green-400{--gradient-to-color:#68d391}.md\:to-green-500{--gradient-to-color:#48bb78}.md\:to-green-600{--gradient-to-color:#38a169}.md\:to-green-700{--gradient-to-color:#2f855a}.md\:to-green-800{--gradient-to-color:#276749}.md\:to-green-900{--gradient-to-color:#22543d}.md\:to-teal-100{--gradient-to-color:#e6fffa}.md\:to-teal-200{--gradient-to-color:#b2f5ea}.md\:to-teal-300{--gradient-to-color:#81e6d9}.md\:to-teal-400{--gradient-to-color:#4fd1c5}.md\:to-teal-500{--gradient-to-color:#38b2ac}.md\:to-teal-600{--gradient-to-color:#319795}.md\:to-teal-700{--gradient-to-color:#2c7a7b}.md\:to-teal-800{--gradient-to-color:#285e61}.md\:to-teal-900{--gradient-to-color:#234e52}.md\:to-blue-100{--gradient-to-color:#ebf8ff}.md\:to-blue-200{--gradient-to-color:#bee3f8}.md\:to-blue-300{--gradient-to-color:#90cdf4}.md\:to-blue-400{--gradient-to-color:#63b3ed}.md\:to-blue-500{--gradient-to-color:#4299e1}.md\:to-blue-600{--gradient-to-color:#3182ce}.md\:to-blue-700{--gradient-to-color:#2b6cb0}.md\:to-blue-800{--gradient-to-color:#2c5282}.md\:to-blue-900{--gradient-to-color:#2a4365}.md\:to-indigo-100{--gradient-to-color:#ebf4ff}.md\:to-indigo-200{--gradient-to-color:#c3dafe}.md\:to-indigo-300{--gradient-to-color:#a3bffa}.md\:to-indigo-400{--gradient-to-color:#7f9cf5}.md\:to-indigo-500{--gradient-to-color:#667eea}.md\:to-indigo-600{--gradient-to-color:#5a67d8}.md\:to-indigo-700{--gradient-to-color:#4c51bf}.md\:to-indigo-800{--gradient-to-color:#434190}.md\:to-indigo-900{--gradient-to-color:#3c366b}.md\:to-purple-100{--gradient-to-color:#faf5ff}.md\:to-purple-200{--gradient-to-color:#e9d8fd}.md\:to-purple-300{--gradient-to-color:#d6bcfa}.md\:to-purple-400{--gradient-to-color:#b794f4}.md\:to-purple-500{--gradient-to-color:#9f7aea}.md\:to-purple-600{--gradient-to-color:#805ad5}.md\:to-purple-700{--gradient-to-color:#6b46c1}.md\:to-purple-800{--gradient-to-color:#553c9a}.md\:to-purple-900{--gradient-to-color:#44337a}.md\:to-pink-100{--gradient-to-color:#fff5f7}.md\:to-pink-200{--gradient-to-color:#fed7e2}.md\:to-pink-300{--gradient-to-color:#fbb6ce}.md\:to-pink-400{--gradient-to-color:#f687b3}.md\:to-pink-500{--gradient-to-color:#ed64a6}.md\:to-pink-600{--gradient-to-color:#d53f8c}.md\:to-pink-700{--gradient-to-color:#b83280}.md\:to-pink-800{--gradient-to-color:#97266d}.md\:to-pink-900{--gradient-to-color:#702459}.md\:to-primary{--gradient-to-color:#00d1ff}.md\:to-secondary{--gradient-to-color:#e077ff}.md\:to-greenish-blue{--gradient-to-color:#adffed}.md\:to-blue-gray{--gradient-to-color:#cfe1e6}.md\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:hover\:to-transparent:hover{--gradient-to-color:transparent}.md\:hover\:to-current:hover{--gradient-to-color:currentColor}.md\:hover\:to-black:hover{--gradient-to-color:#000}.md\:hover\:to-white:hover{--gradient-to-color:#fff}.md\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.md\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.md\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.md\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.md\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.md\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.md\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.md\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.md\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.md\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.md\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.md\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.md\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.md\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.md\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.md\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.md\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.md\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.md\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.md\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.md\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.md\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.md\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.md\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.md\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.md\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.md\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.md\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.md\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.md\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.md\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.md\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.md\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.md\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.md\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.md\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.md\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.md\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.md\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.md\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.md\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.md\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.md\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.md\:hover\:to-green-800:hover{--gradient-to-color:#276749}.md\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.md\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.md\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.md\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.md\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.md\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.md\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.md\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.md\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.md\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.md\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.md\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.md\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.md\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.md\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.md\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.md\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.md\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.md\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.md\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.md\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.md\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.md\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.md\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.md\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.md\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.md\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.md\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.md\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.md\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.md\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.md\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.md\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.md\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.md\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.md\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.md\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.md\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.md\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.md\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.md\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.md\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.md\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.md\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.md\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.md\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.md\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.md\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.md\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.md\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.md\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.md\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.md\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.md\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.md\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.md\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.md\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.md\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.md\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.md\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.md\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.md\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.md\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.md\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.md\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.md\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.md\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.md\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.md\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.md\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.md\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.md\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.md\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.md\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.md\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.md\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.md\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.md\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.md\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.md\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.md\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.md\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.md\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.md\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.md\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.md\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.md\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.md\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.md\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.md\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.md\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.md\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.md\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.md\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.md\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.md\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.md\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.md\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.md\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.md\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.md\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.md\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.md\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.md\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.md\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.md\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.md\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.md\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.md\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.md\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.md\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.md\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.md\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.md\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.md\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.md\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.md\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.md\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.md\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.md\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.md\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.md\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.md\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.md\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.md\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.md\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.md\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.md\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.md\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.md\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.md\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.md\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.md\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.md\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.md\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.md\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.md\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.md\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.md\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.md\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.md\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.md\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.md\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.md\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.md\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.md\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.md\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.md\:focus\:to-transparent:focus{--gradient-to-color:transparent}.md\:focus\:to-current:focus{--gradient-to-color:currentColor}.md\:focus\:to-black:focus{--gradient-to-color:#000}.md\:focus\:to-white:focus{--gradient-to-color:#fff}.md\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.md\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.md\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.md\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.md\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.md\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.md\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.md\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.md\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.md\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.md\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.md\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.md\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.md\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.md\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.md\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.md\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.md\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.md\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.md\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.md\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.md\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.md\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.md\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.md\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.md\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.md\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.md\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.md\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.md\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.md\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.md\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.md\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.md\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.md\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.md\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.md\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.md\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.md\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.md\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.md\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.md\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.md\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.md\:focus\:to-green-800:focus{--gradient-to-color:#276749}.md\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.md\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.md\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.md\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.md\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.md\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.md\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.md\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.md\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.md\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.md\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.md\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.md\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.md\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.md\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.md\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.md\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.md\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.md\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.md\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.md\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.md\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.md\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.md\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.md\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.md\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.md\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.md\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.md\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.md\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.md\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.md\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.md\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.md\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.md\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.md\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.md\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.md\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.md\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.md\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.md\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.md\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.md\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.md\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.md\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.md\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.md\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.md\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.md\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.md\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.md\:bg-opacity-0{--bg-opacity:0}.md\:bg-opacity-25{--bg-opacity:0.25}.md\:bg-opacity-50{--bg-opacity:0.5}.md\:bg-opacity-75{--bg-opacity:0.75}.md\:bg-opacity-100{--bg-opacity:1}.md\:hover\:bg-opacity-0:hover{--bg-opacity:0}.md\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.md\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.md\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.md\:hover\:bg-opacity-100:hover{--bg-opacity:1}.md\:focus\:bg-opacity-0:focus{--bg-opacity:0}.md\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.md\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.md\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.md\:focus\:bg-opacity-100:focus{--bg-opacity:1}.md\:bg-bottom{background-position:bottom}.md\:bg-center{background-position:50%}.md\:bg-left{background-position:0}.md\:bg-left-bottom{background-position:0 100%}.md\:bg-left-top{background-position:0 0}.md\:bg-right{background-position:100%}.md\:bg-right-bottom{background-position:100% 100%}.md\:bg-right-top{background-position:100% 0}.md\:bg-top{background-position:top}.md\:bg-repeat{background-repeat:repeat}.md\:bg-no-repeat{background-repeat:no-repeat}.md\:bg-repeat-x{background-repeat:repeat-x}.md\:bg-repeat-y{background-repeat:repeat-y}.md\:bg-repeat-round{background-repeat:round}.md\:bg-repeat-space{background-repeat:space}.md\:bg-auto{background-size:auto}.md\:bg-cover{background-size:cover}.md\:bg-contain{background-size:contain}.md\:border-collapse{border-collapse:collapse}.md\:border-separate{border-collapse:separate}.md\:border-transparent{border-color:transparent}.md\:border-current{border-color:currentColor}.md\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:hover\:border-transparent:hover{border-color:transparent}.md\:hover\:border-current:hover{border-color:currentColor}.md\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:focus\:border-transparent:focus{border-color:transparent}.md\:focus\:border-current:focus{border-color:currentColor}.md\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.md\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.md\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.md\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.md\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.md\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.md\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.md\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.md\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.md\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.md\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.md\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.md\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.md\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.md\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.md\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.md\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.md\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.md\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.md\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.md\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.md\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.md\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.md\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.md\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.md\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.md\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.md\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.md\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.md\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.md\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.md\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.md\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.md\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.md\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.md\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.md\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.md\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.md\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.md\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.md\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.md\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.md\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.md\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.md\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.md\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.md\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.md\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.md\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.md\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.md\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.md\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.md\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.md\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.md\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.md\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.md\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.md\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.md\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.md\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.md\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.md\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.md\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.md\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.md\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.md\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.md\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.md\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.md\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.md\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.md\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.md\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.md\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.md\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.md\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.md\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.md\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.md\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.md\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.md\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.md\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.md\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.md\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.md\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.md\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.md\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.md\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.md\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.md\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.md\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.md\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.md\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.md\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.md\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.md\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.md\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.md\:border-opacity-0{--border-opacity:0}.md\:border-opacity-25{--border-opacity:0.25}.md\:border-opacity-50{--border-opacity:0.5}.md\:border-opacity-75{--border-opacity:0.75}.md\:border-opacity-100{--border-opacity:1}.md\:hover\:border-opacity-0:hover{--border-opacity:0}.md\:hover\:border-opacity-25:hover{--border-opacity:0.25}.md\:hover\:border-opacity-50:hover{--border-opacity:0.5}.md\:hover\:border-opacity-75:hover{--border-opacity:0.75}.md\:hover\:border-opacity-100:hover{--border-opacity:1}.md\:focus\:border-opacity-0:focus{--border-opacity:0}.md\:focus\:border-opacity-25:focus{--border-opacity:0.25}.md\:focus\:border-opacity-50:focus{--border-opacity:0.5}.md\:focus\:border-opacity-75:focus{--border-opacity:0.75}.md\:focus\:border-opacity-100:focus{--border-opacity:1}.md\:rounded-none{border-radius:0}.md\:rounded-sm{border-radius:.125rem}.md\:rounded{border-radius:.25rem}.md\:rounded-md{border-radius:.375rem}.md\:rounded-lg{border-radius:.5rem}.md\:rounded-xl{border-radius:.75rem}.md\:rounded-2xl{border-radius:1rem}.md\:rounded-3xl{border-radius:1.5rem}.md\:rounded-full{border-radius:9999px}.md\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.md\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.md\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.md\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.md\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.md\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.md\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.md\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.md\:rounded-t{border-top-left-radius:.25rem}.md\:rounded-r,.md\:rounded-t{border-top-right-radius:.25rem}.md\:rounded-b,.md\:rounded-r{border-bottom-right-radius:.25rem}.md\:rounded-b,.md\:rounded-l{border-bottom-left-radius:.25rem}.md\:rounded-l{border-top-left-radius:.25rem}.md\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.md\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.md\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.md\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.md\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.md\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.md\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.md\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.md\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.md\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.md\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.md\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.md\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.md\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.md\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.md\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.md\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.md\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.md\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.md\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.md\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.md\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.md\:rounded-tl-none{border-top-left-radius:0}.md\:rounded-tr-none{border-top-right-radius:0}.md\:rounded-br-none{border-bottom-right-radius:0}.md\:rounded-bl-none{border-bottom-left-radius:0}.md\:rounded-tl-sm{border-top-left-radius:.125rem}.md\:rounded-tr-sm{border-top-right-radius:.125rem}.md\:rounded-br-sm{border-bottom-right-radius:.125rem}.md\:rounded-bl-sm{border-bottom-left-radius:.125rem}.md\:rounded-tl{border-top-left-radius:.25rem}.md\:rounded-tr{border-top-right-radius:.25rem}.md\:rounded-br{border-bottom-right-radius:.25rem}.md\:rounded-bl{border-bottom-left-radius:.25rem}.md\:rounded-tl-md{border-top-left-radius:.375rem}.md\:rounded-tr-md{border-top-right-radius:.375rem}.md\:rounded-br-md{border-bottom-right-radius:.375rem}.md\:rounded-bl-md{border-bottom-left-radius:.375rem}.md\:rounded-tl-lg{border-top-left-radius:.5rem}.md\:rounded-tr-lg{border-top-right-radius:.5rem}.md\:rounded-br-lg{border-bottom-right-radius:.5rem}.md\:rounded-bl-lg{border-bottom-left-radius:.5rem}.md\:rounded-tl-xl{border-top-left-radius:.75rem}.md\:rounded-tr-xl{border-top-right-radius:.75rem}.md\:rounded-br-xl{border-bottom-right-radius:.75rem}.md\:rounded-bl-xl{border-bottom-left-radius:.75rem}.md\:rounded-tl-2xl{border-top-left-radius:1rem}.md\:rounded-tr-2xl{border-top-right-radius:1rem}.md\:rounded-br-2xl{border-bottom-right-radius:1rem}.md\:rounded-bl-2xl{border-bottom-left-radius:1rem}.md\:rounded-tl-3xl{border-top-left-radius:1.5rem}.md\:rounded-tr-3xl{border-top-right-radius:1.5rem}.md\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.md\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.md\:rounded-tl-full{border-top-left-radius:9999px}.md\:rounded-tr-full{border-top-right-radius:9999px}.md\:rounded-br-full{border-bottom-right-radius:9999px}.md\:rounded-bl-full{border-bottom-left-radius:9999px}.md\:border-solid{border-style:solid}.md\:border-dashed{border-style:dashed}.md\:border-dotted{border-style:dotted}.md\:border-double{border-style:double}.md\:border-none{border-style:none}.md\:border-0{border-width:0}.md\:border-2{border-width:2px}.md\:border-4{border-width:4px}.md\:border-8{border-width:8px}.md\:border{border-width:1px}.md\:border-t-0{border-top-width:0}.md\:border-r-0{border-right-width:0}.md\:border-b-0{border-bottom-width:0}.md\:border-l-0{border-left-width:0}.md\:border-t-2{border-top-width:2px}.md\:border-r-2{border-right-width:2px}.md\:border-b-2{border-bottom-width:2px}.md\:border-l-2{border-left-width:2px}.md\:border-t-4{border-top-width:4px}.md\:border-r-4{border-right-width:4px}.md\:border-b-4{border-bottom-width:4px}.md\:border-l-4{border-left-width:4px}.md\:border-t-8{border-top-width:8px}.md\:border-r-8{border-right-width:8px}.md\:border-b-8{border-bottom-width:8px}.md\:border-l-8{border-left-width:8px}.md\:border-t{border-top-width:1px}.md\:border-r{border-right-width:1px}.md\:border-b{border-bottom-width:1px}.md\:border-l{border-left-width:1px}.md\:box-border{box-sizing:border-box}.md\:box-content{box-sizing:content-box}.md\:cursor-auto{cursor:auto}.md\:cursor-default{cursor:default}.md\:cursor-pointer{cursor:pointer}.md\:cursor-wait{cursor:wait}.md\:cursor-text{cursor:text}.md\:cursor-move{cursor:move}.md\:cursor-not-allowed{cursor:not-allowed}.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:table{display:table}.md\:table-caption{display:table-caption}.md\:table-cell{display:table-cell}.md\:table-column{display:table-column}.md\:table-column-group{display:table-column-group}.md\:table-footer-group{display:table-footer-group}.md\:table-header-group{display:table-header-group}.md\:table-row-group{display:table-row-group}.md\:table-row{display:table-row}.md\:flow-root{display:flow-root}.md\:grid{display:grid}.md\:inline-grid{display:inline-grid}.md\:contents{display:contents}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:flex-col{flex-direction:column}.md\:flex-col-reverse{flex-direction:column-reverse}.md\:flex-wrap{flex-wrap:wrap}.md\:flex-wrap-reverse{flex-wrap:wrap-reverse}.md\:flex-no-wrap{flex-wrap:nowrap}.md\:place-items-auto{place-items:auto}.md\:place-items-start{place-items:start}.md\:place-items-end{place-items:end}.md\:place-items-center{place-items:center}.md\:place-items-stretch{place-items:stretch}.md\:place-content-center{place-content:center}.md\:place-content-start{place-content:start}.md\:place-content-end{place-content:end}.md\:place-content-between{place-content:space-between}.md\:place-content-around{place-content:space-around}.md\:place-content-evenly{place-content:space-evenly}.md\:place-content-stretch{place-content:stretch}.md\:place-self-auto{place-self:auto}.md\:place-self-start{place-self:start}.md\:place-self-end{place-self:end}.md\:place-self-center{place-self:center}.md\:place-self-stretch{place-self:stretch}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:items-baseline{align-items:baseline}.md\:items-stretch{align-items:stretch}.md\:content-center{align-content:center}.md\:content-start{align-content:flex-start}.md\:content-end{align-content:flex-end}.md\:content-between{align-content:space-between}.md\:content-around{align-content:space-around}.md\:content-evenly{align-content:space-evenly}.md\:self-auto{align-self:auto}.md\:self-start{align-self:flex-start}.md\:self-end{align-self:flex-end}.md\:self-center{align-self:center}.md\:self-stretch{align-self:stretch}.md\:justify-items-auto{justify-items:auto}.md\:justify-items-start{justify-items:start}.md\:justify-items-end{justify-items:end}.md\:justify-items-center{justify-items:center}.md\:justify-items-stretch{justify-items:stretch}.md\:justify-start{justify-content:flex-start}.md\:justify-end{justify-content:flex-end}.md\:justify-center{justify-content:center}.md\:justify-between{justify-content:space-between}.md\:justify-around{justify-content:space-around}.md\:justify-evenly{justify-content:space-evenly}.md\:justify-self-auto{justify-self:auto}.md\:justify-self-start{justify-self:start}.md\:justify-self-end{justify-self:end}.md\:justify-self-center{justify-self:center}.md\:justify-self-stretch{justify-self:stretch}.md\:flex-1{flex:1 1 0%}.md\:flex-auto{flex:1 1 auto}.md\:flex-initial{flex:0 1 auto}.md\:flex-none{flex:none}.md\:flex-grow-0{flex-grow:0}.md\:flex-grow{flex-grow:1}.md\:flex-shrink-0{flex-shrink:0}.md\:flex-shrink{flex-shrink:1}.md\:order-1{order:1}.md\:order-2{order:2}.md\:order-3{order:3}.md\:order-4{order:4}.md\:order-5{order:5}.md\:order-6{order:6}.md\:order-7{order:7}.md\:order-8{order:8}.md\:order-9{order:9}.md\:order-10{order:10}.md\:order-11{order:11}.md\:order-12{order:12}.md\:order-first{order:-9999}.md\:order-last{order:9999}.md\:order-none{order:0}.md\:float-right{float:right}.md\:float-left{float:left}.md\:float-none{float:none}.md\:clearfix:after{content:"";display:table;clear:both}.md\:clear-left{clear:left}.md\:clear-right{clear:right}.md\:clear-both{clear:both}.md\:clear-none{clear:none}.md\:font-sans{font-family: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}.md\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.md\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.md\:font-hairline{font-weight:100}.md\:font-thin{font-weight:200}.md\:font-light{font-weight:300}.md\:font-normal{font-weight:400}.md\:font-medium{font-weight:500}.md\:font-semibold{font-weight:600}.md\:font-bold{font-weight:700}.md\:font-extrabold{font-weight:800}.md\:font-black{font-weight:900}.md\:hover\:font-hairline:hover{font-weight:100}.md\:hover\:font-thin:hover{font-weight:200}.md\:hover\:font-light:hover{font-weight:300}.md\:hover\:font-normal:hover{font-weight:400}.md\:hover\:font-medium:hover{font-weight:500}.md\:hover\:font-semibold:hover{font-weight:600}.md\:hover\:font-bold:hover{font-weight:700}.md\:hover\:font-extrabold:hover{font-weight:800}.md\:hover\:font-black:hover{font-weight:900}.md\:focus\:font-hairline:focus{font-weight:100}.md\:focus\:font-thin:focus{font-weight:200}.md\:focus\:font-light:focus{font-weight:300}.md\:focus\:font-normal:focus{font-weight:400}.md\:focus\:font-medium:focus{font-weight:500}.md\:focus\:font-semibold:focus{font-weight:600}.md\:focus\:font-bold:focus{font-weight:700}.md\:focus\:font-extrabold:focus{font-weight:800}.md\:focus\:font-black:focus{font-weight:900}.md\:h-0{height:0}.md\:h-1{height:.25rem}.md\:h-2{height:.5rem}.md\:h-3{height:.75rem}.md\:h-4{height:1rem}.md\:h-5{height:1.25rem}.md\:h-6{height:1.5rem}.md\:h-8{height:2rem}.md\:h-10{height:2.5rem}.md\:h-12{height:3rem}.md\:h-16{height:4rem}.md\:h-20{height:5rem}.md\:h-24{height:6rem}.md\:h-32{height:8rem}.md\:h-40{height:10rem}.md\:h-48{height:12rem}.md\:h-56{height:14rem}.md\:h-64{height:16rem}.md\:h-auto{height:auto}.md\:h-px{height:1px}.md\:h-full{height:100%}.md\:h-screen{height:100vh}.md\:text-xs{font-size:.75rem}.md\:text-sm{font-size:.875rem}.md\:text-base{font-size:1rem}.md\:text-lg{font-size:1.125rem}.md\:text-xl{font-size:1.25rem}.md\:text-2xl{font-size:1.5rem}.md\:text-3xl{font-size:1.875rem}.md\:text-4xl{font-size:2.25rem}.md\:text-5xl{font-size:3rem}.md\:text-6xl{font-size:4rem}.md\:leading-3{line-height:.75rem}.md\:leading-4{line-height:1rem}.md\:leading-5{line-height:1.25rem}.md\:leading-6{line-height:1.5rem}.md\:leading-7{line-height:1.75rem}.md\:leading-8{line-height:2rem}.md\:leading-9{line-height:2.25rem}.md\:leading-10{line-height:2.5rem}.md\:leading-none{line-height:1}.md\:leading-tight{line-height:1.25}.md\:leading-snug{line-height:1.375}.md\:leading-normal{line-height:1.5}.md\:leading-relaxed{line-height:1.625}.md\:leading-loose{line-height:2}.md\:list-inside{list-style-position:inside}.md\:list-outside{list-style-position:outside}.md\:list-none{list-style-type:none}.md\:list-disc{list-style-type:disc}.md\:list-decimal{list-style-type:decimal}.md\:m-0{margin:0}.md\:m-1{margin:.25rem}.md\:m-2{margin:.5rem}.md\:m-3{margin:.75rem}.md\:m-4{margin:1rem}.md\:m-5{margin:1.25rem}.md\:m-6{margin:1.5rem}.md\:m-8{margin:2rem}.md\:m-10{margin:2.5rem}.md\:m-12{margin:3rem}.md\:m-16{margin:4rem}.md\:m-20{margin:5rem}.md\:m-24{margin:6rem}.md\:m-32{margin:8rem}.md\:m-40{margin:10rem}.md\:m-48{margin:12rem}.md\:m-56{margin:14rem}.md\:m-64{margin:16rem}.md\:m-auto{margin:auto}.md\:m-px{margin:1px}.md\:-m-1{margin:-.25rem}.md\:-m-2{margin:-.5rem}.md\:-m-3{margin:-.75rem}.md\:-m-4{margin:-1rem}.md\:-m-5{margin:-1.25rem}.md\:-m-6{margin:-1.5rem}.md\:-m-8{margin:-2rem}.md\:-m-10{margin:-2.5rem}.md\:-m-12{margin:-3rem}.md\:-m-16{margin:-4rem}.md\:-m-20{margin:-5rem}.md\:-m-24{margin:-6rem}.md\:-m-32{margin:-8rem}.md\:-m-40{margin:-10rem}.md\:-m-48{margin:-12rem}.md\:-m-56{margin:-14rem}.md\:-m-64{margin:-16rem}.md\:-m-px{margin:-1px}.md\:my-0{margin-top:0;margin-bottom:0}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-1{margin-top:.25rem;margin-bottom:.25rem}.md\:mx-1{margin-left:.25rem;margin-right:.25rem}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-2{margin-left:.5rem;margin-right:.5rem}.md\:my-3{margin-top:.75rem;margin-bottom:.75rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:my-4{margin-top:1rem;margin-bottom:1rem}.md\:mx-4{margin-left:1rem;margin-right:1rem}.md\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.md\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.md\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.md\:my-8{margin-top:2rem;margin-bottom:2rem}.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.md\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.md\:my-12{margin-top:3rem;margin-bottom:3rem}.md\:mx-12{margin-left:3rem;margin-right:3rem}.md\:my-16{margin-top:4rem;margin-bottom:4rem}.md\:mx-16{margin-left:4rem;margin-right:4rem}.md\:my-20{margin-top:5rem;margin-bottom:5rem}.md\:mx-20{margin-left:5rem;margin-right:5rem}.md\:my-24{margin-top:6rem;margin-bottom:6rem}.md\:mx-24{margin-left:6rem;margin-right:6rem}.md\:my-32{margin-top:8rem;margin-bottom:8rem}.md\:mx-32{margin-left:8rem;margin-right:8rem}.md\:my-40{margin-top:10rem;margin-bottom:10rem}.md\:mx-40{margin-left:10rem;margin-right:10rem}.md\:my-48{margin-top:12rem;margin-bottom:12rem}.md\:mx-48{margin-left:12rem;margin-right:12rem}.md\:my-56{margin-top:14rem;margin-bottom:14rem}.md\:mx-56{margin-left:14rem;margin-right:14rem}.md\:my-64{margin-top:16rem;margin-bottom:16rem}.md\:mx-64{margin-left:16rem;margin-right:16rem}.md\:my-auto{margin-top:auto;margin-bottom:auto}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:my-px{margin-top:1px;margin-bottom:1px}.md\:mx-px{margin-left:1px;margin-right:1px}.md\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.md\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.md\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.md\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.md\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.md\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.md\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.md\:-mx-4{margin-left:-1rem;margin-right:-1rem}.md\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.md\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.md\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.md\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.md\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.md\:-mx-8{margin-left:-2rem;margin-right:-2rem}.md\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.md\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.md\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.md\:-mx-12{margin-left:-3rem;margin-right:-3rem}.md\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.md\:-mx-16{margin-left:-4rem;margin-right:-4rem}.md\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.md\:-mx-20{margin-left:-5rem;margin-right:-5rem}.md\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.md\:-mx-24{margin-left:-6rem;margin-right:-6rem}.md\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.md\:-mx-32{margin-left:-8rem;margin-right:-8rem}.md\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.md\:-mx-40{margin-left:-10rem;margin-right:-10rem}.md\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.md\:-mx-48{margin-left:-12rem;margin-right:-12rem}.md\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.md\:-mx-56{margin-left:-14rem;margin-right:-14rem}.md\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.md\:-mx-64{margin-left:-16rem;margin-right:-16rem}.md\:-my-px{margin-top:-1px;margin-bottom:-1px}.md\:-mx-px{margin-left:-1px;margin-right:-1px}.md\:mt-0{margin-top:0}.md\:mr-0{margin-right:0}.md\:mb-0{margin-bottom:0}.md\:ml-0{margin-left:0}.md\:mt-1{margin-top:.25rem}.md\:mr-1{margin-right:.25rem}.md\:mb-1{margin-bottom:.25rem}.md\:ml-1{margin-left:.25rem}.md\:mt-2{margin-top:.5rem}.md\:mr-2{margin-right:.5rem}.md\:mb-2{margin-bottom:.5rem}.md\:ml-2{margin-left:.5rem}.md\:mt-3{margin-top:.75rem}.md\:mr-3{margin-right:.75rem}.md\:mb-3{margin-bottom:.75rem}.md\:ml-3{margin-left:.75rem}.md\:mt-4{margin-top:1rem}.md\:mr-4{margin-right:1rem}.md\:mb-4{margin-bottom:1rem}.md\:ml-4{margin-left:1rem}.md\:mt-5{margin-top:1.25rem}.md\:mr-5{margin-right:1.25rem}.md\:mb-5{margin-bottom:1.25rem}.md\:ml-5{margin-left:1.25rem}.md\:mt-6{margin-top:1.5rem}.md\:mr-6{margin-right:1.5rem}.md\:mb-6{margin-bottom:1.5rem}.md\:ml-6{margin-left:1.5rem}.md\:mt-8{margin-top:2rem}.md\:mr-8{margin-right:2rem}.md\:mb-8{margin-bottom:2rem}.md\:ml-8{margin-left:2rem}.md\:mt-10{margin-top:2.5rem}.md\:mr-10{margin-right:2.5rem}.md\:mb-10{margin-bottom:2.5rem}.md\:ml-10{margin-left:2.5rem}.md\:mt-12{margin-top:3rem}.md\:mr-12{margin-right:3rem}.md\:mb-12{margin-bottom:3rem}.md\:ml-12{margin-left:3rem}.md\:mt-16{margin-top:4rem}.md\:mr-16{margin-right:4rem}.md\:mb-16{margin-bottom:4rem}.md\:ml-16{margin-left:4rem}.md\:mt-20{margin-top:5rem}.md\:mr-20{margin-right:5rem}.md\:mb-20{margin-bottom:5rem}.md\:ml-20{margin-left:5rem}.md\:mt-24{margin-top:6rem}.md\:mr-24{margin-right:6rem}.md\:mb-24{margin-bottom:6rem}.md\:ml-24{margin-left:6rem}.md\:mt-32{margin-top:8rem}.md\:mr-32{margin-right:8rem}.md\:mb-32{margin-bottom:8rem}.md\:ml-32{margin-left:8rem}.md\:mt-40{margin-top:10rem}.md\:mr-40{margin-right:10rem}.md\:mb-40{margin-bottom:10rem}.md\:ml-40{margin-left:10rem}.md\:mt-48{margin-top:12rem}.md\:mr-48{margin-right:12rem}.md\:mb-48{margin-bottom:12rem}.md\:ml-48{margin-left:12rem}.md\:mt-56{margin-top:14rem}.md\:mr-56{margin-right:14rem}.md\:mb-56{margin-bottom:14rem}.md\:ml-56{margin-left:14rem}.md\:mt-64{margin-top:16rem}.md\:mr-64{margin-right:16rem}.md\:mb-64{margin-bottom:16rem}.md\:ml-64{margin-left:16rem}.md\:mt-auto{margin-top:auto}.md\:mr-auto{margin-right:auto}.md\:mb-auto{margin-bottom:auto}.md\:ml-auto{margin-left:auto}.md\:mt-px{margin-top:1px}.md\:mr-px{margin-right:1px}.md\:mb-px{margin-bottom:1px}.md\:ml-px{margin-left:1px}.md\:-mt-1{margin-top:-.25rem}.md\:-mr-1{margin-right:-.25rem}.md\:-mb-1{margin-bottom:-.25rem}.md\:-ml-1{margin-left:-.25rem}.md\:-mt-2{margin-top:-.5rem}.md\:-mr-2{margin-right:-.5rem}.md\:-mb-2{margin-bottom:-.5rem}.md\:-ml-2{margin-left:-.5rem}.md\:-mt-3{margin-top:-.75rem}.md\:-mr-3{margin-right:-.75rem}.md\:-mb-3{margin-bottom:-.75rem}.md\:-ml-3{margin-left:-.75rem}.md\:-mt-4{margin-top:-1rem}.md\:-mr-4{margin-right:-1rem}.md\:-mb-4{margin-bottom:-1rem}.md\:-ml-4{margin-left:-1rem}.md\:-mt-5{margin-top:-1.25rem}.md\:-mr-5{margin-right:-1.25rem}.md\:-mb-5{margin-bottom:-1.25rem}.md\:-ml-5{margin-left:-1.25rem}.md\:-mt-6{margin-top:-1.5rem}.md\:-mr-6{margin-right:-1.5rem}.md\:-mb-6{margin-bottom:-1.5rem}.md\:-ml-6{margin-left:-1.5rem}.md\:-mt-8{margin-top:-2rem}.md\:-mr-8{margin-right:-2rem}.md\:-mb-8{margin-bottom:-2rem}.md\:-ml-8{margin-left:-2rem}.md\:-mt-10{margin-top:-2.5rem}.md\:-mr-10{margin-right:-2.5rem}.md\:-mb-10{margin-bottom:-2.5rem}.md\:-ml-10{margin-left:-2.5rem}.md\:-mt-12{margin-top:-3rem}.md\:-mr-12{margin-right:-3rem}.md\:-mb-12{margin-bottom:-3rem}.md\:-ml-12{margin-left:-3rem}.md\:-mt-16{margin-top:-4rem}.md\:-mr-16{margin-right:-4rem}.md\:-mb-16{margin-bottom:-4rem}.md\:-ml-16{margin-left:-4rem}.md\:-mt-20{margin-top:-5rem}.md\:-mr-20{margin-right:-5rem}.md\:-mb-20{margin-bottom:-5rem}.md\:-ml-20{margin-left:-5rem}.md\:-mt-24{margin-top:-6rem}.md\:-mr-24{margin-right:-6rem}.md\:-mb-24{margin-bottom:-6rem}.md\:-ml-24{margin-left:-6rem}.md\:-mt-32{margin-top:-8rem}.md\:-mr-32{margin-right:-8rem}.md\:-mb-32{margin-bottom:-8rem}.md\:-ml-32{margin-left:-8rem}.md\:-mt-40{margin-top:-10rem}.md\:-mr-40{margin-right:-10rem}.md\:-mb-40{margin-bottom:-10rem}.md\:-ml-40{margin-left:-10rem}.md\:-mt-48{margin-top:-12rem}.md\:-mr-48{margin-right:-12rem}.md\:-mb-48{margin-bottom:-12rem}.md\:-ml-48{margin-left:-12rem}.md\:-mt-56{margin-top:-14rem}.md\:-mr-56{margin-right:-14rem}.md\:-mb-56{margin-bottom:-14rem}.md\:-ml-56{margin-left:-14rem}.md\:-mt-64{margin-top:-16rem}.md\:-mr-64{margin-right:-16rem}.md\:-mb-64{margin-bottom:-16rem}.md\:-ml-64{margin-left:-16rem}.md\:-mt-px{margin-top:-1px}.md\:-mr-px{margin-right:-1px}.md\:-mb-px{margin-bottom:-1px}.md\:-ml-px{margin-left:-1px}.md\:max-h-full{max-height:100%}.md\:max-h-screen{max-height:100vh}.md\:max-w-none{max-width:none}.md\:max-w-xs{max-width:20rem}.md\:max-w-sm{max-width:24rem}.md\:max-w-md{max-width:28rem}.md\:max-w-lg{max-width:32rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-2xl{max-width:42rem}.md\:max-w-3xl{max-width:48rem}.md\:max-w-4xl{max-width:56rem}.md\:max-w-5xl{max-width:64rem}.md\:max-w-6xl{max-width:72rem}.md\:max-w-full{max-width:100%}.md\:max-w-screen-xs{max-width:360px}.md\:max-w-screen-sm{max-width:640px}.md\:max-w-screen-md{max-width:768px}.md\:max-w-screen-lg{max-width:1024px}.md\:max-w-screen-xl{max-width:1280px}.md\:max-w-screen-xxl{max-width:1480px}.md\:min-h-0{min-height:0}.md\:min-h-full{min-height:100%}.md\:min-h-screen{min-height:100vh}.md\:min-w-0{min-width:0}.md\:min-w-full{min-width:100%}.md\:object-contain{-o-object-fit:contain;object-fit:contain}.md\:object-cover{-o-object-fit:cover;object-fit:cover}.md\:object-fill{-o-object-fit:fill;object-fit:fill}.md\:object-none{-o-object-fit:none;object-fit:none}.md\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.md\:object-bottom{-o-object-position:bottom;object-position:bottom}.md\:object-center{-o-object-position:center;object-position:center}.md\:object-left{-o-object-position:left;object-position:left}.md\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.md\:object-left-top{-o-object-position:left top;object-position:left top}.md\:object-right{-o-object-position:right;object-position:right}.md\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.md\:object-right-top{-o-object-position:right top;object-position:right top}.md\:object-top{-o-object-position:top;object-position:top}.md\:opacity-0{opacity:0}.md\:opacity-25{opacity:.25}.md\:opacity-50{opacity:.5}.md\:opacity-75{opacity:.75}.md\:opacity-100{opacity:1}.md\:hover\:opacity-0:hover{opacity:0}.md\:hover\:opacity-25:hover{opacity:.25}.md\:hover\:opacity-50:hover{opacity:.5}.md\:hover\:opacity-75:hover{opacity:.75}.md\:hover\:opacity-100:hover{opacity:1}.md\:focus\:opacity-0:focus{opacity:0}.md\:focus\:opacity-25:focus{opacity:.25}.md\:focus\:opacity-50:focus{opacity:.5}.md\:focus\:opacity-75:focus{opacity:.75}.md\:focus\:opacity-100:focus{opacity:1}.md\:outline-none{outline:2px solid transparent;outline-offset:2px}.md\:outline-white{outline:2px dotted #fff;outline-offset:2px}.md\:outline-black{outline:2px dotted #000;outline-offset:2px}.md\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.md\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.md\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.md\:overflow-auto{overflow:auto}.md\:overflow-hidden{overflow:hidden}.md\:overflow-visible{overflow:visible}.md\:overflow-scroll{overflow:scroll}.md\:overflow-x-auto{overflow-x:auto}.md\:overflow-y-auto{overflow-y:auto}.md\:overflow-x-hidden{overflow-x:hidden}.md\:overflow-y-hidden{overflow-y:hidden}.md\:overflow-x-visible{overflow-x:visible}.md\:overflow-y-visible{overflow-y:visible}.md\:overflow-x-scroll{overflow-x:scroll}.md\:overflow-y-scroll{overflow-y:scroll}.md\:scrolling-touch{-webkit-overflow-scrolling:touch}.md\:scrolling-auto{-webkit-overflow-scrolling:auto}.md\:overscroll-auto{overscroll-behavior:auto}.md\:overscroll-contain{overscroll-behavior:contain}.md\:overscroll-none{overscroll-behavior:none}.md\:overscroll-y-auto{overscroll-behavior-y:auto}.md\:overscroll-y-contain{overscroll-behavior-y:contain}.md\:overscroll-y-none{overscroll-behavior-y:none}.md\:overscroll-x-auto{overscroll-behavior-x:auto}.md\:overscroll-x-contain{overscroll-behavior-x:contain}.md\:overscroll-x-none{overscroll-behavior-x:none}.md\:p-0{padding:0}.md\:p-1{padding:.25rem}.md\:p-2{padding:.5rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:p-10{padding:2.5rem}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-20{padding:5rem}.md\:p-24{padding:6rem}.md\:p-32{padding:8rem}.md\:p-40{padding:10rem}.md\:p-48{padding:12rem}.md\:p-56{padding:14rem}.md\:p-64{padding:16rem}.md\:p-px{padding:1px}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-0{padding-left:0;padding-right:0}.md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:px-24{padding-left:6rem;padding-right:6rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:px-32{padding-left:8rem;padding-right:8rem}.md\:py-40{padding-top:10rem;padding-bottom:10rem}.md\:px-40{padding-left:10rem;padding-right:10rem}.md\:py-48{padding-top:12rem;padding-bottom:12rem}.md\:px-48{padding-left:12rem;padding-right:12rem}.md\:py-56{padding-top:14rem;padding-bottom:14rem}.md\:px-56{padding-left:14rem;padding-right:14rem}.md\:py-64{padding-top:16rem;padding-bottom:16rem}.md\:px-64{padding-left:16rem;padding-right:16rem}.md\:py-px{padding-top:1px;padding-bottom:1px}.md\:px-px{padding-left:1px;padding-right:1px}.md\:pt-0{padding-top:0}.md\:pr-0{padding-right:0}.md\:pb-0{padding-bottom:0}.md\:pl-0{padding-left:0}.md\:pt-1{padding-top:.25rem}.md\:pr-1{padding-right:.25rem}.md\:pb-1{padding-bottom:.25rem}.md\:pl-1{padding-left:.25rem}.md\:pt-2{padding-top:.5rem}.md\:pr-2{padding-right:.5rem}.md\:pb-2{padding-bottom:.5rem}.md\:pl-2{padding-left:.5rem}.md\:pt-3{padding-top:.75rem}.md\:pr-3{padding-right:.75rem}.md\:pb-3{padding-bottom:.75rem}.md\:pl-3{padding-left:.75rem}.md\:pt-4{padding-top:1rem}.md\:pr-4{padding-right:1rem}.md\:pb-4{padding-bottom:1rem}.md\:pl-4{padding-left:1rem}.md\:pt-5{padding-top:1.25rem}.md\:pr-5{padding-right:1.25rem}.md\:pb-5{padding-bottom:1.25rem}.md\:pl-5{padding-left:1.25rem}.md\:pt-6{padding-top:1.5rem}.md\:pr-6{padding-right:1.5rem}.md\:pb-6{padding-bottom:1.5rem}.md\:pl-6{padding-left:1.5rem}.md\:pt-8{padding-top:2rem}.md\:pr-8{padding-right:2rem}.md\:pb-8{padding-bottom:2rem}.md\:pl-8{padding-left:2rem}.md\:pt-10{padding-top:2.5rem}.md\:pr-10{padding-right:2.5rem}.md\:pb-10{padding-bottom:2.5rem}.md\:pl-10{padding-left:2.5rem}.md\:pt-12{padding-top:3rem}.md\:pr-12{padding-right:3rem}.md\:pb-12{padding-bottom:3rem}.md\:pl-12{padding-left:3rem}.md\:pt-16{padding-top:4rem}.md\:pr-16{padding-right:4rem}.md\:pb-16{padding-bottom:4rem}.md\:pl-16{padding-left:4rem}.md\:pt-20{padding-top:5rem}.md\:pr-20{padding-right:5rem}.md\:pb-20{padding-bottom:5rem}.md\:pl-20{padding-left:5rem}.md\:pt-24{padding-top:6rem}.md\:pr-24{padding-right:6rem}.md\:pb-24{padding-bottom:6rem}.md\:pl-24{padding-left:6rem}.md\:pt-32{padding-top:8rem}.md\:pr-32{padding-right:8rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-32{padding-left:8rem}.md\:pt-40{padding-top:10rem}.md\:pr-40{padding-right:10rem}.md\:pb-40{padding-bottom:10rem}.md\:pl-40{padding-left:10rem}.md\:pt-48{padding-top:12rem}.md\:pr-48{padding-right:12rem}.md\:pb-48{padding-bottom:12rem}.md\:pl-48{padding-left:12rem}.md\:pt-56{padding-top:14rem}.md\:pr-56{padding-right:14rem}.md\:pb-56{padding-bottom:14rem}.md\:pl-56{padding-left:14rem}.md\:pt-64{padding-top:16rem}.md\:pr-64{padding-right:16rem}.md\:pb-64{padding-bottom:16rem}.md\:pl-64{padding-left:16rem}.md\:pt-px{padding-top:1px}.md\:pr-px{padding-right:1px}.md\:pb-px{padding-bottom:1px}.md\:pl-px{padding-left:1px}.md\:placeholder-transparent::placeholder{color:transparent}.md\:placeholder-current::placeholder{color:currentColor}.md\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.md\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.md\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.md\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.md\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.md\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.md\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.md\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.md\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.md\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.md\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.md\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.md\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.md\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.md\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.md\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.md\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.md\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.md\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.md\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.md\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.md\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.md\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.md\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.md\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.md\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.md\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.md\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.md\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.md\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.md\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.md\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.md\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.md\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.md\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.md\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.md\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.md\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.md\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.md\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.md\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.md\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.md\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.md\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.md\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.md\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.md\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.md\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.md\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.md\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.md\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.md\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.md\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.md\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.md\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.md\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.md\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.md\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.md\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.md\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.md\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.md\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.md\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.md\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.md\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.md\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.md\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.md\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.md\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.md\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.md\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.md\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.md\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.md\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.md\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.md\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.md\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.md\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.md\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.md\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.md\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.md\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.md\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.md\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.md\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.md\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.md\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.md\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.md\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.md\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.md\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.md\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.md\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.md\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.md\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.md\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.md\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.md\:focus\:placeholder-current:focus::placeholder{color:currentColor}.md\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.md\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.md\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.md\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.md\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.md\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.md\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.md\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.md\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.md\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.md\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.md\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.md\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.md\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.md\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.md\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.md\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.md\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.md\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.md\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.md\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.md\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.md\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.md\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.md\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.md\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.md\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.md\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.md\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.md\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.md\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.md\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.md\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.md\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.md\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.md\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.md\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.md\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.md\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.md\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.md\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.md\:pointer-events-none{pointer-events:none}.md\:pointer-events-auto{pointer-events:auto}.md\:static{position:static}.md\:fixed{position:fixed}.md\:absolute{position:absolute}.md\:relative{position:relative}.md\:sticky{position:sticky}.md\:inset-0{top:0;right:0;bottom:0;left:0}.md\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.md\:inset-y-0{top:0;bottom:0}.md\:inset-x-0{right:0;left:0}.md\:inset-y-auto{top:auto;bottom:auto}.md\:inset-x-auto{right:auto;left:auto}.md\:top-0{top:0}.md\:right-0{right:0}.md\:bottom-0{bottom:0}.md\:left-0{left:0}.md\:top-auto{top:auto}.md\:right-auto{right:auto}.md\:bottom-auto{bottom:auto}.md\:left-auto{left:auto}.md\:resize-none{resize:none}.md\:resize-y{resize:vertical}.md\:resize-x{resize:horizontal}.md\:resize{resize:both}.md\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:shadow-none{box-shadow:none}.md\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:hover\:shadow-none:hover{box-shadow:none}.md\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.md\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.md\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.md\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.md\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.md\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.md\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.md\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.md\:focus\:shadow-none:focus{box-shadow:none}.md\:fill-current{fill:currentColor}.md\:stroke-current{stroke:currentColor}.md\:stroke-0{stroke-width:0}.md\:stroke-1{stroke-width:1}.md\:stroke-2{stroke-width:2}.md\:table-auto{table-layout:auto}.md\:table-fixed{table-layout:fixed}.md\:text-left{text-align:left}.md\:text-center{text-align:center}.md\:text-right{text-align:right}.md\:text-justify{text-align:justify}.md\:text-transparent{color:transparent}.md\:text-current{color:currentColor}.md\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:hover\:text-transparent:hover{color:transparent}.md\:hover\:text-current:hover{color:currentColor}.md\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:focus\:text-transparent:focus{color:transparent}.md\:focus\:text-current:focus{color:currentColor}.md\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.md\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.md\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.md\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.md\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.md\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.md\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.md\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.md\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.md\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.md\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.md\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.md\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.md\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.md\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.md\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.md\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.md\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.md\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.md\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.md\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.md\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.md\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.md\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.md\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.md\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.md\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.md\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.md\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.md\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.md\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.md\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.md\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.md\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.md\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.md\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.md\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.md\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.md\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.md\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.md\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.md\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.md\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.md\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.md\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.md\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.md\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.md\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.md\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.md\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.md\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.md\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.md\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.md\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.md\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.md\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.md\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.md\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.md\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.md\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.md\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.md\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.md\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.md\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.md\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.md\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.md\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.md\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.md\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.md\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.md\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.md\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.md\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.md\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.md\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.md\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.md\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.md\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.md\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.md\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.md\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.md\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.md\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.md\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.md\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.md\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.md\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.md\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.md\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.md\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.md\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.md\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.md\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.md\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.md\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.md\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.md\:text-opacity-0{--text-opacity:0}.md\:text-opacity-25{--text-opacity:0.25}.md\:text-opacity-50{--text-opacity:0.5}.md\:text-opacity-75{--text-opacity:0.75}.md\:text-opacity-100{--text-opacity:1}.md\:hover\:text-opacity-0:hover{--text-opacity:0}.md\:hover\:text-opacity-25:hover{--text-opacity:0.25}.md\:hover\:text-opacity-50:hover{--text-opacity:0.5}.md\:hover\:text-opacity-75:hover{--text-opacity:0.75}.md\:hover\:text-opacity-100:hover{--text-opacity:1}.md\:focus\:text-opacity-0:focus{--text-opacity:0}.md\:focus\:text-opacity-25:focus{--text-opacity:0.25}.md\:focus\:text-opacity-50:focus{--text-opacity:0.5}.md\:focus\:text-opacity-75:focus{--text-opacity:0.75}.md\:focus\:text-opacity-100:focus{--text-opacity:1}.md\:italic{font-style:italic}.md\:not-italic{font-style:normal}.md\:uppercase{text-transform:uppercase}.md\:lowercase{text-transform:lowercase}.md\:capitalize{text-transform:capitalize}.md\:normal-case{text-transform:none}.md\:underline{text-decoration:underline}.md\:line-through{text-decoration:line-through}.md\:no-underline{text-decoration:none}.md\:hover\:underline:hover{text-decoration:underline}.md\:hover\:line-through:hover{text-decoration:line-through}.md\:hover\:no-underline:hover{text-decoration:none}.md\:focus\:underline:focus{text-decoration:underline}.md\:focus\:line-through:focus{text-decoration:line-through}.md\:focus\:no-underline:focus{text-decoration:none}.md\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.md\:diagonal-fractions,.md\:lining-nums,.md\:oldstyle-nums,.md\:ordinal,.md\:proportional-nums,.md\:slashed-zero,.md\:stacked-fractions,.md\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.md\:normal-nums{font-variant-numeric:normal}.md\:ordinal{--font-variant-numeric-ordinal:ordinal}.md\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.md\:lining-nums{--font-variant-numeric-figure:lining-nums}.md\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.md\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.md\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.md\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.md\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.md\:tracking-tighter{letter-spacing:-.05em}.md\:tracking-tight{letter-spacing:-.025em}.md\:tracking-normal{letter-spacing:0}.md\:tracking-wide{letter-spacing:.025em}.md\:tracking-wider{letter-spacing:.05em}.md\:tracking-widest{letter-spacing:.1em}.md\:select-none{-webkit-user-select:none;user-select:none}.md\:select-text{-webkit-user-select:text;user-select:text}.md\:select-all{-webkit-user-select:all;user-select:all}.md\:select-auto{-webkit-user-select:auto;user-select:auto}.md\:align-baseline{vertical-align:baseline}.md\:align-top{vertical-align:top}.md\:align-middle{vertical-align:middle}.md\:align-bottom{vertical-align:bottom}.md\:align-text-top{vertical-align:text-top}.md\:align-text-bottom{vertical-align:text-bottom}.md\:visible{visibility:visible}.md\:invisible{visibility:hidden}.md\:whitespace-normal{white-space:normal}.md\:whitespace-no-wrap{white-space:nowrap}.md\:whitespace-pre{white-space:pre}.md\:whitespace-pre-line{white-space:pre-line}.md\:whitespace-pre-wrap{white-space:pre-wrap}.md\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.md\:break-words{word-wrap:break-word;overflow-wrap:break-word}.md\:break-all{word-break:break-all}.md\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md\:w-0{width:0}.md\:w-1{width:.25rem}.md\:w-2{width:.5rem}.md\:w-3{width:.75rem}.md\:w-4{width:1rem}.md\:w-5{width:1.25rem}.md\:w-6{width:1.5rem}.md\:w-8{width:2rem}.md\:w-10{width:2.5rem}.md\:w-12{width:3rem}.md\:w-16{width:4rem}.md\:w-20{width:5rem}.md\:w-24{width:6rem}.md\:w-32{width:8rem}.md\:w-40{width:10rem}.md\:w-48{width:12rem}.md\:w-56{width:14rem}.md\:w-64{width:16rem}.md\:w-auto{width:auto}.md\:w-px{width:1px}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/4{width:25%}.md\:w-2\/4{width:50%}.md\:w-3\/4{width:75%}.md\:w-1\/5{width:20%}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:w-4\/5{width:80%}.md\:w-1\/6{width:16.666667%}.md\:w-2\/6{width:33.333333%}.md\:w-3\/6{width:50%}.md\:w-4\/6{width:66.666667%}.md\:w-5\/6{width:83.333333%}.md\:w-1\/12{width:8.333333%}.md\:w-2\/12{width:16.666667%}.md\:w-3\/12{width:25%}.md\:w-4\/12{width:33.333333%}.md\:w-5\/12{width:41.666667%}.md\:w-6\/12{width:50%}.md\:w-7\/12{width:58.333333%}.md\:w-8\/12{width:66.666667%}.md\:w-9\/12{width:75%}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-full{width:100%}.md\:w-screen{width:100vw}.md\:z-0{z-index:0}.md\:z-10{z-index:10}.md\:z-20{z-index:20}.md\:z-30{z-index:30}.md\:z-40{z-index:40}.md\:z-50{z-index:50}.md\:z-auto{z-index:auto}.md\:gap-0{grid-gap:0;gap:0}.md\:gap-1{grid-gap:.25rem;gap:.25rem}.md\:gap-2{grid-gap:.5rem;gap:.5rem}.md\:gap-3{grid-gap:.75rem;gap:.75rem}.md\:gap-4{grid-gap:1rem;gap:1rem}.md\:gap-5{grid-gap:1.25rem;gap:1.25rem}.md\:gap-6{grid-gap:1.5rem;gap:1.5rem}.md\:gap-8{grid-gap:2rem;gap:2rem}.md\:gap-10{grid-gap:2.5rem;gap:2.5rem}.md\:gap-12{grid-gap:3rem;gap:3rem}.md\:gap-16{grid-gap:4rem;gap:4rem}.md\:gap-20{grid-gap:5rem;gap:5rem}.md\:gap-24{grid-gap:6rem;gap:6rem}.md\:gap-32{grid-gap:8rem;gap:8rem}.md\:gap-40{grid-gap:10rem;gap:10rem}.md\:gap-48{grid-gap:12rem;gap:12rem}.md\:gap-56{grid-gap:14rem;gap:14rem}.md\:gap-64{grid-gap:16rem;gap:16rem}.md\:gap-px{grid-gap:1px;gap:1px}.md\:col-gap-0{grid-column-gap:0;column-gap:0}.md\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.md\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.md\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.md\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.md\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.md\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.md\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.md\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.md\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.md\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.md\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.md\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.md\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.md\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.md\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.md\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.md\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.md\:col-gap-px{grid-column-gap:1px;column-gap:1px}.md\:gap-x-0{grid-column-gap:0;column-gap:0}.md\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.md\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.md\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.md\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.md\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.md\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.md\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.md\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.md\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.md\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.md\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.md\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.md\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.md\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.md\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.md\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.md\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.md\:gap-x-px{grid-column-gap:1px;column-gap:1px}.md\:row-gap-0{grid-row-gap:0;row-gap:0}.md\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.md\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.md\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.md\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.md\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.md\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.md\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.md\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.md\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.md\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.md\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.md\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.md\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.md\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.md\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.md\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.md\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.md\:row-gap-px{grid-row-gap:1px;row-gap:1px}.md\:gap-y-0{grid-row-gap:0;row-gap:0}.md\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.md\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.md\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.md\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.md\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.md\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.md\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.md\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.md\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.md\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.md\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.md\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.md\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.md\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.md\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.md\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.md\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.md\:gap-y-px{grid-row-gap:1px;row-gap:1px}.md\:grid-flow-row{grid-auto-flow:row}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-flow-row-dense{grid-auto-flow:row dense}.md\:grid-flow-col-dense{grid-auto-flow:column dense}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-none{grid-template-columns:none}.md\:auto-cols-auto{grid-auto-columns:auto}.md\:auto-cols-min{grid-auto-columns:min-content}.md\:auto-cols-max{grid-auto-columns:max-content}.md\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.md\:col-auto{grid-column:auto}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-11{grid-column:span 11/span 11}.md\:col-span-12{grid-column:span 12/span 12}.md\:col-span-full{grid-column:1/-1}.md\:col-start-1{grid-column-start:1}.md\:col-start-2{grid-column-start:2}.md\:col-start-3{grid-column-start:3}.md\:col-start-4{grid-column-start:4}.md\:col-start-5{grid-column-start:5}.md\:col-start-6{grid-column-start:6}.md\:col-start-7{grid-column-start:7}.md\:col-start-8{grid-column-start:8}.md\:col-start-9{grid-column-start:9}.md\:col-start-10{grid-column-start:10}.md\:col-start-11{grid-column-start:11}.md\:col-start-12{grid-column-start:12}.md\:col-start-13{grid-column-start:13}.md\:col-start-auto{grid-column-start:auto}.md\:col-end-1{grid-column-end:1}.md\:col-end-2{grid-column-end:2}.md\:col-end-3{grid-column-end:3}.md\:col-end-4{grid-column-end:4}.md\:col-end-5{grid-column-end:5}.md\:col-end-6{grid-column-end:6}.md\:col-end-7{grid-column-end:7}.md\:col-end-8{grid-column-end:8}.md\:col-end-9{grid-column-end:9}.md\:col-end-10{grid-column-end:10}.md\:col-end-11{grid-column-end:11}.md\:col-end-12{grid-column-end:12}.md\:col-end-13{grid-column-end:13}.md\:col-end-auto{grid-column-end:auto}.md\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:grid-rows-none{grid-template-rows:none}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:auto-rows-min{grid-auto-rows:min-content}.md\:auto-rows-max{grid-auto-rows:max-content}.md\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.md\:row-auto{grid-row:auto}.md\:row-span-1{grid-row:span 1/span 1}.md\:row-span-2{grid-row:span 2/span 2}.md\:row-span-3{grid-row:span 3/span 3}.md\:row-span-4{grid-row:span 4/span 4}.md\:row-span-5{grid-row:span 5/span 5}.md\:row-span-6{grid-row:span 6/span 6}.md\:row-span-full{grid-row:1/-1}.md\:row-start-1{grid-row-start:1}.md\:row-start-2{grid-row-start:2}.md\:row-start-3{grid-row-start:3}.md\:row-start-4{grid-row-start:4}.md\:row-start-5{grid-row-start:5}.md\:row-start-6{grid-row-start:6}.md\:row-start-7{grid-row-start:7}.md\:row-start-auto{grid-row-start:auto}.md\:row-end-1{grid-row-end:1}.md\:row-end-2{grid-row-end:2}.md\:row-end-3{grid-row-end:3}.md\:row-end-4{grid-row-end:4}.md\:row-end-5{grid-row-end:5}.md\:row-end-6{grid-row-end:6}.md\:row-end-7{grid-row-end:7}.md\:row-end-auto{grid-row-end:auto}.md\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.md\:transform-none{transform:none}.md\:origin-center{transform-origin:center}.md\:origin-top{transform-origin:top}.md\:origin-top-right{transform-origin:top right}.md\:origin-right{transform-origin:right}.md\:origin-bottom-right{transform-origin:bottom right}.md\:origin-bottom{transform-origin:bottom}.md\:origin-bottom-left{transform-origin:bottom left}.md\:origin-left{transform-origin:left}.md\:origin-top-left{transform-origin:top left}.md\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.md\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.md\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.md\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.md\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.md\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.md\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:scale-x-0{--transform-scale-x:0}.md\:scale-x-50{--transform-scale-x:.5}.md\:scale-x-75{--transform-scale-x:.75}.md\:scale-x-90{--transform-scale-x:.9}.md\:scale-x-95{--transform-scale-x:.95}.md\:scale-x-100{--transform-scale-x:1}.md\:scale-x-105{--transform-scale-x:1.05}.md\:scale-x-110{--transform-scale-x:1.1}.md\:scale-x-125{--transform-scale-x:1.25}.md\:scale-x-150{--transform-scale-x:1.5}.md\:scale-y-0{--transform-scale-y:0}.md\:scale-y-50{--transform-scale-y:.5}.md\:scale-y-75{--transform-scale-y:.75}.md\:scale-y-90{--transform-scale-y:.9}.md\:scale-y-95{--transform-scale-y:.95}.md\:scale-y-100{--transform-scale-y:1}.md\:scale-y-105{--transform-scale-y:1.05}.md\:scale-y-110{--transform-scale-y:1.1}.md\:scale-y-125{--transform-scale-y:1.25}.md\:scale-y-150{--transform-scale-y:1.5}.md\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.md\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.md\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.md\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.md\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.md\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.md\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:hover\:scale-x-0:hover{--transform-scale-x:0}.md\:hover\:scale-x-50:hover{--transform-scale-x:.5}.md\:hover\:scale-x-75:hover{--transform-scale-x:.75}.md\:hover\:scale-x-90:hover{--transform-scale-x:.9}.md\:hover\:scale-x-95:hover{--transform-scale-x:.95}.md\:hover\:scale-x-100:hover{--transform-scale-x:1}.md\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.md\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.md\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.md\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.md\:hover\:scale-y-0:hover{--transform-scale-y:0}.md\:hover\:scale-y-50:hover{--transform-scale-y:.5}.md\:hover\:scale-y-75:hover{--transform-scale-y:.75}.md\:hover\:scale-y-90:hover{--transform-scale-y:.9}.md\:hover\:scale-y-95:hover{--transform-scale-y:.95}.md\:hover\:scale-y-100:hover{--transform-scale-y:1}.md\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.md\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.md\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.md\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.md\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.md\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.md\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.md\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.md\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.md\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.md\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.md\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.md\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.md\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.md\:focus\:scale-x-0:focus{--transform-scale-x:0}.md\:focus\:scale-x-50:focus{--transform-scale-x:.5}.md\:focus\:scale-x-75:focus{--transform-scale-x:.75}.md\:focus\:scale-x-90:focus{--transform-scale-x:.9}.md\:focus\:scale-x-95:focus{--transform-scale-x:.95}.md\:focus\:scale-x-100:focus{--transform-scale-x:1}.md\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.md\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.md\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.md\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.md\:focus\:scale-y-0:focus{--transform-scale-y:0}.md\:focus\:scale-y-50:focus{--transform-scale-y:.5}.md\:focus\:scale-y-75:focus{--transform-scale-y:.75}.md\:focus\:scale-y-90:focus{--transform-scale-y:.9}.md\:focus\:scale-y-95:focus{--transform-scale-y:.95}.md\:focus\:scale-y-100:focus{--transform-scale-y:1}.md\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.md\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.md\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.md\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.md\:rotate-0{--transform-rotate:0}.md\:rotate-1{--transform-rotate:1deg}.md\:rotate-2{--transform-rotate:2deg}.md\:rotate-3{--transform-rotate:3deg}.md\:rotate-6{--transform-rotate:6deg}.md\:rotate-12{--transform-rotate:12deg}.md\:rotate-45{--transform-rotate:45deg}.md\:rotate-90{--transform-rotate:90deg}.md\:rotate-180{--transform-rotate:180deg}.md\:-rotate-180{--transform-rotate:-180deg}.md\:-rotate-90{--transform-rotate:-90deg}.md\:-rotate-45{--transform-rotate:-45deg}.md\:-rotate-12{--transform-rotate:-12deg}.md\:-rotate-6{--transform-rotate:-6deg}.md\:-rotate-3{--transform-rotate:-3deg}.md\:-rotate-2{--transform-rotate:-2deg}.md\:-rotate-1{--transform-rotate:-1deg}.md\:hover\:rotate-0:hover{--transform-rotate:0}.md\:hover\:rotate-1:hover{--transform-rotate:1deg}.md\:hover\:rotate-2:hover{--transform-rotate:2deg}.md\:hover\:rotate-3:hover{--transform-rotate:3deg}.md\:hover\:rotate-6:hover{--transform-rotate:6deg}.md\:hover\:rotate-12:hover{--transform-rotate:12deg}.md\:hover\:rotate-45:hover{--transform-rotate:45deg}.md\:hover\:rotate-90:hover{--transform-rotate:90deg}.md\:hover\:rotate-180:hover{--transform-rotate:180deg}.md\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.md\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.md\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.md\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.md\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.md\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.md\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.md\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.md\:focus\:rotate-0:focus{--transform-rotate:0}.md\:focus\:rotate-1:focus{--transform-rotate:1deg}.md\:focus\:rotate-2:focus{--transform-rotate:2deg}.md\:focus\:rotate-3:focus{--transform-rotate:3deg}.md\:focus\:rotate-6:focus{--transform-rotate:6deg}.md\:focus\:rotate-12:focus{--transform-rotate:12deg}.md\:focus\:rotate-45:focus{--transform-rotate:45deg}.md\:focus\:rotate-90:focus{--transform-rotate:90deg}.md\:focus\:rotate-180:focus{--transform-rotate:180deg}.md\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.md\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.md\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.md\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.md\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.md\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.md\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.md\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.md\:translate-x-0{--transform-translate-x:0}.md\:translate-x-1{--transform-translate-x:0.25rem}.md\:translate-x-2{--transform-translate-x:0.5rem}.md\:translate-x-3{--transform-translate-x:0.75rem}.md\:translate-x-4{--transform-translate-x:1rem}.md\:translate-x-5{--transform-translate-x:1.25rem}.md\:translate-x-6{--transform-translate-x:1.5rem}.md\:translate-x-8{--transform-translate-x:2rem}.md\:translate-x-10{--transform-translate-x:2.5rem}.md\:translate-x-12{--transform-translate-x:3rem}.md\:translate-x-16{--transform-translate-x:4rem}.md\:translate-x-20{--transform-translate-x:5rem}.md\:translate-x-24{--transform-translate-x:6rem}.md\:translate-x-32{--transform-translate-x:8rem}.md\:translate-x-40{--transform-translate-x:10rem}.md\:translate-x-48{--transform-translate-x:12rem}.md\:translate-x-56{--transform-translate-x:14rem}.md\:translate-x-64{--transform-translate-x:16rem}.md\:translate-x-px{--transform-translate-x:1px}.md\:-translate-x-1{--transform-translate-x:-0.25rem}.md\:-translate-x-2{--transform-translate-x:-0.5rem}.md\:-translate-x-3{--transform-translate-x:-0.75rem}.md\:-translate-x-4{--transform-translate-x:-1rem}.md\:-translate-x-5{--transform-translate-x:-1.25rem}.md\:-translate-x-6{--transform-translate-x:-1.5rem}.md\:-translate-x-8{--transform-translate-x:-2rem}.md\:-translate-x-10{--transform-translate-x:-2.5rem}.md\:-translate-x-12{--transform-translate-x:-3rem}.md\:-translate-x-16{--transform-translate-x:-4rem}.md\:-translate-x-20{--transform-translate-x:-5rem}.md\:-translate-x-24{--transform-translate-x:-6rem}.md\:-translate-x-32{--transform-translate-x:-8rem}.md\:-translate-x-40{--transform-translate-x:-10rem}.md\:-translate-x-48{--transform-translate-x:-12rem}.md\:-translate-x-56{--transform-translate-x:-14rem}.md\:-translate-x-64{--transform-translate-x:-16rem}.md\:-translate-x-px{--transform-translate-x:-1px}.md\:-translate-x-full{--transform-translate-x:-100%}.md\:-translate-x-1\/2{--transform-translate-x:-50%}.md\:translate-x-1\/2{--transform-translate-x:50%}.md\:translate-x-full{--transform-translate-x:100%}.md\:translate-y-0{--transform-translate-y:0}.md\:translate-y-1{--transform-translate-y:0.25rem}.md\:translate-y-2{--transform-translate-y:0.5rem}.md\:translate-y-3{--transform-translate-y:0.75rem}.md\:translate-y-4{--transform-translate-y:1rem}.md\:translate-y-5{--transform-translate-y:1.25rem}.md\:translate-y-6{--transform-translate-y:1.5rem}.md\:translate-y-8{--transform-translate-y:2rem}.md\:translate-y-10{--transform-translate-y:2.5rem}.md\:translate-y-12{--transform-translate-y:3rem}.md\:translate-y-16{--transform-translate-y:4rem}.md\:translate-y-20{--transform-translate-y:5rem}.md\:translate-y-24{--transform-translate-y:6rem}.md\:translate-y-32{--transform-translate-y:8rem}.md\:translate-y-40{--transform-translate-y:10rem}.md\:translate-y-48{--transform-translate-y:12rem}.md\:translate-y-56{--transform-translate-y:14rem}.md\:translate-y-64{--transform-translate-y:16rem}.md\:translate-y-px{--transform-translate-y:1px}.md\:-translate-y-1{--transform-translate-y:-0.25rem}.md\:-translate-y-2{--transform-translate-y:-0.5rem}.md\:-translate-y-3{--transform-translate-y:-0.75rem}.md\:-translate-y-4{--transform-translate-y:-1rem}.md\:-translate-y-5{--transform-translate-y:-1.25rem}.md\:-translate-y-6{--transform-translate-y:-1.5rem}.md\:-translate-y-8{--transform-translate-y:-2rem}.md\:-translate-y-10{--transform-translate-y:-2.5rem}.md\:-translate-y-12{--transform-translate-y:-3rem}.md\:-translate-y-16{--transform-translate-y:-4rem}.md\:-translate-y-20{--transform-translate-y:-5rem}.md\:-translate-y-24{--transform-translate-y:-6rem}.md\:-translate-y-32{--transform-translate-y:-8rem}.md\:-translate-y-40{--transform-translate-y:-10rem}.md\:-translate-y-48{--transform-translate-y:-12rem}.md\:-translate-y-56{--transform-translate-y:-14rem}.md\:-translate-y-64{--transform-translate-y:-16rem}.md\:-translate-y-px{--transform-translate-y:-1px}.md\:-translate-y-full{--transform-translate-y:-100%}.md\:-translate-y-1\/2{--transform-translate-y:-50%}.md\:translate-y-1\/2{--transform-translate-y:50%}.md\:translate-y-full{--transform-translate-y:100%}.md\:hover\:translate-x-0:hover{--transform-translate-x:0}.md\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.md\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.md\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.md\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.md\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.md\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.md\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.md\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.md\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.md\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.md\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.md\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.md\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.md\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.md\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.md\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.md\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.md\:hover\:translate-x-px:hover{--transform-translate-x:1px}.md\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.md\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.md\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.md\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.md\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.md\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.md\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.md\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.md\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.md\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.md\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.md\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.md\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.md\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.md\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.md\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.md\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.md\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.md\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.md\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.md\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.md\:hover\:translate-x-full:hover{--transform-translate-x:100%}.md\:hover\:translate-y-0:hover{--transform-translate-y:0}.md\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.md\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.md\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.md\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.md\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.md\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.md\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.md\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.md\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.md\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.md\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.md\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.md\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.md\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.md\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.md\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.md\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.md\:hover\:translate-y-px:hover{--transform-translate-y:1px}.md\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.md\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.md\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.md\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.md\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.md\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.md\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.md\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.md\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.md\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.md\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.md\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.md\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.md\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.md\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.md\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.md\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.md\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.md\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.md\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.md\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.md\:hover\:translate-y-full:hover{--transform-translate-y:100%}.md\:focus\:translate-x-0:focus{--transform-translate-x:0}.md\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.md\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.md\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.md\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.md\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.md\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.md\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.md\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.md\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.md\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.md\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.md\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.md\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.md\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.md\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.md\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.md\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.md\:focus\:translate-x-px:focus{--transform-translate-x:1px}.md\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.md\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.md\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.md\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.md\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.md\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.md\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.md\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.md\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.md\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.md\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.md\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.md\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.md\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.md\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.md\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.md\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.md\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.md\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.md\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.md\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.md\:focus\:translate-x-full:focus{--transform-translate-x:100%}.md\:focus\:translate-y-0:focus{--transform-translate-y:0}.md\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.md\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.md\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.md\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.md\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.md\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.md\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.md\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.md\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.md\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.md\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.md\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.md\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.md\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.md\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.md\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.md\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.md\:focus\:translate-y-px:focus{--transform-translate-y:1px}.md\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.md\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.md\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.md\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.md\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.md\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.md\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.md\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.md\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.md\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.md\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.md\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.md\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.md\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.md\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.md\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.md\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.md\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.md\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.md\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.md\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.md\:focus\:translate-y-full:focus{--transform-translate-y:100%}.md\:skew-x-0{--transform-skew-x:0}.md\:skew-x-1{--transform-skew-x:1deg}.md\:skew-x-2{--transform-skew-x:2deg}.md\:skew-x-3{--transform-skew-x:3deg}.md\:skew-x-6{--transform-skew-x:6deg}.md\:skew-x-12{--transform-skew-x:12deg}.md\:-skew-x-12{--transform-skew-x:-12deg}.md\:-skew-x-6{--transform-skew-x:-6deg}.md\:-skew-x-3{--transform-skew-x:-3deg}.md\:-skew-x-2{--transform-skew-x:-2deg}.md\:-skew-x-1{--transform-skew-x:-1deg}.md\:skew-y-0{--transform-skew-y:0}.md\:skew-y-1{--transform-skew-y:1deg}.md\:skew-y-2{--transform-skew-y:2deg}.md\:skew-y-3{--transform-skew-y:3deg}.md\:skew-y-6{--transform-skew-y:6deg}.md\:skew-y-12{--transform-skew-y:12deg}.md\:-skew-y-12{--transform-skew-y:-12deg}.md\:-skew-y-6{--transform-skew-y:-6deg}.md\:-skew-y-3{--transform-skew-y:-3deg}.md\:-skew-y-2{--transform-skew-y:-2deg}.md\:-skew-y-1{--transform-skew-y:-1deg}.md\:hover\:skew-x-0:hover{--transform-skew-x:0}.md\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.md\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.md\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.md\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.md\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.md\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.md\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.md\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.md\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.md\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.md\:hover\:skew-y-0:hover{--transform-skew-y:0}.md\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.md\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.md\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.md\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.md\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.md\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.md\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.md\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.md\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.md\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.md\:focus\:skew-x-0:focus{--transform-skew-x:0}.md\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.md\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.md\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.md\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.md\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.md\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.md\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.md\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.md\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.md\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.md\:focus\:skew-y-0:focus{--transform-skew-y:0}.md\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.md\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.md\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.md\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.md\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.md\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.md\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.md\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.md\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.md\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.md\:transition-none{transition-property:none}.md\:transition-all{transition-property:all}.md\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.md\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.md\:transition-opacity{transition-property:opacity}.md\:transition-shadow{transition-property:box-shadow}.md\:transition-transform{transition-property:transform}.md\:ease-linear{transition-timing-function:linear}.md\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.md\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.md\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-75{transition-duration:75ms}.md\:duration-100{transition-duration:.1s}.md\:duration-150{transition-duration:.15s}.md\:duration-200{transition-duration:.2s}.md\:duration-300{transition-duration:.3s}.md\:duration-500{transition-duration:.5s}.md\:duration-700{transition-duration:.7s}.md\:duration-1000{transition-duration:1s}.md\:delay-75{transition-delay:75ms}.md\:delay-100{transition-delay:.1s}.md\:delay-150{transition-delay:.15s}.md\:delay-200{transition-delay:.2s}.md\:delay-300{transition-delay:.3s}.md\:delay-500{transition-delay:.5s}.md\:delay-700{transition-delay:.7s}.md\:delay-1000{transition-delay:1s}.md\:animate-none{animation:none}.md\:animate-spin{animation:spin 1s linear infinite}.md\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.md\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.md\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1024px){.lg\:container{width:100%}@media (min-width:360px){.lg\:container{max-width:360px}}@media (min-width:640px){.lg\:container{max-width:640px}}@media (min-width:768px){.lg\:container{max-width:768px}}@media (min-width:1024px){.lg\:container{max-width:1024px}}@media (min-width:1280px){.lg\:container{max-width:1280px}}@media (min-width:1480px){.lg\:container{max-width:1480px}}.lg\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.lg\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.lg\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.lg\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.lg\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.lg\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.lg\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.lg\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.lg\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.lg\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.lg\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.lg\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.lg\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.lg\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.lg\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.lg\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.lg\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.lg\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.lg\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.lg\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.lg\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.lg\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.lg\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.lg\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.lg\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.lg\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.lg\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.lg\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.lg\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.lg\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.lg\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.lg\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.lg\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.lg\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.lg\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.lg\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.lg\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.lg\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.lg\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.lg\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.lg\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.lg\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.lg\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.lg\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.lg\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.lg\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.lg\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.lg\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.lg\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.lg\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.lg\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.lg\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.lg\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.lg\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.lg\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.lg\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.lg\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.lg\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.lg\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.lg\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.lg\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.lg\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.lg\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.lg\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.lg\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.lg\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.lg\:divide-transparent>:not(template)~:not(template){border-color:transparent}.lg\:divide-current>:not(template)~:not(template){border-color:currentColor}.lg\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.lg\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.lg\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.lg\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.lg\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.lg\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.lg\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.lg\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.lg\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.lg\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.lg\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.lg\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.lg\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.lg\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.lg\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.lg\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.lg\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.lg\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.lg\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.lg\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.lg\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.lg\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.lg\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.lg\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.lg\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.lg\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.lg\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.lg\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.lg\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.lg\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.lg\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.lg\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.lg\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.lg\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.lg\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.lg\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.lg\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.lg\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.lg\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.lg\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.lg\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.lg\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.lg\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.lg\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.lg\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.lg\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.lg\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.lg\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.lg\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.lg\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.lg\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.lg\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.lg\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.lg\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.lg\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.lg\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.lg\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.lg\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.lg\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.lg\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.lg\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.lg\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.lg\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.lg\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.lg\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.lg\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.lg\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.lg\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.lg\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.lg\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.lg\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.lg\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.lg\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.lg\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.lg\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.lg\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.lg\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.lg\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.lg\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.lg\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.lg\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.lg\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.lg\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.lg\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.lg\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.lg\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.lg\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.lg\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.lg\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.lg\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.lg\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.lg\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.lg\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.lg\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.lg\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.lg\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.lg\:divide-solid>:not(template)~:not(template){border-style:solid}.lg\:divide-dashed>:not(template)~:not(template){border-style:dashed}.lg\:divide-dotted>:not(template)~:not(template){border-style:dotted}.lg\:divide-double>:not(template)~:not(template){border-style:double}.lg\:divide-none>:not(template)~:not(template){border-style:none}.lg\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.lg\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.lg\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.lg\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.lg\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.lg\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lg\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.lg\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lg\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.lg\:appearance-none{-webkit-appearance:none;appearance:none}.lg\:bg-fixed{background-attachment:fixed}.lg\:bg-local{background-attachment:local}.lg\:bg-scroll{background-attachment:scroll}.lg\:bg-clip-border{background-clip:border-box}.lg\:bg-clip-padding{background-clip:padding-box}.lg\:bg-clip-content{background-clip:content-box}.lg\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.lg\:bg-transparent{background-color:transparent}.lg\:bg-current{background-color:currentColor}.lg\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:hover\:bg-transparent:hover{background-color:transparent}.lg\:hover\:bg-current:hover{background-color:currentColor}.lg\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:focus\:bg-transparent:focus{background-color:transparent}.lg\:focus\:bg-current:focus{background-color:currentColor}.lg\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.lg\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.lg\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.lg\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.lg\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.lg\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.lg\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.lg\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.lg\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.lg\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.lg\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.lg\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.lg\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.lg\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.lg\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.lg\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.lg\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.lg\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.lg\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.lg\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.lg\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.lg\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.lg\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.lg\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.lg\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.lg\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.lg\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.lg\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.lg\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.lg\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.lg\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.lg\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.lg\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.lg\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.lg\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.lg\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.lg\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.lg\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.lg\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.lg\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.lg\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.lg\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.lg\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.lg\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.lg\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.lg\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.lg\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.lg\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.lg\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.lg\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.lg\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.lg\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.lg\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.lg\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.lg\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.lg\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.lg\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.lg\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.lg\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.lg\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.lg\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.lg\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.lg\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.lg\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.lg\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.lg\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.lg\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.lg\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.lg\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.lg\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.lg\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.lg\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.lg\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.lg\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.lg\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.lg\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.lg\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.lg\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.lg\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.lg\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.lg\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.lg\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.lg\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.lg\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.lg\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.lg\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.lg\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.lg\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.lg\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.lg\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.lg\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.lg\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.lg\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.lg\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.lg\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.lg\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.lg\:bg-none{background-image:none}.lg\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.lg\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.lg\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.lg\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.lg\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.lg\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:to-transparent{--gradient-to-color:transparent}.lg\:to-current{--gradient-to-color:currentColor}.lg\:to-black{--gradient-to-color:#000}.lg\:to-white{--gradient-to-color:#fff}.lg\:to-gray-100{--gradient-to-color:#f7fafc}.lg\:to-gray-200{--gradient-to-color:#edf2f7}.lg\:to-gray-300{--gradient-to-color:#e2e8f0}.lg\:to-gray-400{--gradient-to-color:#cbd5e0}.lg\:to-gray-500{--gradient-to-color:#a0aec0}.lg\:to-gray-600{--gradient-to-color:#718096}.lg\:to-gray-700{--gradient-to-color:#4a5568}.lg\:to-gray-800{--gradient-to-color:#2d3748}.lg\:to-gray-900{--gradient-to-color:#1a202c}.lg\:to-red-100{--gradient-to-color:#fff5f5}.lg\:to-red-200{--gradient-to-color:#fed7d7}.lg\:to-red-300{--gradient-to-color:#feb2b2}.lg\:to-red-400{--gradient-to-color:#fc8181}.lg\:to-red-500{--gradient-to-color:#f56565}.lg\:to-red-600{--gradient-to-color:#e53e3e}.lg\:to-red-700{--gradient-to-color:#c53030}.lg\:to-red-800{--gradient-to-color:#9b2c2c}.lg\:to-red-900{--gradient-to-color:#742a2a}.lg\:to-orange-100{--gradient-to-color:#fffaf0}.lg\:to-orange-200{--gradient-to-color:#feebc8}.lg\:to-orange-300{--gradient-to-color:#fbd38d}.lg\:to-orange-400{--gradient-to-color:#f6ad55}.lg\:to-orange-500{--gradient-to-color:#ed8936}.lg\:to-orange-600{--gradient-to-color:#dd6b20}.lg\:to-orange-700{--gradient-to-color:#c05621}.lg\:to-orange-800{--gradient-to-color:#9c4221}.lg\:to-orange-900{--gradient-to-color:#7b341e}.lg\:to-yellow-100{--gradient-to-color:ivory}.lg\:to-yellow-200{--gradient-to-color:#fefcbf}.lg\:to-yellow-300{--gradient-to-color:#faf089}.lg\:to-yellow-400{--gradient-to-color:#f6e05e}.lg\:to-yellow-500{--gradient-to-color:#ecc94b}.lg\:to-yellow-600{--gradient-to-color:#d69e2e}.lg\:to-yellow-700{--gradient-to-color:#b7791f}.lg\:to-yellow-800{--gradient-to-color:#975a16}.lg\:to-yellow-900{--gradient-to-color:#744210}.lg\:to-green-100{--gradient-to-color:#f0fff4}.lg\:to-green-200{--gradient-to-color:#c6f6d5}.lg\:to-green-300{--gradient-to-color:#9ae6b4}.lg\:to-green-400{--gradient-to-color:#68d391}.lg\:to-green-500{--gradient-to-color:#48bb78}.lg\:to-green-600{--gradient-to-color:#38a169}.lg\:to-green-700{--gradient-to-color:#2f855a}.lg\:to-green-800{--gradient-to-color:#276749}.lg\:to-green-900{--gradient-to-color:#22543d}.lg\:to-teal-100{--gradient-to-color:#e6fffa}.lg\:to-teal-200{--gradient-to-color:#b2f5ea}.lg\:to-teal-300{--gradient-to-color:#81e6d9}.lg\:to-teal-400{--gradient-to-color:#4fd1c5}.lg\:to-teal-500{--gradient-to-color:#38b2ac}.lg\:to-teal-600{--gradient-to-color:#319795}.lg\:to-teal-700{--gradient-to-color:#2c7a7b}.lg\:to-teal-800{--gradient-to-color:#285e61}.lg\:to-teal-900{--gradient-to-color:#234e52}.lg\:to-blue-100{--gradient-to-color:#ebf8ff}.lg\:to-blue-200{--gradient-to-color:#bee3f8}.lg\:to-blue-300{--gradient-to-color:#90cdf4}.lg\:to-blue-400{--gradient-to-color:#63b3ed}.lg\:to-blue-500{--gradient-to-color:#4299e1}.lg\:to-blue-600{--gradient-to-color:#3182ce}.lg\:to-blue-700{--gradient-to-color:#2b6cb0}.lg\:to-blue-800{--gradient-to-color:#2c5282}.lg\:to-blue-900{--gradient-to-color:#2a4365}.lg\:to-indigo-100{--gradient-to-color:#ebf4ff}.lg\:to-indigo-200{--gradient-to-color:#c3dafe}.lg\:to-indigo-300{--gradient-to-color:#a3bffa}.lg\:to-indigo-400{--gradient-to-color:#7f9cf5}.lg\:to-indigo-500{--gradient-to-color:#667eea}.lg\:to-indigo-600{--gradient-to-color:#5a67d8}.lg\:to-indigo-700{--gradient-to-color:#4c51bf}.lg\:to-indigo-800{--gradient-to-color:#434190}.lg\:to-indigo-900{--gradient-to-color:#3c366b}.lg\:to-purple-100{--gradient-to-color:#faf5ff}.lg\:to-purple-200{--gradient-to-color:#e9d8fd}.lg\:to-purple-300{--gradient-to-color:#d6bcfa}.lg\:to-purple-400{--gradient-to-color:#b794f4}.lg\:to-purple-500{--gradient-to-color:#9f7aea}.lg\:to-purple-600{--gradient-to-color:#805ad5}.lg\:to-purple-700{--gradient-to-color:#6b46c1}.lg\:to-purple-800{--gradient-to-color:#553c9a}.lg\:to-purple-900{--gradient-to-color:#44337a}.lg\:to-pink-100{--gradient-to-color:#fff5f7}.lg\:to-pink-200{--gradient-to-color:#fed7e2}.lg\:to-pink-300{--gradient-to-color:#fbb6ce}.lg\:to-pink-400{--gradient-to-color:#f687b3}.lg\:to-pink-500{--gradient-to-color:#ed64a6}.lg\:to-pink-600{--gradient-to-color:#d53f8c}.lg\:to-pink-700{--gradient-to-color:#b83280}.lg\:to-pink-800{--gradient-to-color:#97266d}.lg\:to-pink-900{--gradient-to-color:#702459}.lg\:to-primary{--gradient-to-color:#00d1ff}.lg\:to-secondary{--gradient-to-color:#e077ff}.lg\:to-greenish-blue{--gradient-to-color:#adffed}.lg\:to-blue-gray{--gradient-to-color:#cfe1e6}.lg\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:hover\:to-transparent:hover{--gradient-to-color:transparent}.lg\:hover\:to-current:hover{--gradient-to-color:currentColor}.lg\:hover\:to-black:hover{--gradient-to-color:#000}.lg\:hover\:to-white:hover{--gradient-to-color:#fff}.lg\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.lg\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.lg\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.lg\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.lg\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.lg\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.lg\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.lg\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.lg\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.lg\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.lg\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.lg\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.lg\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.lg\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.lg\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.lg\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.lg\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.lg\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.lg\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.lg\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.lg\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.lg\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.lg\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.lg\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.lg\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.lg\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.lg\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.lg\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.lg\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.lg\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.lg\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.lg\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.lg\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.lg\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.lg\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.lg\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.lg\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.lg\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.lg\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.lg\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.lg\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.lg\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.lg\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.lg\:hover\:to-green-800:hover{--gradient-to-color:#276749}.lg\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.lg\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.lg\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.lg\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.lg\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.lg\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.lg\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.lg\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.lg\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.lg\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.lg\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.lg\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.lg\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.lg\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.lg\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.lg\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.lg\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.lg\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.lg\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.lg\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.lg\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.lg\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.lg\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.lg\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.lg\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.lg\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.lg\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.lg\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.lg\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.lg\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.lg\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.lg\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.lg\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.lg\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.lg\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.lg\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.lg\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.lg\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.lg\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.lg\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.lg\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.lg\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.lg\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.lg\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.lg\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.lg\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.lg\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.lg\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.lg\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.lg\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.lg\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.lg\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.lg\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.lg\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.lg\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.lg\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.lg\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.lg\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.lg\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.lg\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.lg\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.lg\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.lg\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.lg\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.lg\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.lg\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.lg\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.lg\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.lg\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.lg\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.lg\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.lg\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.lg\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.lg\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.lg\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.lg\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.lg\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.lg\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.lg\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.lg\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.lg\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.lg\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.lg\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.lg\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.lg\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.lg\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.lg\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.lg\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.lg\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.lg\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.lg\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.lg\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.lg\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.lg\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.lg\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.lg\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.lg\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.lg\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.lg\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.lg\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.lg\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.lg\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.lg\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.lg\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.lg\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.lg\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.lg\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.lg\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.lg\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.lg\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.lg\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.lg\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.lg\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.lg\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.lg\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.lg\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.lg\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.lg\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.lg\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.lg\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.lg\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.lg\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.lg\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.lg\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.lg\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.lg\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.lg\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.lg\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.lg\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.lg\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.lg\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.lg\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.lg\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.lg\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.lg\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.lg\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.lg\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.lg\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.lg\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.lg\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.lg\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.lg\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.lg\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.lg\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.lg\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.lg\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.lg\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.lg\:focus\:to-transparent:focus{--gradient-to-color:transparent}.lg\:focus\:to-current:focus{--gradient-to-color:currentColor}.lg\:focus\:to-black:focus{--gradient-to-color:#000}.lg\:focus\:to-white:focus{--gradient-to-color:#fff}.lg\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.lg\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.lg\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.lg\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.lg\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.lg\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.lg\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.lg\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.lg\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.lg\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.lg\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.lg\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.lg\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.lg\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.lg\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.lg\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.lg\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.lg\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.lg\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.lg\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.lg\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.lg\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.lg\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.lg\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.lg\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.lg\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.lg\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.lg\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.lg\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.lg\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.lg\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.lg\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.lg\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.lg\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.lg\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.lg\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.lg\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.lg\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.lg\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.lg\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.lg\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.lg\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.lg\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.lg\:focus\:to-green-800:focus{--gradient-to-color:#276749}.lg\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.lg\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.lg\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.lg\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.lg\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.lg\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.lg\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.lg\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.lg\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.lg\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.lg\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.lg\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.lg\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.lg\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.lg\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.lg\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.lg\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.lg\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.lg\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.lg\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.lg\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.lg\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.lg\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.lg\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.lg\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.lg\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.lg\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.lg\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.lg\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.lg\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.lg\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.lg\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.lg\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.lg\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.lg\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.lg\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.lg\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.lg\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.lg\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.lg\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.lg\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.lg\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.lg\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.lg\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.lg\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.lg\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.lg\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.lg\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.lg\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.lg\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.lg\:bg-opacity-0{--bg-opacity:0}.lg\:bg-opacity-25{--bg-opacity:0.25}.lg\:bg-opacity-50{--bg-opacity:0.5}.lg\:bg-opacity-75{--bg-opacity:0.75}.lg\:bg-opacity-100{--bg-opacity:1}.lg\:hover\:bg-opacity-0:hover{--bg-opacity:0}.lg\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.lg\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.lg\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.lg\:hover\:bg-opacity-100:hover{--bg-opacity:1}.lg\:focus\:bg-opacity-0:focus{--bg-opacity:0}.lg\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.lg\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.lg\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.lg\:focus\:bg-opacity-100:focus{--bg-opacity:1}.lg\:bg-bottom{background-position:bottom}.lg\:bg-center{background-position:50%}.lg\:bg-left{background-position:0}.lg\:bg-left-bottom{background-position:0 100%}.lg\:bg-left-top{background-position:0 0}.lg\:bg-right{background-position:100%}.lg\:bg-right-bottom{background-position:100% 100%}.lg\:bg-right-top{background-position:100% 0}.lg\:bg-top{background-position:top}.lg\:bg-repeat{background-repeat:repeat}.lg\:bg-no-repeat{background-repeat:no-repeat}.lg\:bg-repeat-x{background-repeat:repeat-x}.lg\:bg-repeat-y{background-repeat:repeat-y}.lg\:bg-repeat-round{background-repeat:round}.lg\:bg-repeat-space{background-repeat:space}.lg\:bg-auto{background-size:auto}.lg\:bg-cover{background-size:cover}.lg\:bg-contain{background-size:contain}.lg\:border-collapse{border-collapse:collapse}.lg\:border-separate{border-collapse:separate}.lg\:border-transparent{border-color:transparent}.lg\:border-current{border-color:currentColor}.lg\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:hover\:border-transparent:hover{border-color:transparent}.lg\:hover\:border-current:hover{border-color:currentColor}.lg\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:focus\:border-transparent:focus{border-color:transparent}.lg\:focus\:border-current:focus{border-color:currentColor}.lg\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.lg\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.lg\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.lg\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.lg\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.lg\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.lg\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.lg\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.lg\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.lg\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.lg\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.lg\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.lg\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.lg\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.lg\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.lg\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.lg\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.lg\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.lg\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.lg\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.lg\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.lg\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.lg\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.lg\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.lg\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.lg\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.lg\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.lg\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.lg\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.lg\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.lg\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.lg\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.lg\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.lg\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.lg\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.lg\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.lg\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.lg\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.lg\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.lg\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.lg\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.lg\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.lg\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.lg\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.lg\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.lg\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.lg\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.lg\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.lg\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.lg\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.lg\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.lg\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.lg\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.lg\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.lg\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.lg\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.lg\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.lg\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.lg\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.lg\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.lg\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.lg\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.lg\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.lg\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.lg\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.lg\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.lg\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.lg\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.lg\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.lg\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.lg\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.lg\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.lg\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.lg\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.lg\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.lg\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.lg\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.lg\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.lg\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.lg\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.lg\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.lg\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.lg\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.lg\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.lg\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.lg\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.lg\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.lg\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.lg\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.lg\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.lg\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.lg\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.lg\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.lg\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.lg\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.lg\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.lg\:border-opacity-0{--border-opacity:0}.lg\:border-opacity-25{--border-opacity:0.25}.lg\:border-opacity-50{--border-opacity:0.5}.lg\:border-opacity-75{--border-opacity:0.75}.lg\:border-opacity-100{--border-opacity:1}.lg\:hover\:border-opacity-0:hover{--border-opacity:0}.lg\:hover\:border-opacity-25:hover{--border-opacity:0.25}.lg\:hover\:border-opacity-50:hover{--border-opacity:0.5}.lg\:hover\:border-opacity-75:hover{--border-opacity:0.75}.lg\:hover\:border-opacity-100:hover{--border-opacity:1}.lg\:focus\:border-opacity-0:focus{--border-opacity:0}.lg\:focus\:border-opacity-25:focus{--border-opacity:0.25}.lg\:focus\:border-opacity-50:focus{--border-opacity:0.5}.lg\:focus\:border-opacity-75:focus{--border-opacity:0.75}.lg\:focus\:border-opacity-100:focus{--border-opacity:1}.lg\:rounded-none{border-radius:0}.lg\:rounded-sm{border-radius:.125rem}.lg\:rounded{border-radius:.25rem}.lg\:rounded-md{border-radius:.375rem}.lg\:rounded-lg{border-radius:.5rem}.lg\:rounded-xl{border-radius:.75rem}.lg\:rounded-2xl{border-radius:1rem}.lg\:rounded-3xl{border-radius:1.5rem}.lg\:rounded-full{border-radius:9999px}.lg\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.lg\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.lg\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.lg\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.lg\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.lg\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.lg\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.lg\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.lg\:rounded-t{border-top-left-radius:.25rem}.lg\:rounded-r,.lg\:rounded-t{border-top-right-radius:.25rem}.lg\:rounded-b,.lg\:rounded-r{border-bottom-right-radius:.25rem}.lg\:rounded-b,.lg\:rounded-l{border-bottom-left-radius:.25rem}.lg\:rounded-l{border-top-left-radius:.25rem}.lg\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.lg\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.lg\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.lg\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.lg\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.lg\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.lg\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.lg\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.lg\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.lg\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.lg\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.lg\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.lg\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.lg\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.lg\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.lg\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.lg\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.lg\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.lg\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.lg\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.lg\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.lg\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.lg\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.lg\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.lg\:rounded-tl-none{border-top-left-radius:0}.lg\:rounded-tr-none{border-top-right-radius:0}.lg\:rounded-br-none{border-bottom-right-radius:0}.lg\:rounded-bl-none{border-bottom-left-radius:0}.lg\:rounded-tl-sm{border-top-left-radius:.125rem}.lg\:rounded-tr-sm{border-top-right-radius:.125rem}.lg\:rounded-br-sm{border-bottom-right-radius:.125rem}.lg\:rounded-bl-sm{border-bottom-left-radius:.125rem}.lg\:rounded-tl{border-top-left-radius:.25rem}.lg\:rounded-tr{border-top-right-radius:.25rem}.lg\:rounded-br{border-bottom-right-radius:.25rem}.lg\:rounded-bl{border-bottom-left-radius:.25rem}.lg\:rounded-tl-md{border-top-left-radius:.375rem}.lg\:rounded-tr-md{border-top-right-radius:.375rem}.lg\:rounded-br-md{border-bottom-right-radius:.375rem}.lg\:rounded-bl-md{border-bottom-left-radius:.375rem}.lg\:rounded-tl-lg{border-top-left-radius:.5rem}.lg\:rounded-tr-lg{border-top-right-radius:.5rem}.lg\:rounded-br-lg{border-bottom-right-radius:.5rem}.lg\:rounded-bl-lg{border-bottom-left-radius:.5rem}.lg\:rounded-tl-xl{border-top-left-radius:.75rem}.lg\:rounded-tr-xl{border-top-right-radius:.75rem}.lg\:rounded-br-xl{border-bottom-right-radius:.75rem}.lg\:rounded-bl-xl{border-bottom-left-radius:.75rem}.lg\:rounded-tl-2xl{border-top-left-radius:1rem}.lg\:rounded-tr-2xl{border-top-right-radius:1rem}.lg\:rounded-br-2xl{border-bottom-right-radius:1rem}.lg\:rounded-bl-2xl{border-bottom-left-radius:1rem}.lg\:rounded-tl-3xl{border-top-left-radius:1.5rem}.lg\:rounded-tr-3xl{border-top-right-radius:1.5rem}.lg\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.lg\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.lg\:rounded-tl-full{border-top-left-radius:9999px}.lg\:rounded-tr-full{border-top-right-radius:9999px}.lg\:rounded-br-full{border-bottom-right-radius:9999px}.lg\:rounded-bl-full{border-bottom-left-radius:9999px}.lg\:border-solid{border-style:solid}.lg\:border-dashed{border-style:dashed}.lg\:border-dotted{border-style:dotted}.lg\:border-double{border-style:double}.lg\:border-none{border-style:none}.lg\:border-0{border-width:0}.lg\:border-2{border-width:2px}.lg\:border-4{border-width:4px}.lg\:border-8{border-width:8px}.lg\:border{border-width:1px}.lg\:border-t-0{border-top-width:0}.lg\:border-r-0{border-right-width:0}.lg\:border-b-0{border-bottom-width:0}.lg\:border-l-0{border-left-width:0}.lg\:border-t-2{border-top-width:2px}.lg\:border-r-2{border-right-width:2px}.lg\:border-b-2{border-bottom-width:2px}.lg\:border-l-2{border-left-width:2px}.lg\:border-t-4{border-top-width:4px}.lg\:border-r-4{border-right-width:4px}.lg\:border-b-4{border-bottom-width:4px}.lg\:border-l-4{border-left-width:4px}.lg\:border-t-8{border-top-width:8px}.lg\:border-r-8{border-right-width:8px}.lg\:border-b-8{border-bottom-width:8px}.lg\:border-l-8{border-left-width:8px}.lg\:border-t{border-top-width:1px}.lg\:border-r{border-right-width:1px}.lg\:border-b{border-bottom-width:1px}.lg\:border-l{border-left-width:1px}.lg\:box-border{box-sizing:border-box}.lg\:box-content{box-sizing:content-box}.lg\:cursor-auto{cursor:auto}.lg\:cursor-default{cursor:default}.lg\:cursor-pointer{cursor:pointer}.lg\:cursor-wait{cursor:wait}.lg\:cursor-text{cursor:text}.lg\:cursor-move{cursor:move}.lg\:cursor-not-allowed{cursor:not-allowed}.lg\:block{display:block}.lg\:inline-block{display:inline-block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:table{display:table}.lg\:table-caption{display:table-caption}.lg\:table-cell{display:table-cell}.lg\:table-column{display:table-column}.lg\:table-column-group{display:table-column-group}.lg\:table-footer-group{display:table-footer-group}.lg\:table-header-group{display:table-header-group}.lg\:table-row-group{display:table-row-group}.lg\:table-row{display:table-row}.lg\:flow-root{display:flow-root}.lg\:grid{display:grid}.lg\:inline-grid{display:inline-grid}.lg\:contents{display:contents}.lg\:hidden{display:none}.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:flex-col{flex-direction:column}.lg\:flex-col-reverse{flex-direction:column-reverse}.lg\:flex-wrap{flex-wrap:wrap}.lg\:flex-wrap-reverse{flex-wrap:wrap-reverse}.lg\:flex-no-wrap{flex-wrap:nowrap}.lg\:place-items-auto{place-items:auto}.lg\:place-items-start{place-items:start}.lg\:place-items-end{place-items:end}.lg\:place-items-center{place-items:center}.lg\:place-items-stretch{place-items:stretch}.lg\:place-content-center{place-content:center}.lg\:place-content-start{place-content:start}.lg\:place-content-end{place-content:end}.lg\:place-content-between{place-content:space-between}.lg\:place-content-around{place-content:space-around}.lg\:place-content-evenly{place-content:space-evenly}.lg\:place-content-stretch{place-content:stretch}.lg\:place-self-auto{place-self:auto}.lg\:place-self-start{place-self:start}.lg\:place-self-end{place-self:end}.lg\:place-self-center{place-self:center}.lg\:place-self-stretch{place-self:stretch}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:items-baseline{align-items:baseline}.lg\:items-stretch{align-items:stretch}.lg\:content-center{align-content:center}.lg\:content-start{align-content:flex-start}.lg\:content-end{align-content:flex-end}.lg\:content-between{align-content:space-between}.lg\:content-around{align-content:space-around}.lg\:content-evenly{align-content:space-evenly}.lg\:self-auto{align-self:auto}.lg\:self-start{align-self:flex-start}.lg\:self-end{align-self:flex-end}.lg\:self-center{align-self:center}.lg\:self-stretch{align-self:stretch}.lg\:justify-items-auto{justify-items:auto}.lg\:justify-items-start{justify-items:start}.lg\:justify-items-end{justify-items:end}.lg\:justify-items-center{justify-items:center}.lg\:justify-items-stretch{justify-items:stretch}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:justify-center{justify-content:center}.lg\:justify-between{justify-content:space-between}.lg\:justify-around{justify-content:space-around}.lg\:justify-evenly{justify-content:space-evenly}.lg\:justify-self-auto{justify-self:auto}.lg\:justify-self-start{justify-self:start}.lg\:justify-self-end{justify-self:end}.lg\:justify-self-center{justify-self:center}.lg\:justify-self-stretch{justify-self:stretch}.lg\:flex-1{flex:1 1 0%}.lg\:flex-auto{flex:1 1 auto}.lg\:flex-initial{flex:0 1 auto}.lg\:flex-none{flex:none}.lg\:flex-grow-0{flex-grow:0}.lg\:flex-grow{flex-grow:1}.lg\:flex-shrink-0{flex-shrink:0}.lg\:flex-shrink{flex-shrink:1}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:order-6{order:6}.lg\:order-7{order:7}.lg\:order-8{order:8}.lg\:order-9{order:9}.lg\:order-10{order:10}.lg\:order-11{order:11}.lg\:order-12{order:12}.lg\:order-first{order:-9999}.lg\:order-last{order:9999}.lg\:order-none{order:0}.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:float-none{float:none}.lg\:clearfix:after{content:"";display:table;clear:both}.lg\:clear-left{clear:left}.lg\:clear-right{clear:right}.lg\:clear-both{clear:both}.lg\:clear-none{clear:none}.lg\:font-sans{font-family: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}.lg\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.lg\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.lg\:font-hairline{font-weight:100}.lg\:font-thin{font-weight:200}.lg\:font-light{font-weight:300}.lg\:font-normal{font-weight:400}.lg\:font-medium{font-weight:500}.lg\:font-semibold{font-weight:600}.lg\:font-bold{font-weight:700}.lg\:font-extrabold{font-weight:800}.lg\:font-black{font-weight:900}.lg\:hover\:font-hairline:hover{font-weight:100}.lg\:hover\:font-thin:hover{font-weight:200}.lg\:hover\:font-light:hover{font-weight:300}.lg\:hover\:font-normal:hover{font-weight:400}.lg\:hover\:font-medium:hover{font-weight:500}.lg\:hover\:font-semibold:hover{font-weight:600}.lg\:hover\:font-bold:hover{font-weight:700}.lg\:hover\:font-extrabold:hover{font-weight:800}.lg\:hover\:font-black:hover{font-weight:900}.lg\:focus\:font-hairline:focus{font-weight:100}.lg\:focus\:font-thin:focus{font-weight:200}.lg\:focus\:font-light:focus{font-weight:300}.lg\:focus\:font-normal:focus{font-weight:400}.lg\:focus\:font-medium:focus{font-weight:500}.lg\:focus\:font-semibold:focus{font-weight:600}.lg\:focus\:font-bold:focus{font-weight:700}.lg\:focus\:font-extrabold:focus{font-weight:800}.lg\:focus\:font-black:focus{font-weight:900}.lg\:h-0{height:0}.lg\:h-1{height:.25rem}.lg\:h-2{height:.5rem}.lg\:h-3{height:.75rem}.lg\:h-4{height:1rem}.lg\:h-5{height:1.25rem}.lg\:h-6{height:1.5rem}.lg\:h-8{height:2rem}.lg\:h-10{height:2.5rem}.lg\:h-12{height:3rem}.lg\:h-16{height:4rem}.lg\:h-20{height:5rem}.lg\:h-24{height:6rem}.lg\:h-32{height:8rem}.lg\:h-40{height:10rem}.lg\:h-48{height:12rem}.lg\:h-56{height:14rem}.lg\:h-64{height:16rem}.lg\:h-auto{height:auto}.lg\:h-px{height:1px}.lg\:h-full{height:100%}.lg\:h-screen{height:100vh}.lg\:text-xs{font-size:.75rem}.lg\:text-sm{font-size:.875rem}.lg\:text-base{font-size:1rem}.lg\:text-lg{font-size:1.125rem}.lg\:text-xl{font-size:1.25rem}.lg\:text-2xl{font-size:1.5rem}.lg\:text-3xl{font-size:1.875rem}.lg\:text-4xl{font-size:2.25rem}.lg\:text-5xl{font-size:3rem}.lg\:text-6xl{font-size:4rem}.lg\:leading-3{line-height:.75rem}.lg\:leading-4{line-height:1rem}.lg\:leading-5{line-height:1.25rem}.lg\:leading-6{line-height:1.5rem}.lg\:leading-7{line-height:1.75rem}.lg\:leading-8{line-height:2rem}.lg\:leading-9{line-height:2.25rem}.lg\:leading-10{line-height:2.5rem}.lg\:leading-none{line-height:1}.lg\:leading-tight{line-height:1.25}.lg\:leading-snug{line-height:1.375}.lg\:leading-normal{line-height:1.5}.lg\:leading-relaxed{line-height:1.625}.lg\:leading-loose{line-height:2}.lg\:list-inside{list-style-position:inside}.lg\:list-outside{list-style-position:outside}.lg\:list-none{list-style-type:none}.lg\:list-disc{list-style-type:disc}.lg\:list-decimal{list-style-type:decimal}.lg\:m-0{margin:0}.lg\:m-1{margin:.25rem}.lg\:m-2{margin:.5rem}.lg\:m-3{margin:.75rem}.lg\:m-4{margin:1rem}.lg\:m-5{margin:1.25rem}.lg\:m-6{margin:1.5rem}.lg\:m-8{margin:2rem}.lg\:m-10{margin:2.5rem}.lg\:m-12{margin:3rem}.lg\:m-16{margin:4rem}.lg\:m-20{margin:5rem}.lg\:m-24{margin:6rem}.lg\:m-32{margin:8rem}.lg\:m-40{margin:10rem}.lg\:m-48{margin:12rem}.lg\:m-56{margin:14rem}.lg\:m-64{margin:16rem}.lg\:m-auto{margin:auto}.lg\:m-px{margin:1px}.lg\:-m-1{margin:-.25rem}.lg\:-m-2{margin:-.5rem}.lg\:-m-3{margin:-.75rem}.lg\:-m-4{margin:-1rem}.lg\:-m-5{margin:-1.25rem}.lg\:-m-6{margin:-1.5rem}.lg\:-m-8{margin:-2rem}.lg\:-m-10{margin:-2.5rem}.lg\:-m-12{margin:-3rem}.lg\:-m-16{margin:-4rem}.lg\:-m-20{margin:-5rem}.lg\:-m-24{margin:-6rem}.lg\:-m-32{margin:-8rem}.lg\:-m-40{margin:-10rem}.lg\:-m-48{margin:-12rem}.lg\:-m-56{margin:-14rem}.lg\:-m-64{margin:-16rem}.lg\:-m-px{margin:-1px}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:my-1{margin-top:.25rem;margin-bottom:.25rem}.lg\:mx-1{margin-left:.25rem;margin-right:.25rem}.lg\:my-2{margin-top:.5rem;margin-bottom:.5rem}.lg\:mx-2{margin-left:.5rem;margin-right:.5rem}.lg\:my-3{margin-top:.75rem;margin-bottom:.75rem}.lg\:mx-3{margin-left:.75rem;margin-right:.75rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mx-4{margin-left:1rem;margin-right:1rem}.lg\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:my-8{margin-top:2rem;margin-bottom:2rem}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.lg\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.lg\:my-12{margin-top:3rem;margin-bottom:3rem}.lg\:mx-12{margin-left:3rem;margin-right:3rem}.lg\:my-16{margin-top:4rem;margin-bottom:4rem}.lg\:mx-16{margin-left:4rem;margin-right:4rem}.lg\:my-20{margin-top:5rem;margin-bottom:5rem}.lg\:mx-20{margin-left:5rem;margin-right:5rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-24{margin-left:6rem;margin-right:6rem}.lg\:my-32{margin-top:8rem;margin-bottom:8rem}.lg\:mx-32{margin-left:8rem;margin-right:8rem}.lg\:my-40{margin-top:10rem;margin-bottom:10rem}.lg\:mx-40{margin-left:10rem;margin-right:10rem}.lg\:my-48{margin-top:12rem;margin-bottom:12rem}.lg\:mx-48{margin-left:12rem;margin-right:12rem}.lg\:my-56{margin-top:14rem;margin-bottom:14rem}.lg\:mx-56{margin-left:14rem;margin-right:14rem}.lg\:my-64{margin-top:16rem;margin-bottom:16rem}.lg\:mx-64{margin-left:16rem;margin-right:16rem}.lg\:my-auto{margin-top:auto;margin-bottom:auto}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:my-px{margin-top:1px;margin-bottom:1px}.lg\:mx-px{margin-left:1px;margin-right:1px}.lg\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.lg\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.lg\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.lg\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.lg\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.lg\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.lg\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.lg\:-mx-4{margin-left:-1rem;margin-right:-1rem}.lg\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.lg\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.lg\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.lg\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.lg\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.lg\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.lg\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.lg\:-mx-12{margin-left:-3rem;margin-right:-3rem}.lg\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.lg\:-mx-16{margin-left:-4rem;margin-right:-4rem}.lg\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.lg\:-mx-20{margin-left:-5rem;margin-right:-5rem}.lg\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.lg\:-mx-24{margin-left:-6rem;margin-right:-6rem}.lg\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.lg\:-mx-32{margin-left:-8rem;margin-right:-8rem}.lg\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.lg\:-mx-40{margin-left:-10rem;margin-right:-10rem}.lg\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.lg\:-mx-48{margin-left:-12rem;margin-right:-12rem}.lg\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.lg\:-mx-56{margin-left:-14rem;margin-right:-14rem}.lg\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.lg\:-mx-64{margin-left:-16rem;margin-right:-16rem}.lg\:-my-px{margin-top:-1px;margin-bottom:-1px}.lg\:-mx-px{margin-left:-1px;margin-right:-1px}.lg\:mt-0{margin-top:0}.lg\:mr-0{margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:ml-0{margin-left:0}.lg\:mt-1{margin-top:.25rem}.lg\:mr-1{margin-right:.25rem}.lg\:mb-1{margin-bottom:.25rem}.lg\:ml-1{margin-left:.25rem}.lg\:mt-2{margin-top:.5rem}.lg\:mr-2{margin-right:.5rem}.lg\:mb-2{margin-bottom:.5rem}.lg\:ml-2{margin-left:.5rem}.lg\:mt-3{margin-top:.75rem}.lg\:mr-3{margin-right:.75rem}.lg\:mb-3{margin-bottom:.75rem}.lg\:ml-3{margin-left:.75rem}.lg\:mt-4{margin-top:1rem}.lg\:mr-4{margin-right:1rem}.lg\:mb-4{margin-bottom:1rem}.lg\:ml-4{margin-left:1rem}.lg\:mt-5{margin-top:1.25rem}.lg\:mr-5{margin-right:1.25rem}.lg\:mb-5{margin-bottom:1.25rem}.lg\:ml-5{margin-left:1.25rem}.lg\:mt-6{margin-top:1.5rem}.lg\:mr-6{margin-right:1.5rem}.lg\:mb-6{margin-bottom:1.5rem}.lg\:ml-6{margin-left:1.5rem}.lg\:mt-8{margin-top:2rem}.lg\:mr-8{margin-right:2rem}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-8{margin-left:2rem}.lg\:mt-10{margin-top:2.5rem}.lg\:mr-10{margin-right:2.5rem}.lg\:mb-10{margin-bottom:2.5rem}.lg\:ml-10{margin-left:2.5rem}.lg\:mt-12{margin-top:3rem}.lg\:mr-12{margin-right:3rem}.lg\:mb-12{margin-bottom:3rem}.lg\:ml-12{margin-left:3rem}.lg\:mt-16{margin-top:4rem}.lg\:mr-16{margin-right:4rem}.lg\:mb-16{margin-bottom:4rem}.lg\:ml-16{margin-left:4rem}.lg\:mt-20{margin-top:5rem}.lg\:mr-20{margin-right:5rem}.lg\:mb-20{margin-bottom:5rem}.lg\:ml-20{margin-left:5rem}.lg\:mt-24{margin-top:6rem}.lg\:mr-24{margin-right:6rem}.lg\:mb-24{margin-bottom:6rem}.lg\:ml-24{margin-left:6rem}.lg\:mt-32{margin-top:8rem}.lg\:mr-32{margin-right:8rem}.lg\:mb-32{margin-bottom:8rem}.lg\:ml-32{margin-left:8rem}.lg\:mt-40{margin-top:10rem}.lg\:mr-40{margin-right:10rem}.lg\:mb-40{margin-bottom:10rem}.lg\:ml-40{margin-left:10rem}.lg\:mt-48{margin-top:12rem}.lg\:mr-48{margin-right:12rem}.lg\:mb-48{margin-bottom:12rem}.lg\:ml-48{margin-left:12rem}.lg\:mt-56{margin-top:14rem}.lg\:mr-56{margin-right:14rem}.lg\:mb-56{margin-bottom:14rem}.lg\:ml-56{margin-left:14rem}.lg\:mt-64{margin-top:16rem}.lg\:mr-64{margin-right:16rem}.lg\:mb-64{margin-bottom:16rem}.lg\:ml-64{margin-left:16rem}.lg\:mt-auto{margin-top:auto}.lg\:mr-auto{margin-right:auto}.lg\:mb-auto{margin-bottom:auto}.lg\:ml-auto{margin-left:auto}.lg\:mt-px{margin-top:1px}.lg\:mr-px{margin-right:1px}.lg\:mb-px{margin-bottom:1px}.lg\:ml-px{margin-left:1px}.lg\:-mt-1{margin-top:-.25rem}.lg\:-mr-1{margin-right:-.25rem}.lg\:-mb-1{margin-bottom:-.25rem}.lg\:-ml-1{margin-left:-.25rem}.lg\:-mt-2{margin-top:-.5rem}.lg\:-mr-2{margin-right:-.5rem}.lg\:-mb-2{margin-bottom:-.5rem}.lg\:-ml-2{margin-left:-.5rem}.lg\:-mt-3{margin-top:-.75rem}.lg\:-mr-3{margin-right:-.75rem}.lg\:-mb-3{margin-bottom:-.75rem}.lg\:-ml-3{margin-left:-.75rem}.lg\:-mt-4{margin-top:-1rem}.lg\:-mr-4{margin-right:-1rem}.lg\:-mb-4{margin-bottom:-1rem}.lg\:-ml-4{margin-left:-1rem}.lg\:-mt-5{margin-top:-1.25rem}.lg\:-mr-5{margin-right:-1.25rem}.lg\:-mb-5{margin-bottom:-1.25rem}.lg\:-ml-5{margin-left:-1.25rem}.lg\:-mt-6{margin-top:-1.5rem}.lg\:-mr-6{margin-right:-1.5rem}.lg\:-mb-6{margin-bottom:-1.5rem}.lg\:-ml-6{margin-left:-1.5rem}.lg\:-mt-8{margin-top:-2rem}.lg\:-mr-8{margin-right:-2rem}.lg\:-mb-8{margin-bottom:-2rem}.lg\:-ml-8{margin-left:-2rem}.lg\:-mt-10{margin-top:-2.5rem}.lg\:-mr-10{margin-right:-2.5rem}.lg\:-mb-10{margin-bottom:-2.5rem}.lg\:-ml-10{margin-left:-2.5rem}.lg\:-mt-12{margin-top:-3rem}.lg\:-mr-12{margin-right:-3rem}.lg\:-mb-12{margin-bottom:-3rem}.lg\:-ml-12{margin-left:-3rem}.lg\:-mt-16{margin-top:-4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:-mb-16{margin-bottom:-4rem}.lg\:-ml-16{margin-left:-4rem}.lg\:-mt-20{margin-top:-5rem}.lg\:-mr-20{margin-right:-5rem}.lg\:-mb-20{margin-bottom:-5rem}.lg\:-ml-20{margin-left:-5rem}.lg\:-mt-24{margin-top:-6rem}.lg\:-mr-24{margin-right:-6rem}.lg\:-mb-24{margin-bottom:-6rem}.lg\:-ml-24{margin-left:-6rem}.lg\:-mt-32{margin-top:-8rem}.lg\:-mr-32{margin-right:-8rem}.lg\:-mb-32{margin-bottom:-8rem}.lg\:-ml-32{margin-left:-8rem}.lg\:-mt-40{margin-top:-10rem}.lg\:-mr-40{margin-right:-10rem}.lg\:-mb-40{margin-bottom:-10rem}.lg\:-ml-40{margin-left:-10rem}.lg\:-mt-48{margin-top:-12rem}.lg\:-mr-48{margin-right:-12rem}.lg\:-mb-48{margin-bottom:-12rem}.lg\:-ml-48{margin-left:-12rem}.lg\:-mt-56{margin-top:-14rem}.lg\:-mr-56{margin-right:-14rem}.lg\:-mb-56{margin-bottom:-14rem}.lg\:-ml-56{margin-left:-14rem}.lg\:-mt-64{margin-top:-16rem}.lg\:-mr-64{margin-right:-16rem}.lg\:-mb-64{margin-bottom:-16rem}.lg\:-ml-64{margin-left:-16rem}.lg\:-mt-px{margin-top:-1px}.lg\:-mr-px{margin-right:-1px}.lg\:-mb-px{margin-bottom:-1px}.lg\:-ml-px{margin-left:-1px}.lg\:max-h-full{max-height:100%}.lg\:max-h-screen{max-height:100vh}.lg\:max-w-none{max-width:none}.lg\:max-w-xs{max-width:20rem}.lg\:max-w-sm{max-width:24rem}.lg\:max-w-md{max-width:28rem}.lg\:max-w-lg{max-width:32rem}.lg\:max-w-xl{max-width:36rem}.lg\:max-w-2xl{max-width:42rem}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-5xl{max-width:64rem}.lg\:max-w-6xl{max-width:72rem}.lg\:max-w-full{max-width:100%}.lg\:max-w-screen-xs{max-width:360px}.lg\:max-w-screen-sm{max-width:640px}.lg\:max-w-screen-md{max-width:768px}.lg\:max-w-screen-lg{max-width:1024px}.lg\:max-w-screen-xl{max-width:1280px}.lg\:max-w-screen-xxl{max-width:1480px}.lg\:min-h-0{min-height:0}.lg\:min-h-full{min-height:100%}.lg\:min-h-screen{min-height:100vh}.lg\:min-w-0{min-width:0}.lg\:min-w-full{min-width:100%}.lg\:object-contain{-o-object-fit:contain;object-fit:contain}.lg\:object-cover{-o-object-fit:cover;object-fit:cover}.lg\:object-fill{-o-object-fit:fill;object-fit:fill}.lg\:object-none{-o-object-fit:none;object-fit:none}.lg\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.lg\:object-bottom{-o-object-position:bottom;object-position:bottom}.lg\:object-center{-o-object-position:center;object-position:center}.lg\:object-left{-o-object-position:left;object-position:left}.lg\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.lg\:object-left-top{-o-object-position:left top;object-position:left top}.lg\:object-right{-o-object-position:right;object-position:right}.lg\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.lg\:object-right-top{-o-object-position:right top;object-position:right top}.lg\:object-top{-o-object-position:top;object-position:top}.lg\:opacity-0{opacity:0}.lg\:opacity-25{opacity:.25}.lg\:opacity-50{opacity:.5}.lg\:opacity-75{opacity:.75}.lg\:opacity-100{opacity:1}.lg\:hover\:opacity-0:hover{opacity:0}.lg\:hover\:opacity-25:hover{opacity:.25}.lg\:hover\:opacity-50:hover{opacity:.5}.lg\:hover\:opacity-75:hover{opacity:.75}.lg\:hover\:opacity-100:hover{opacity:1}.lg\:focus\:opacity-0:focus{opacity:0}.lg\:focus\:opacity-25:focus{opacity:.25}.lg\:focus\:opacity-50:focus{opacity:.5}.lg\:focus\:opacity-75:focus{opacity:.75}.lg\:focus\:opacity-100:focus{opacity:1}.lg\:outline-none{outline:2px solid transparent;outline-offset:2px}.lg\:outline-white{outline:2px dotted #fff;outline-offset:2px}.lg\:outline-black{outline:2px dotted #000;outline-offset:2px}.lg\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.lg\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.lg\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.lg\:overflow-auto{overflow:auto}.lg\:overflow-hidden{overflow:hidden}.lg\:overflow-visible{overflow:visible}.lg\:overflow-scroll{overflow:scroll}.lg\:overflow-x-auto{overflow-x:auto}.lg\:overflow-y-auto{overflow-y:auto}.lg\:overflow-x-hidden{overflow-x:hidden}.lg\:overflow-y-hidden{overflow-y:hidden}.lg\:overflow-x-visible{overflow-x:visible}.lg\:overflow-y-visible{overflow-y:visible}.lg\:overflow-x-scroll{overflow-x:scroll}.lg\:overflow-y-scroll{overflow-y:scroll}.lg\:scrolling-touch{-webkit-overflow-scrolling:touch}.lg\:scrolling-auto{-webkit-overflow-scrolling:auto}.lg\:overscroll-auto{overscroll-behavior:auto}.lg\:overscroll-contain{overscroll-behavior:contain}.lg\:overscroll-none{overscroll-behavior:none}.lg\:overscroll-y-auto{overscroll-behavior-y:auto}.lg\:overscroll-y-contain{overscroll-behavior-y:contain}.lg\:overscroll-y-none{overscroll-behavior-y:none}.lg\:overscroll-x-auto{overscroll-behavior-x:auto}.lg\:overscroll-x-contain{overscroll-behavior-x:contain}.lg\:overscroll-x-none{overscroll-behavior-x:none}.lg\:p-0{padding:0}.lg\:p-1{padding:.25rem}.lg\:p-2{padding:.5rem}.lg\:p-3{padding:.75rem}.lg\:p-4{padding:1rem}.lg\:p-5{padding:1.25rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:p-10{padding:2.5rem}.lg\:p-12{padding:3rem}.lg\:p-16{padding:4rem}.lg\:p-20{padding:5rem}.lg\:p-24{padding:6rem}.lg\:p-32{padding:8rem}.lg\:p-40{padding:10rem}.lg\:p-48{padding:12rem}.lg\:p-56{padding:14rem}.lg\:p-64{padding:16rem}.lg\:p-px{padding:1px}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:px-0{padding-left:0;padding-right:0}.lg\:py-1{padding-top:.25rem;padding-bottom:.25rem}.lg\:px-1{padding-left:.25rem;padding-right:.25rem}.lg\:py-2{padding-top:.5rem;padding-bottom:.5rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:py-3{padding-top:.75rem;padding-bottom:.75rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:px-20{padding-left:5rem;padding-right:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:px-24{padding-left:6rem;padding-right:6rem}.lg\:py-32{padding-top:8rem;padding-bottom:8rem}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:py-40{padding-top:10rem;padding-bottom:10rem}.lg\:px-40{padding-left:10rem;padding-right:10rem}.lg\:py-48{padding-top:12rem;padding-bottom:12rem}.lg\:px-48{padding-left:12rem;padding-right:12rem}.lg\:py-56{padding-top:14rem;padding-bottom:14rem}.lg\:px-56{padding-left:14rem;padding-right:14rem}.lg\:py-64{padding-top:16rem;padding-bottom:16rem}.lg\:px-64{padding-left:16rem;padding-right:16rem}.lg\:py-px{padding-top:1px;padding-bottom:1px}.lg\:px-px{padding-left:1px;padding-right:1px}.lg\:pt-0{padding-top:0}.lg\:pr-0{padding-right:0}.lg\:pb-0{padding-bottom:0}.lg\:pl-0{padding-left:0}.lg\:pt-1{padding-top:.25rem}.lg\:pr-1{padding-right:.25rem}.lg\:pb-1{padding-bottom:.25rem}.lg\:pl-1{padding-left:.25rem}.lg\:pt-2{padding-top:.5rem}.lg\:pr-2{padding-right:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:pt-3{padding-top:.75rem}.lg\:pr-3{padding-right:.75rem}.lg\:pb-3{padding-bottom:.75rem}.lg\:pl-3{padding-left:.75rem}.lg\:pt-4{padding-top:1rem}.lg\:pr-4{padding-right:1rem}.lg\:pb-4{padding-bottom:1rem}.lg\:pl-4{padding-left:1rem}.lg\:pt-5{padding-top:1.25rem}.lg\:pr-5{padding-right:1.25rem}.lg\:pb-5{padding-bottom:1.25rem}.lg\:pl-5{padding-left:1.25rem}.lg\:pt-6{padding-top:1.5rem}.lg\:pr-6{padding-right:1.5rem}.lg\:pb-6{padding-bottom:1.5rem}.lg\:pl-6{padding-left:1.5rem}.lg\:pt-8{padding-top:2rem}.lg\:pr-8{padding-right:2rem}.lg\:pb-8{padding-bottom:2rem}.lg\:pl-8{padding-left:2rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pr-10{padding-right:2.5rem}.lg\:pb-10{padding-bottom:2.5rem}.lg\:pl-10{padding-left:2.5rem}.lg\:pt-12{padding-top:3rem}.lg\:pr-12{padding-right:3rem}.lg\:pb-12{padding-bottom:3rem}.lg\:pl-12{padding-left:3rem}.lg\:pt-16{padding-top:4rem}.lg\:pr-16{padding-right:4rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pl-16{padding-left:4rem}.lg\:pt-20{padding-top:5rem}.lg\:pr-20{padding-right:5rem}.lg\:pb-20{padding-bottom:5rem}.lg\:pl-20{padding-left:5rem}.lg\:pt-24{padding-top:6rem}.lg\:pr-24{padding-right:6rem}.lg\:pb-24{padding-bottom:6rem}.lg\:pl-24{padding-left:6rem}.lg\:pt-32{padding-top:8rem}.lg\:pr-32{padding-right:8rem}.lg\:pb-32{padding-bottom:8rem}.lg\:pl-32{padding-left:8rem}.lg\:pt-40{padding-top:10rem}.lg\:pr-40{padding-right:10rem}.lg\:pb-40{padding-bottom:10rem}.lg\:pl-40{padding-left:10rem}.lg\:pt-48{padding-top:12rem}.lg\:pr-48{padding-right:12rem}.lg\:pb-48{padding-bottom:12rem}.lg\:pl-48{padding-left:12rem}.lg\:pt-56{padding-top:14rem}.lg\:pr-56{padding-right:14rem}.lg\:pb-56{padding-bottom:14rem}.lg\:pl-56{padding-left:14rem}.lg\:pt-64{padding-top:16rem}.lg\:pr-64{padding-right:16rem}.lg\:pb-64{padding-bottom:16rem}.lg\:pl-64{padding-left:16rem}.lg\:pt-px{padding-top:1px}.lg\:pr-px{padding-right:1px}.lg\:pb-px{padding-bottom:1px}.lg\:pl-px{padding-left:1px}.lg\:placeholder-transparent::placeholder{color:transparent}.lg\:placeholder-current::placeholder{color:currentColor}.lg\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.lg\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.lg\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.lg\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.lg\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.lg\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.lg\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.lg\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.lg\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.lg\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.lg\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.lg\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.lg\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.lg\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.lg\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.lg\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.lg\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.lg\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.lg\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.lg\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.lg\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.lg\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.lg\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.lg\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.lg\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.lg\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.lg\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.lg\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.lg\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.lg\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.lg\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.lg\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.lg\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.lg\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.lg\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.lg\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.lg\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.lg\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.lg\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.lg\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.lg\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.lg\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.lg\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.lg\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.lg\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.lg\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.lg\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.lg\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.lg\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.lg\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.lg\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.lg\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.lg\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.lg\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.lg\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.lg\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.lg\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.lg\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.lg\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.lg\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.lg\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.lg\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.lg\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.lg\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.lg\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.lg\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.lg\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.lg\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.lg\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.lg\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.lg\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.lg\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.lg\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.lg\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.lg\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.lg\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.lg\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.lg\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.lg\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.lg\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.lg\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.lg\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.lg\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.lg\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.lg\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.lg\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.lg\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.lg\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.lg\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.lg\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.lg\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.lg\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.lg\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.lg\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.lg\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.lg\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.lg\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.lg\:focus\:placeholder-current:focus::placeholder{color:currentColor}.lg\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.lg\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.lg\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.lg\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.lg\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.lg\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.lg\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.lg\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.lg\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.lg\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.lg\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.lg\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.lg\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.lg\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.lg\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.lg\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.lg\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.lg\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.lg\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.lg\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.lg\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.lg\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.lg\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.lg\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.lg\:pointer-events-none{pointer-events:none}.lg\:pointer-events-auto{pointer-events:auto}.lg\:static{position:static}.lg\:fixed{position:fixed}.lg\:absolute{position:absolute}.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:inset-0{top:0;right:0;bottom:0;left:0}.lg\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.lg\:inset-y-0{top:0;bottom:0}.lg\:inset-x-0{right:0;left:0}.lg\:inset-y-auto{top:auto;bottom:auto}.lg\:inset-x-auto{right:auto;left:auto}.lg\:top-0{top:0}.lg\:right-0{right:0}.lg\:bottom-0{bottom:0}.lg\:left-0{left:0}.lg\:top-auto{top:auto}.lg\:right-auto{right:auto}.lg\:bottom-auto{bottom:auto}.lg\:left-auto{left:auto}.lg\:resize-none{resize:none}.lg\:resize-y{resize:vertical}.lg\:resize-x{resize:horizontal}.lg\:resize{resize:both}.lg\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:shadow-none{box-shadow:none}.lg\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:hover\:shadow-none:hover{box-shadow:none}.lg\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.lg\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.lg\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.lg\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.lg\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.lg\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.lg\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.lg\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.lg\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.lg\:focus\:shadow-none:focus{box-shadow:none}.lg\:fill-current{fill:currentColor}.lg\:stroke-current{stroke:currentColor}.lg\:stroke-0{stroke-width:0}.lg\:stroke-1{stroke-width:1}.lg\:stroke-2{stroke-width:2}.lg\:table-auto{table-layout:auto}.lg\:table-fixed{table-layout:fixed}.lg\:text-left{text-align:left}.lg\:text-center{text-align:center}.lg\:text-right{text-align:right}.lg\:text-justify{text-align:justify}.lg\:text-transparent{color:transparent}.lg\:text-current{color:currentColor}.lg\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:hover\:text-transparent:hover{color:transparent}.lg\:hover\:text-current:hover{color:currentColor}.lg\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:focus\:text-transparent:focus{color:transparent}.lg\:focus\:text-current:focus{color:currentColor}.lg\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.lg\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.lg\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.lg\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.lg\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.lg\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.lg\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.lg\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.lg\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.lg\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.lg\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.lg\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.lg\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.lg\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.lg\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.lg\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.lg\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.lg\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.lg\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.lg\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.lg\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.lg\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.lg\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.lg\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.lg\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.lg\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.lg\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.lg\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.lg\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.lg\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.lg\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.lg\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.lg\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.lg\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.lg\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.lg\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.lg\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.lg\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.lg\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.lg\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.lg\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.lg\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.lg\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.lg\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.lg\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.lg\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.lg\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.lg\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.lg\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.lg\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.lg\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.lg\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.lg\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.lg\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.lg\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.lg\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.lg\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.lg\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.lg\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.lg\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.lg\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.lg\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.lg\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.lg\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.lg\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.lg\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.lg\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.lg\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.lg\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.lg\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.lg\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.lg\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.lg\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.lg\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.lg\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.lg\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.lg\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.lg\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.lg\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.lg\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.lg\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.lg\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.lg\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.lg\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.lg\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.lg\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.lg\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.lg\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.lg\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.lg\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.lg\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.lg\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.lg\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.lg\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.lg\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.lg\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.lg\:text-opacity-0{--text-opacity:0}.lg\:text-opacity-25{--text-opacity:0.25}.lg\:text-opacity-50{--text-opacity:0.5}.lg\:text-opacity-75{--text-opacity:0.75}.lg\:text-opacity-100{--text-opacity:1}.lg\:hover\:text-opacity-0:hover{--text-opacity:0}.lg\:hover\:text-opacity-25:hover{--text-opacity:0.25}.lg\:hover\:text-opacity-50:hover{--text-opacity:0.5}.lg\:hover\:text-opacity-75:hover{--text-opacity:0.75}.lg\:hover\:text-opacity-100:hover{--text-opacity:1}.lg\:focus\:text-opacity-0:focus{--text-opacity:0}.lg\:focus\:text-opacity-25:focus{--text-opacity:0.25}.lg\:focus\:text-opacity-50:focus{--text-opacity:0.5}.lg\:focus\:text-opacity-75:focus{--text-opacity:0.75}.lg\:focus\:text-opacity-100:focus{--text-opacity:1}.lg\:italic{font-style:italic}.lg\:not-italic{font-style:normal}.lg\:uppercase{text-transform:uppercase}.lg\:lowercase{text-transform:lowercase}.lg\:capitalize{text-transform:capitalize}.lg\:normal-case{text-transform:none}.lg\:underline{text-decoration:underline}.lg\:line-through{text-decoration:line-through}.lg\:no-underline{text-decoration:none}.lg\:hover\:underline:hover{text-decoration:underline}.lg\:hover\:line-through:hover{text-decoration:line-through}.lg\:hover\:no-underline:hover{text-decoration:none}.lg\:focus\:underline:focus{text-decoration:underline}.lg\:focus\:line-through:focus{text-decoration:line-through}.lg\:focus\:no-underline:focus{text-decoration:none}.lg\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.lg\:diagonal-fractions,.lg\:lining-nums,.lg\:oldstyle-nums,.lg\:ordinal,.lg\:proportional-nums,.lg\:slashed-zero,.lg\:stacked-fractions,.lg\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.lg\:normal-nums{font-variant-numeric:normal}.lg\:ordinal{--font-variant-numeric-ordinal:ordinal}.lg\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.lg\:lining-nums{--font-variant-numeric-figure:lining-nums}.lg\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.lg\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.lg\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.lg\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.lg\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.lg\:tracking-tighter{letter-spacing:-.05em}.lg\:tracking-tight{letter-spacing:-.025em}.lg\:tracking-normal{letter-spacing:0}.lg\:tracking-wide{letter-spacing:.025em}.lg\:tracking-wider{letter-spacing:.05em}.lg\:tracking-widest{letter-spacing:.1em}.lg\:select-none{-webkit-user-select:none;user-select:none}.lg\:select-text{-webkit-user-select:text;user-select:text}.lg\:select-all{-webkit-user-select:all;user-select:all}.lg\:select-auto{-webkit-user-select:auto;user-select:auto}.lg\:align-baseline{vertical-align:baseline}.lg\:align-top{vertical-align:top}.lg\:align-middle{vertical-align:middle}.lg\:align-bottom{vertical-align:bottom}.lg\:align-text-top{vertical-align:text-top}.lg\:align-text-bottom{vertical-align:text-bottom}.lg\:visible{visibility:visible}.lg\:invisible{visibility:hidden}.lg\:whitespace-normal{white-space:normal}.lg\:whitespace-no-wrap{white-space:nowrap}.lg\:whitespace-pre{white-space:pre}.lg\:whitespace-pre-line{white-space:pre-line}.lg\:whitespace-pre-wrap{white-space:pre-wrap}.lg\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.lg\:break-words{word-wrap:break-word;overflow-wrap:break-word}.lg\:break-all{word-break:break-all}.lg\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg\:w-0{width:0}.lg\:w-1{width:.25rem}.lg\:w-2{width:.5rem}.lg\:w-3{width:.75rem}.lg\:w-4{width:1rem}.lg\:w-5{width:1.25rem}.lg\:w-6{width:1.5rem}.lg\:w-8{width:2rem}.lg\:w-10{width:2.5rem}.lg\:w-12{width:3rem}.lg\:w-16{width:4rem}.lg\:w-20{width:5rem}.lg\:w-24{width:6rem}.lg\:w-32{width:8rem}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-56{width:14rem}.lg\:w-64{width:16rem}.lg\:w-auto{width:auto}.lg\:w-px{width:1px}.lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:w-1\/4{width:25%}.lg\:w-2\/4{width:50%}.lg\:w-3\/4{width:75%}.lg\:w-1\/5{width:20%}.lg\:w-2\/5{width:40%}.lg\:w-3\/5{width:60%}.lg\:w-4\/5{width:80%}.lg\:w-1\/6{width:16.666667%}.lg\:w-2\/6{width:33.333333%}.lg\:w-3\/6{width:50%}.lg\:w-4\/6{width:66.666667%}.lg\:w-5\/6{width:83.333333%}.lg\:w-1\/12{width:8.333333%}.lg\:w-2\/12{width:16.666667%}.lg\:w-3\/12{width:25%}.lg\:w-4\/12{width:33.333333%}.lg\:w-5\/12{width:41.666667%}.lg\:w-6\/12{width:50%}.lg\:w-7\/12{width:58.333333%}.lg\:w-8\/12{width:66.666667%}.lg\:w-9\/12{width:75%}.lg\:w-10\/12{width:83.333333%}.lg\:w-11\/12{width:91.666667%}.lg\:w-full{width:100%}.lg\:w-screen{width:100vw}.lg\:z-0{z-index:0}.lg\:z-10{z-index:10}.lg\:z-20{z-index:20}.lg\:z-30{z-index:30}.lg\:z-40{z-index:40}.lg\:z-50{z-index:50}.lg\:z-auto{z-index:auto}.lg\:gap-0{grid-gap:0;gap:0}.lg\:gap-1{grid-gap:.25rem;gap:.25rem}.lg\:gap-2{grid-gap:.5rem;gap:.5rem}.lg\:gap-3{grid-gap:.75rem;gap:.75rem}.lg\:gap-4{grid-gap:1rem;gap:1rem}.lg\:gap-5{grid-gap:1.25rem;gap:1.25rem}.lg\:gap-6{grid-gap:1.5rem;gap:1.5rem}.lg\:gap-8{grid-gap:2rem;gap:2rem}.lg\:gap-10{grid-gap:2.5rem;gap:2.5rem}.lg\:gap-12{grid-gap:3rem;gap:3rem}.lg\:gap-16{grid-gap:4rem;gap:4rem}.lg\:gap-20{grid-gap:5rem;gap:5rem}.lg\:gap-24{grid-gap:6rem;gap:6rem}.lg\:gap-32{grid-gap:8rem;gap:8rem}.lg\:gap-40{grid-gap:10rem;gap:10rem}.lg\:gap-48{grid-gap:12rem;gap:12rem}.lg\:gap-56{grid-gap:14rem;gap:14rem}.lg\:gap-64{grid-gap:16rem;gap:16rem}.lg\:gap-px{grid-gap:1px;gap:1px}.lg\:col-gap-0{grid-column-gap:0;column-gap:0}.lg\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.lg\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.lg\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.lg\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.lg\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.lg\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.lg\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.lg\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.lg\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.lg\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.lg\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.lg\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.lg\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.lg\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.lg\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.lg\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.lg\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.lg\:col-gap-px{grid-column-gap:1px;column-gap:1px}.lg\:gap-x-0{grid-column-gap:0;column-gap:0}.lg\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.lg\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.lg\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.lg\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.lg\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.lg\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.lg\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.lg\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.lg\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.lg\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.lg\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.lg\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.lg\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.lg\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.lg\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.lg\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.lg\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.lg\:gap-x-px{grid-column-gap:1px;column-gap:1px}.lg\:row-gap-0{grid-row-gap:0;row-gap:0}.lg\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.lg\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.lg\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.lg\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.lg\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.lg\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.lg\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.lg\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.lg\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.lg\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.lg\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.lg\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.lg\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.lg\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.lg\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.lg\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.lg\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.lg\:row-gap-px{grid-row-gap:1px;row-gap:1px}.lg\:gap-y-0{grid-row-gap:0;row-gap:0}.lg\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.lg\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.lg\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.lg\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.lg\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.lg\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.lg\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.lg\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.lg\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.lg\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.lg\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.lg\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.lg\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.lg\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.lg\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.lg\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.lg\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.lg\:gap-y-px{grid-row-gap:1px;row-gap:1px}.lg\:grid-flow-row{grid-auto-flow:row}.lg\:grid-flow-col{grid-auto-flow:column}.lg\:grid-flow-row-dense{grid-auto-flow:row dense}.lg\:grid-flow-col-dense{grid-auto-flow:column dense}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-none{grid-template-columns:none}.lg\:auto-cols-auto{grid-auto-columns:auto}.lg\:auto-cols-min{grid-auto-columns:min-content}.lg\:auto-cols-max{grid-auto-columns:max-content}.lg\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.lg\:col-auto{grid-column:auto}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:col-span-10{grid-column:span 10/span 10}.lg\:col-span-11{grid-column:span 11/span 11}.lg\:col-span-12{grid-column:span 12/span 12}.lg\:col-span-full{grid-column:1/-1}.lg\:col-start-1{grid-column-start:1}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:col-start-5{grid-column-start:5}.lg\:col-start-6{grid-column-start:6}.lg\:col-start-7{grid-column-start:7}.lg\:col-start-8{grid-column-start:8}.lg\:col-start-9{grid-column-start:9}.lg\:col-start-10{grid-column-start:10}.lg\:col-start-11{grid-column-start:11}.lg\:col-start-12{grid-column-start:12}.lg\:col-start-13{grid-column-start:13}.lg\:col-start-auto{grid-column-start:auto}.lg\:col-end-1{grid-column-end:1}.lg\:col-end-2{grid-column-end:2}.lg\:col-end-3{grid-column-end:3}.lg\:col-end-4{grid-column-end:4}.lg\:col-end-5{grid-column-end:5}.lg\:col-end-6{grid-column-end:6}.lg\:col-end-7{grid-column-end:7}.lg\:col-end-8{grid-column-end:8}.lg\:col-end-9{grid-column-end:9}.lg\:col-end-10{grid-column-end:10}.lg\:col-end-11{grid-column-end:11}.lg\:col-end-12{grid-column-end:12}.lg\:col-end-13{grid-column-end:13}.lg\:col-end-auto{grid-column-end:auto}.lg\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.lg\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:grid-rows-none{grid-template-rows:none}.lg\:auto-rows-auto{grid-auto-rows:auto}.lg\:auto-rows-min{grid-auto-rows:min-content}.lg\:auto-rows-max{grid-auto-rows:max-content}.lg\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.lg\:row-auto{grid-row:auto}.lg\:row-span-1{grid-row:span 1/span 1}.lg\:row-span-2{grid-row:span 2/span 2}.lg\:row-span-3{grid-row:span 3/span 3}.lg\:row-span-4{grid-row:span 4/span 4}.lg\:row-span-5{grid-row:span 5/span 5}.lg\:row-span-6{grid-row:span 6/span 6}.lg\:row-span-full{grid-row:1/-1}.lg\:row-start-1{grid-row-start:1}.lg\:row-start-2{grid-row-start:2}.lg\:row-start-3{grid-row-start:3}.lg\:row-start-4{grid-row-start:4}.lg\:row-start-5{grid-row-start:5}.lg\:row-start-6{grid-row-start:6}.lg\:row-start-7{grid-row-start:7}.lg\:row-start-auto{grid-row-start:auto}.lg\:row-end-1{grid-row-end:1}.lg\:row-end-2{grid-row-end:2}.lg\:row-end-3{grid-row-end:3}.lg\:row-end-4{grid-row-end:4}.lg\:row-end-5{grid-row-end:5}.lg\:row-end-6{grid-row-end:6}.lg\:row-end-7{grid-row-end:7}.lg\:row-end-auto{grid-row-end:auto}.lg\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.lg\:transform-none{transform:none}.lg\:origin-center{transform-origin:center}.lg\:origin-top{transform-origin:top}.lg\:origin-top-right{transform-origin:top right}.lg\:origin-right{transform-origin:right}.lg\:origin-bottom-right{transform-origin:bottom right}.lg\:origin-bottom{transform-origin:bottom}.lg\:origin-bottom-left{transform-origin:bottom left}.lg\:origin-left{transform-origin:left}.lg\:origin-top-left{transform-origin:top left}.lg\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.lg\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.lg\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:scale-x-0{--transform-scale-x:0}.lg\:scale-x-50{--transform-scale-x:.5}.lg\:scale-x-75{--transform-scale-x:.75}.lg\:scale-x-90{--transform-scale-x:.9}.lg\:scale-x-95{--transform-scale-x:.95}.lg\:scale-x-100{--transform-scale-x:1}.lg\:scale-x-105{--transform-scale-x:1.05}.lg\:scale-x-110{--transform-scale-x:1.1}.lg\:scale-x-125{--transform-scale-x:1.25}.lg\:scale-x-150{--transform-scale-x:1.5}.lg\:scale-y-0{--transform-scale-y:0}.lg\:scale-y-50{--transform-scale-y:.5}.lg\:scale-y-75{--transform-scale-y:.75}.lg\:scale-y-90{--transform-scale-y:.9}.lg\:scale-y-95{--transform-scale-y:.95}.lg\:scale-y-100{--transform-scale-y:1}.lg\:scale-y-105{--transform-scale-y:1.05}.lg\:scale-y-110{--transform-scale-y:1.1}.lg\:scale-y-125{--transform-scale-y:1.25}.lg\:scale-y-150{--transform-scale-y:1.5}.lg\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.lg\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.lg\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:hover\:scale-x-0:hover{--transform-scale-x:0}.lg\:hover\:scale-x-50:hover{--transform-scale-x:.5}.lg\:hover\:scale-x-75:hover{--transform-scale-x:.75}.lg\:hover\:scale-x-90:hover{--transform-scale-x:.9}.lg\:hover\:scale-x-95:hover{--transform-scale-x:.95}.lg\:hover\:scale-x-100:hover{--transform-scale-x:1}.lg\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.lg\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.lg\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.lg\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.lg\:hover\:scale-y-0:hover{--transform-scale-y:0}.lg\:hover\:scale-y-50:hover{--transform-scale-y:.5}.lg\:hover\:scale-y-75:hover{--transform-scale-y:.75}.lg\:hover\:scale-y-90:hover{--transform-scale-y:.9}.lg\:hover\:scale-y-95:hover{--transform-scale-y:.95}.lg\:hover\:scale-y-100:hover{--transform-scale-y:1}.lg\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.lg\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.lg\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.lg\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.lg\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.lg\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.lg\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.lg\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.lg\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.lg\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.lg\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.lg\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.lg\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.lg\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.lg\:focus\:scale-x-0:focus{--transform-scale-x:0}.lg\:focus\:scale-x-50:focus{--transform-scale-x:.5}.lg\:focus\:scale-x-75:focus{--transform-scale-x:.75}.lg\:focus\:scale-x-90:focus{--transform-scale-x:.9}.lg\:focus\:scale-x-95:focus{--transform-scale-x:.95}.lg\:focus\:scale-x-100:focus{--transform-scale-x:1}.lg\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.lg\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.lg\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.lg\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.lg\:focus\:scale-y-0:focus{--transform-scale-y:0}.lg\:focus\:scale-y-50:focus{--transform-scale-y:.5}.lg\:focus\:scale-y-75:focus{--transform-scale-y:.75}.lg\:focus\:scale-y-90:focus{--transform-scale-y:.9}.lg\:focus\:scale-y-95:focus{--transform-scale-y:.95}.lg\:focus\:scale-y-100:focus{--transform-scale-y:1}.lg\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.lg\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.lg\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.lg\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.lg\:rotate-0{--transform-rotate:0}.lg\:rotate-1{--transform-rotate:1deg}.lg\:rotate-2{--transform-rotate:2deg}.lg\:rotate-3{--transform-rotate:3deg}.lg\:rotate-6{--transform-rotate:6deg}.lg\:rotate-12{--transform-rotate:12deg}.lg\:rotate-45{--transform-rotate:45deg}.lg\:rotate-90{--transform-rotate:90deg}.lg\:rotate-180{--transform-rotate:180deg}.lg\:-rotate-180{--transform-rotate:-180deg}.lg\:-rotate-90{--transform-rotate:-90deg}.lg\:-rotate-45{--transform-rotate:-45deg}.lg\:-rotate-12{--transform-rotate:-12deg}.lg\:-rotate-6{--transform-rotate:-6deg}.lg\:-rotate-3{--transform-rotate:-3deg}.lg\:-rotate-2{--transform-rotate:-2deg}.lg\:-rotate-1{--transform-rotate:-1deg}.lg\:hover\:rotate-0:hover{--transform-rotate:0}.lg\:hover\:rotate-1:hover{--transform-rotate:1deg}.lg\:hover\:rotate-2:hover{--transform-rotate:2deg}.lg\:hover\:rotate-3:hover{--transform-rotate:3deg}.lg\:hover\:rotate-6:hover{--transform-rotate:6deg}.lg\:hover\:rotate-12:hover{--transform-rotate:12deg}.lg\:hover\:rotate-45:hover{--transform-rotate:45deg}.lg\:hover\:rotate-90:hover{--transform-rotate:90deg}.lg\:hover\:rotate-180:hover{--transform-rotate:180deg}.lg\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.lg\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.lg\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.lg\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.lg\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.lg\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.lg\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.lg\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.lg\:focus\:rotate-0:focus{--transform-rotate:0}.lg\:focus\:rotate-1:focus{--transform-rotate:1deg}.lg\:focus\:rotate-2:focus{--transform-rotate:2deg}.lg\:focus\:rotate-3:focus{--transform-rotate:3deg}.lg\:focus\:rotate-6:focus{--transform-rotate:6deg}.lg\:focus\:rotate-12:focus{--transform-rotate:12deg}.lg\:focus\:rotate-45:focus{--transform-rotate:45deg}.lg\:focus\:rotate-90:focus{--transform-rotate:90deg}.lg\:focus\:rotate-180:focus{--transform-rotate:180deg}.lg\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.lg\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.lg\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.lg\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.lg\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.lg\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.lg\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.lg\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.lg\:translate-x-0{--transform-translate-x:0}.lg\:translate-x-1{--transform-translate-x:0.25rem}.lg\:translate-x-2{--transform-translate-x:0.5rem}.lg\:translate-x-3{--transform-translate-x:0.75rem}.lg\:translate-x-4{--transform-translate-x:1rem}.lg\:translate-x-5{--transform-translate-x:1.25rem}.lg\:translate-x-6{--transform-translate-x:1.5rem}.lg\:translate-x-8{--transform-translate-x:2rem}.lg\:translate-x-10{--transform-translate-x:2.5rem}.lg\:translate-x-12{--transform-translate-x:3rem}.lg\:translate-x-16{--transform-translate-x:4rem}.lg\:translate-x-20{--transform-translate-x:5rem}.lg\:translate-x-24{--transform-translate-x:6rem}.lg\:translate-x-32{--transform-translate-x:8rem}.lg\:translate-x-40{--transform-translate-x:10rem}.lg\:translate-x-48{--transform-translate-x:12rem}.lg\:translate-x-56{--transform-translate-x:14rem}.lg\:translate-x-64{--transform-translate-x:16rem}.lg\:translate-x-px{--transform-translate-x:1px}.lg\:-translate-x-1{--transform-translate-x:-0.25rem}.lg\:-translate-x-2{--transform-translate-x:-0.5rem}.lg\:-translate-x-3{--transform-translate-x:-0.75rem}.lg\:-translate-x-4{--transform-translate-x:-1rem}.lg\:-translate-x-5{--transform-translate-x:-1.25rem}.lg\:-translate-x-6{--transform-translate-x:-1.5rem}.lg\:-translate-x-8{--transform-translate-x:-2rem}.lg\:-translate-x-10{--transform-translate-x:-2.5rem}.lg\:-translate-x-12{--transform-translate-x:-3rem}.lg\:-translate-x-16{--transform-translate-x:-4rem}.lg\:-translate-x-20{--transform-translate-x:-5rem}.lg\:-translate-x-24{--transform-translate-x:-6rem}.lg\:-translate-x-32{--transform-translate-x:-8rem}.lg\:-translate-x-40{--transform-translate-x:-10rem}.lg\:-translate-x-48{--transform-translate-x:-12rem}.lg\:-translate-x-56{--transform-translate-x:-14rem}.lg\:-translate-x-64{--transform-translate-x:-16rem}.lg\:-translate-x-px{--transform-translate-x:-1px}.lg\:-translate-x-full{--transform-translate-x:-100%}.lg\:-translate-x-1\/2{--transform-translate-x:-50%}.lg\:translate-x-1\/2{--transform-translate-x:50%}.lg\:translate-x-full{--transform-translate-x:100%}.lg\:translate-y-0{--transform-translate-y:0}.lg\:translate-y-1{--transform-translate-y:0.25rem}.lg\:translate-y-2{--transform-translate-y:0.5rem}.lg\:translate-y-3{--transform-translate-y:0.75rem}.lg\:translate-y-4{--transform-translate-y:1rem}.lg\:translate-y-5{--transform-translate-y:1.25rem}.lg\:translate-y-6{--transform-translate-y:1.5rem}.lg\:translate-y-8{--transform-translate-y:2rem}.lg\:translate-y-10{--transform-translate-y:2.5rem}.lg\:translate-y-12{--transform-translate-y:3rem}.lg\:translate-y-16{--transform-translate-y:4rem}.lg\:translate-y-20{--transform-translate-y:5rem}.lg\:translate-y-24{--transform-translate-y:6rem}.lg\:translate-y-32{--transform-translate-y:8rem}.lg\:translate-y-40{--transform-translate-y:10rem}.lg\:translate-y-48{--transform-translate-y:12rem}.lg\:translate-y-56{--transform-translate-y:14rem}.lg\:translate-y-64{--transform-translate-y:16rem}.lg\:translate-y-px{--transform-translate-y:1px}.lg\:-translate-y-1{--transform-translate-y:-0.25rem}.lg\:-translate-y-2{--transform-translate-y:-0.5rem}.lg\:-translate-y-3{--transform-translate-y:-0.75rem}.lg\:-translate-y-4{--transform-translate-y:-1rem}.lg\:-translate-y-5{--transform-translate-y:-1.25rem}.lg\:-translate-y-6{--transform-translate-y:-1.5rem}.lg\:-translate-y-8{--transform-translate-y:-2rem}.lg\:-translate-y-10{--transform-translate-y:-2.5rem}.lg\:-translate-y-12{--transform-translate-y:-3rem}.lg\:-translate-y-16{--transform-translate-y:-4rem}.lg\:-translate-y-20{--transform-translate-y:-5rem}.lg\:-translate-y-24{--transform-translate-y:-6rem}.lg\:-translate-y-32{--transform-translate-y:-8rem}.lg\:-translate-y-40{--transform-translate-y:-10rem}.lg\:-translate-y-48{--transform-translate-y:-12rem}.lg\:-translate-y-56{--transform-translate-y:-14rem}.lg\:-translate-y-64{--transform-translate-y:-16rem}.lg\:-translate-y-px{--transform-translate-y:-1px}.lg\:-translate-y-full{--transform-translate-y:-100%}.lg\:-translate-y-1\/2{--transform-translate-y:-50%}.lg\:translate-y-1\/2{--transform-translate-y:50%}.lg\:translate-y-full{--transform-translate-y:100%}.lg\:hover\:translate-x-0:hover{--transform-translate-x:0}.lg\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.lg\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.lg\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.lg\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.lg\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.lg\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.lg\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.lg\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.lg\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.lg\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.lg\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.lg\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.lg\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.lg\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.lg\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.lg\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.lg\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.lg\:hover\:translate-x-px:hover{--transform-translate-x:1px}.lg\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.lg\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.lg\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.lg\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.lg\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.lg\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.lg\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.lg\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.lg\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.lg\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.lg\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.lg\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.lg\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.lg\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.lg\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.lg\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.lg\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.lg\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.lg\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.lg\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.lg\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.lg\:hover\:translate-x-full:hover{--transform-translate-x:100%}.lg\:hover\:translate-y-0:hover{--transform-translate-y:0}.lg\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.lg\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.lg\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.lg\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.lg\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.lg\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.lg\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.lg\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.lg\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.lg\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.lg\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.lg\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.lg\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.lg\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.lg\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.lg\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.lg\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.lg\:hover\:translate-y-px:hover{--transform-translate-y:1px}.lg\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.lg\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.lg\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.lg\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.lg\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.lg\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.lg\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.lg\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.lg\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.lg\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.lg\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.lg\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.lg\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.lg\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.lg\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.lg\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.lg\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.lg\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.lg\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.lg\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.lg\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.lg\:hover\:translate-y-full:hover{--transform-translate-y:100%}.lg\:focus\:translate-x-0:focus{--transform-translate-x:0}.lg\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.lg\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.lg\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.lg\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.lg\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.lg\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.lg\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.lg\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.lg\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.lg\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.lg\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.lg\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.lg\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.lg\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.lg\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.lg\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.lg\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.lg\:focus\:translate-x-px:focus{--transform-translate-x:1px}.lg\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.lg\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.lg\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.lg\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.lg\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.lg\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.lg\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.lg\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.lg\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.lg\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.lg\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.lg\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.lg\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.lg\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.lg\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.lg\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.lg\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.lg\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.lg\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.lg\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.lg\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.lg\:focus\:translate-x-full:focus{--transform-translate-x:100%}.lg\:focus\:translate-y-0:focus{--transform-translate-y:0}.lg\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.lg\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.lg\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.lg\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.lg\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.lg\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.lg\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.lg\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.lg\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.lg\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.lg\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.lg\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.lg\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.lg\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.lg\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.lg\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.lg\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.lg\:focus\:translate-y-px:focus{--transform-translate-y:1px}.lg\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.lg\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.lg\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.lg\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.lg\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.lg\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.lg\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.lg\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.lg\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.lg\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.lg\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.lg\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.lg\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.lg\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.lg\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.lg\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.lg\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.lg\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.lg\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.lg\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.lg\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.lg\:focus\:translate-y-full:focus{--transform-translate-y:100%}.lg\:skew-x-0{--transform-skew-x:0}.lg\:skew-x-1{--transform-skew-x:1deg}.lg\:skew-x-2{--transform-skew-x:2deg}.lg\:skew-x-3{--transform-skew-x:3deg}.lg\:skew-x-6{--transform-skew-x:6deg}.lg\:skew-x-12{--transform-skew-x:12deg}.lg\:-skew-x-12{--transform-skew-x:-12deg}.lg\:-skew-x-6{--transform-skew-x:-6deg}.lg\:-skew-x-3{--transform-skew-x:-3deg}.lg\:-skew-x-2{--transform-skew-x:-2deg}.lg\:-skew-x-1{--transform-skew-x:-1deg}.lg\:skew-y-0{--transform-skew-y:0}.lg\:skew-y-1{--transform-skew-y:1deg}.lg\:skew-y-2{--transform-skew-y:2deg}.lg\:skew-y-3{--transform-skew-y:3deg}.lg\:skew-y-6{--transform-skew-y:6deg}.lg\:skew-y-12{--transform-skew-y:12deg}.lg\:-skew-y-12{--transform-skew-y:-12deg}.lg\:-skew-y-6{--transform-skew-y:-6deg}.lg\:-skew-y-3{--transform-skew-y:-3deg}.lg\:-skew-y-2{--transform-skew-y:-2deg}.lg\:-skew-y-1{--transform-skew-y:-1deg}.lg\:hover\:skew-x-0:hover{--transform-skew-x:0}.lg\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.lg\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.lg\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.lg\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.lg\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.lg\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.lg\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.lg\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.lg\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.lg\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.lg\:hover\:skew-y-0:hover{--transform-skew-y:0}.lg\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.lg\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.lg\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.lg\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.lg\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.lg\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.lg\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.lg\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.lg\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.lg\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.lg\:focus\:skew-x-0:focus{--transform-skew-x:0}.lg\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.lg\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.lg\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.lg\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.lg\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.lg\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.lg\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.lg\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.lg\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.lg\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.lg\:focus\:skew-y-0:focus{--transform-skew-y:0}.lg\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.lg\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.lg\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.lg\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.lg\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.lg\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.lg\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.lg\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.lg\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.lg\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.lg\:transition-none{transition-property:none}.lg\:transition-all{transition-property:all}.lg\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.lg\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.lg\:transition-opacity{transition-property:opacity}.lg\:transition-shadow{transition-property:box-shadow}.lg\:transition-transform{transition-property:transform}.lg\:ease-linear{transition-timing-function:linear}.lg\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.lg\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.lg\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.lg\:duration-75{transition-duration:75ms}.lg\:duration-100{transition-duration:.1s}.lg\:duration-150{transition-duration:.15s}.lg\:duration-200{transition-duration:.2s}.lg\:duration-300{transition-duration:.3s}.lg\:duration-500{transition-duration:.5s}.lg\:duration-700{transition-duration:.7s}.lg\:duration-1000{transition-duration:1s}.lg\:delay-75{transition-delay:75ms}.lg\:delay-100{transition-delay:.1s}.lg\:delay-150{transition-delay:.15s}.lg\:delay-200{transition-delay:.2s}.lg\:delay-300{transition-delay:.3s}.lg\:delay-500{transition-delay:.5s}.lg\:delay-700{transition-delay:.7s}.lg\:delay-1000{transition-delay:1s}.lg\:animate-none{animation:none}.lg\:animate-spin{animation:spin 1s linear infinite}.lg\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.lg\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.lg\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1280px){.xl\:container{width:100%}@media (min-width:360px){.xl\:container{max-width:360px}}@media (min-width:640px){.xl\:container{max-width:640px}}@media (min-width:768px){.xl\:container{max-width:768px}}@media (min-width:1024px){.xl\:container{max-width:1024px}}@media (min-width:1280px){.xl\:container{max-width:1280px}}@media (min-width:1480px){.xl\:container{max-width:1480px}}.xl\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xl\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xl\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xl\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xl\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xl\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xl\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xl\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xl\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xl\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xl\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xl\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xl\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xl\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xl\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xl\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xl\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xl\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xl\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xl\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xl\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xl\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xl\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xl\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xl\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xl\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xl\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xl\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xl\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xl\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xl\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xl\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xl\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xl\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xl\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xl\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xl\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xl\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xl\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xl\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xl\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xl\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xl\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xl\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xl\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xl\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xl\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xl\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xl\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xl\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xl\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xl\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xl\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xl\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xl\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xl\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xl\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xl\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xl\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xl\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xl\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xl\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xl\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xl\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xl\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xl\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xl\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xl\:divide-current>:not(template)~:not(template){border-color:currentColor}.xl\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xl\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xl\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xl\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xl\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xl\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xl\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xl\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xl\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xl\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xl\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xl\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xl\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xl\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xl\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xl\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xl\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xl\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xl\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xl\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xl\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xl\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xl\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xl\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xl\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xl\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xl\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xl\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xl\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xl\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xl\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xl\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xl\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xl\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xl\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xl\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xl\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xl\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xl\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xl\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xl\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xl\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xl\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xl\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xl\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xl\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xl\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xl\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xl\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xl\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xl\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xl\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xl\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xl\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xl\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xl\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xl\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xl\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xl\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xl\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xl\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xl\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xl\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xl\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xl\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xl\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xl\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xl\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xl\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xl\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xl\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xl\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xl\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xl\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xl\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xl\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xl\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xl\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xl\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xl\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xl\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xl\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xl\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xl\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xl\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xl\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xl\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xl\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xl\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xl\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xl\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xl\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xl\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xl\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xl\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xl\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xl\:divide-solid>:not(template)~:not(template){border-style:solid}.xl\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xl\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xl\:divide-double>:not(template)~:not(template){border-style:double}.xl\:divide-none>:not(template)~:not(template){border-style:none}.xl\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xl\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xl\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xl\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xl\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xl\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xl\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xl\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xl\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xl\:appearance-none{-webkit-appearance:none;appearance:none}.xl\:bg-fixed{background-attachment:fixed}.xl\:bg-local{background-attachment:local}.xl\:bg-scroll{background-attachment:scroll}.xl\:bg-clip-border{background-clip:border-box}.xl\:bg-clip-padding{background-clip:padding-box}.xl\:bg-clip-content{background-clip:content-box}.xl\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xl\:bg-transparent{background-color:transparent}.xl\:bg-current{background-color:currentColor}.xl\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:hover\:bg-transparent:hover{background-color:transparent}.xl\:hover\:bg-current:hover{background-color:currentColor}.xl\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:focus\:bg-transparent:focus{background-color:transparent}.xl\:focus\:bg-current:focus{background-color:currentColor}.xl\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xl\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xl\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xl\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xl\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xl\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xl\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xl\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xl\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xl\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xl\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xl\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xl\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xl\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xl\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xl\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xl\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xl\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xl\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xl\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xl\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xl\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xl\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xl\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xl\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xl\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xl\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xl\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xl\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xl\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xl\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xl\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xl\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xl\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xl\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xl\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xl\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xl\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xl\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xl\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xl\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xl\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xl\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xl\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xl\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xl\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xl\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xl\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xl\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xl\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xl\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xl\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xl\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xl\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xl\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xl\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xl\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xl\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xl\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xl\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xl\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xl\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xl\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xl\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xl\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xl\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xl\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xl\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xl\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xl\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xl\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xl\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xl\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xl\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xl\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xl\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xl\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xl\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xl\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xl\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xl\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xl\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xl\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xl\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xl\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xl\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xl\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xl\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xl\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xl\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xl\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xl\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xl\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xl\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xl\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xl\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xl\:bg-none{background-image:none}.xl\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xl\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xl\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xl\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xl\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xl\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:to-transparent{--gradient-to-color:transparent}.xl\:to-current{--gradient-to-color:currentColor}.xl\:to-black{--gradient-to-color:#000}.xl\:to-white{--gradient-to-color:#fff}.xl\:to-gray-100{--gradient-to-color:#f7fafc}.xl\:to-gray-200{--gradient-to-color:#edf2f7}.xl\:to-gray-300{--gradient-to-color:#e2e8f0}.xl\:to-gray-400{--gradient-to-color:#cbd5e0}.xl\:to-gray-500{--gradient-to-color:#a0aec0}.xl\:to-gray-600{--gradient-to-color:#718096}.xl\:to-gray-700{--gradient-to-color:#4a5568}.xl\:to-gray-800{--gradient-to-color:#2d3748}.xl\:to-gray-900{--gradient-to-color:#1a202c}.xl\:to-red-100{--gradient-to-color:#fff5f5}.xl\:to-red-200{--gradient-to-color:#fed7d7}.xl\:to-red-300{--gradient-to-color:#feb2b2}.xl\:to-red-400{--gradient-to-color:#fc8181}.xl\:to-red-500{--gradient-to-color:#f56565}.xl\:to-red-600{--gradient-to-color:#e53e3e}.xl\:to-red-700{--gradient-to-color:#c53030}.xl\:to-red-800{--gradient-to-color:#9b2c2c}.xl\:to-red-900{--gradient-to-color:#742a2a}.xl\:to-orange-100{--gradient-to-color:#fffaf0}.xl\:to-orange-200{--gradient-to-color:#feebc8}.xl\:to-orange-300{--gradient-to-color:#fbd38d}.xl\:to-orange-400{--gradient-to-color:#f6ad55}.xl\:to-orange-500{--gradient-to-color:#ed8936}.xl\:to-orange-600{--gradient-to-color:#dd6b20}.xl\:to-orange-700{--gradient-to-color:#c05621}.xl\:to-orange-800{--gradient-to-color:#9c4221}.xl\:to-orange-900{--gradient-to-color:#7b341e}.xl\:to-yellow-100{--gradient-to-color:ivory}.xl\:to-yellow-200{--gradient-to-color:#fefcbf}.xl\:to-yellow-300{--gradient-to-color:#faf089}.xl\:to-yellow-400{--gradient-to-color:#f6e05e}.xl\:to-yellow-500{--gradient-to-color:#ecc94b}.xl\:to-yellow-600{--gradient-to-color:#d69e2e}.xl\:to-yellow-700{--gradient-to-color:#b7791f}.xl\:to-yellow-800{--gradient-to-color:#975a16}.xl\:to-yellow-900{--gradient-to-color:#744210}.xl\:to-green-100{--gradient-to-color:#f0fff4}.xl\:to-green-200{--gradient-to-color:#c6f6d5}.xl\:to-green-300{--gradient-to-color:#9ae6b4}.xl\:to-green-400{--gradient-to-color:#68d391}.xl\:to-green-500{--gradient-to-color:#48bb78}.xl\:to-green-600{--gradient-to-color:#38a169}.xl\:to-green-700{--gradient-to-color:#2f855a}.xl\:to-green-800{--gradient-to-color:#276749}.xl\:to-green-900{--gradient-to-color:#22543d}.xl\:to-teal-100{--gradient-to-color:#e6fffa}.xl\:to-teal-200{--gradient-to-color:#b2f5ea}.xl\:to-teal-300{--gradient-to-color:#81e6d9}.xl\:to-teal-400{--gradient-to-color:#4fd1c5}.xl\:to-teal-500{--gradient-to-color:#38b2ac}.xl\:to-teal-600{--gradient-to-color:#319795}.xl\:to-teal-700{--gradient-to-color:#2c7a7b}.xl\:to-teal-800{--gradient-to-color:#285e61}.xl\:to-teal-900{--gradient-to-color:#234e52}.xl\:to-blue-100{--gradient-to-color:#ebf8ff}.xl\:to-blue-200{--gradient-to-color:#bee3f8}.xl\:to-blue-300{--gradient-to-color:#90cdf4}.xl\:to-blue-400{--gradient-to-color:#63b3ed}.xl\:to-blue-500{--gradient-to-color:#4299e1}.xl\:to-blue-600{--gradient-to-color:#3182ce}.xl\:to-blue-700{--gradient-to-color:#2b6cb0}.xl\:to-blue-800{--gradient-to-color:#2c5282}.xl\:to-blue-900{--gradient-to-color:#2a4365}.xl\:to-indigo-100{--gradient-to-color:#ebf4ff}.xl\:to-indigo-200{--gradient-to-color:#c3dafe}.xl\:to-indigo-300{--gradient-to-color:#a3bffa}.xl\:to-indigo-400{--gradient-to-color:#7f9cf5}.xl\:to-indigo-500{--gradient-to-color:#667eea}.xl\:to-indigo-600{--gradient-to-color:#5a67d8}.xl\:to-indigo-700{--gradient-to-color:#4c51bf}.xl\:to-indigo-800{--gradient-to-color:#434190}.xl\:to-indigo-900{--gradient-to-color:#3c366b}.xl\:to-purple-100{--gradient-to-color:#faf5ff}.xl\:to-purple-200{--gradient-to-color:#e9d8fd}.xl\:to-purple-300{--gradient-to-color:#d6bcfa}.xl\:to-purple-400{--gradient-to-color:#b794f4}.xl\:to-purple-500{--gradient-to-color:#9f7aea}.xl\:to-purple-600{--gradient-to-color:#805ad5}.xl\:to-purple-700{--gradient-to-color:#6b46c1}.xl\:to-purple-800{--gradient-to-color:#553c9a}.xl\:to-purple-900{--gradient-to-color:#44337a}.xl\:to-pink-100{--gradient-to-color:#fff5f7}.xl\:to-pink-200{--gradient-to-color:#fed7e2}.xl\:to-pink-300{--gradient-to-color:#fbb6ce}.xl\:to-pink-400{--gradient-to-color:#f687b3}.xl\:to-pink-500{--gradient-to-color:#ed64a6}.xl\:to-pink-600{--gradient-to-color:#d53f8c}.xl\:to-pink-700{--gradient-to-color:#b83280}.xl\:to-pink-800{--gradient-to-color:#97266d}.xl\:to-pink-900{--gradient-to-color:#702459}.xl\:to-primary{--gradient-to-color:#00d1ff}.xl\:to-secondary{--gradient-to-color:#e077ff}.xl\:to-greenish-blue{--gradient-to-color:#adffed}.xl\:to-blue-gray{--gradient-to-color:#cfe1e6}.xl\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xl\:hover\:to-current:hover{--gradient-to-color:currentColor}.xl\:hover\:to-black:hover{--gradient-to-color:#000}.xl\:hover\:to-white:hover{--gradient-to-color:#fff}.xl\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xl\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xl\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xl\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xl\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xl\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xl\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xl\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xl\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xl\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xl\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xl\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xl\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xl\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xl\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xl\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xl\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xl\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xl\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xl\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xl\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xl\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xl\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xl\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xl\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xl\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xl\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xl\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xl\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xl\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xl\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xl\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xl\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xl\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xl\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xl\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xl\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xl\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xl\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xl\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xl\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xl\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xl\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xl\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xl\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xl\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xl\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xl\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xl\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xl\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xl\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xl\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xl\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xl\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xl\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xl\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xl\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xl\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xl\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xl\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xl\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xl\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xl\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xl\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xl\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xl\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xl\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xl\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xl\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xl\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xl\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xl\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xl\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xl\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xl\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xl\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xl\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xl\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xl\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xl\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xl\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xl\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xl\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xl\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xl\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xl\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xl\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xl\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xl\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xl\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xl\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xl\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xl\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xl\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xl\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xl\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xl\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xl\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xl\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xl\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xl\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xl\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xl\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xl\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xl\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xl\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xl\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xl\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xl\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xl\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xl\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xl\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xl\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xl\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xl\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xl\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xl\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xl\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xl\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xl\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xl\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xl\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xl\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xl\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xl\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xl\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xl\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xl\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xl\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xl\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xl\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xl\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xl\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xl\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xl\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xl\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xl\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xl\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xl\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xl\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xl\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xl\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xl\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xl\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xl\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xl\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xl\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xl\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xl\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xl\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xl\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xl\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xl\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xl\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xl\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xl\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xl\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xl\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xl\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xl\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xl\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xl\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xl\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xl\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xl\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xl\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xl\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xl\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xl\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xl\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xl\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xl\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xl\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xl\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xl\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xl\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xl\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xl\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xl\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xl\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xl\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xl\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xl\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xl\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xl\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xl\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xl\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xl\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xl\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xl\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xl\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xl\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xl\:focus\:to-current:focus{--gradient-to-color:currentColor}.xl\:focus\:to-black:focus{--gradient-to-color:#000}.xl\:focus\:to-white:focus{--gradient-to-color:#fff}.xl\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xl\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xl\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xl\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xl\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xl\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xl\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xl\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xl\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xl\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xl\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xl\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xl\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xl\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xl\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xl\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xl\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xl\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xl\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xl\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xl\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xl\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xl\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xl\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xl\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xl\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xl\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xl\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xl\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xl\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xl\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xl\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xl\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xl\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xl\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xl\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xl\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xl\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xl\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xl\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xl\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xl\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xl\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xl\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xl\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xl\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xl\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xl\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xl\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xl\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xl\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xl\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xl\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xl\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xl\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xl\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xl\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xl\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xl\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xl\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xl\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xl\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xl\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xl\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xl\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xl\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xl\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xl\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xl\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xl\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xl\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xl\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xl\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xl\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xl\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xl\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xl\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xl\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xl\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xl\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xl\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xl\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xl\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xl\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xl\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xl\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xl\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xl\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xl\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xl\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xl\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xl\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xl\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xl\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xl\:bg-opacity-0{--bg-opacity:0}.xl\:bg-opacity-25{--bg-opacity:0.25}.xl\:bg-opacity-50{--bg-opacity:0.5}.xl\:bg-opacity-75{--bg-opacity:0.75}.xl\:bg-opacity-100{--bg-opacity:1}.xl\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xl\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xl\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xl\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xl\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xl\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xl\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xl\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xl\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xl\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xl\:bg-bottom{background-position:bottom}.xl\:bg-center{background-position:50%}.xl\:bg-left{background-position:0}.xl\:bg-left-bottom{background-position:0 100%}.xl\:bg-left-top{background-position:0 0}.xl\:bg-right{background-position:100%}.xl\:bg-right-bottom{background-position:100% 100%}.xl\:bg-right-top{background-position:100% 0}.xl\:bg-top{background-position:top}.xl\:bg-repeat{background-repeat:repeat}.xl\:bg-no-repeat{background-repeat:no-repeat}.xl\:bg-repeat-x{background-repeat:repeat-x}.xl\:bg-repeat-y{background-repeat:repeat-y}.xl\:bg-repeat-round{background-repeat:round}.xl\:bg-repeat-space{background-repeat:space}.xl\:bg-auto{background-size:auto}.xl\:bg-cover{background-size:cover}.xl\:bg-contain{background-size:contain}.xl\:border-collapse{border-collapse:collapse}.xl\:border-separate{border-collapse:separate}.xl\:border-transparent{border-color:transparent}.xl\:border-current{border-color:currentColor}.xl\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:hover\:border-transparent:hover{border-color:transparent}.xl\:hover\:border-current:hover{border-color:currentColor}.xl\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:focus\:border-transparent:focus{border-color:transparent}.xl\:focus\:border-current:focus{border-color:currentColor}.xl\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xl\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xl\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xl\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xl\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xl\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xl\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xl\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xl\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xl\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xl\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xl\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xl\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xl\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xl\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xl\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xl\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xl\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xl\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xl\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xl\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xl\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xl\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xl\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xl\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xl\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xl\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xl\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xl\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xl\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xl\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xl\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xl\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xl\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xl\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xl\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xl\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xl\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xl\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xl\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xl\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xl\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xl\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xl\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xl\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xl\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xl\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xl\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xl\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xl\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xl\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xl\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xl\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xl\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xl\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xl\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xl\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xl\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xl\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xl\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xl\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xl\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xl\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xl\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xl\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xl\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xl\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xl\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xl\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xl\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xl\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xl\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xl\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xl\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xl\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xl\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xl\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xl\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xl\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xl\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xl\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xl\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xl\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xl\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xl\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xl\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xl\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xl\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xl\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xl\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xl\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xl\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xl\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xl\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xl\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xl\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xl\:border-opacity-0{--border-opacity:0}.xl\:border-opacity-25{--border-opacity:0.25}.xl\:border-opacity-50{--border-opacity:0.5}.xl\:border-opacity-75{--border-opacity:0.75}.xl\:border-opacity-100{--border-opacity:1}.xl\:hover\:border-opacity-0:hover{--border-opacity:0}.xl\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xl\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xl\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xl\:hover\:border-opacity-100:hover{--border-opacity:1}.xl\:focus\:border-opacity-0:focus{--border-opacity:0}.xl\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xl\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xl\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xl\:focus\:border-opacity-100:focus{--border-opacity:1}.xl\:rounded-none{border-radius:0}.xl\:rounded-sm{border-radius:.125rem}.xl\:rounded{border-radius:.25rem}.xl\:rounded-md{border-radius:.375rem}.xl\:rounded-lg{border-radius:.5rem}.xl\:rounded-xl{border-radius:.75rem}.xl\:rounded-2xl{border-radius:1rem}.xl\:rounded-3xl{border-radius:1.5rem}.xl\:rounded-full{border-radius:9999px}.xl\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xl\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xl\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xl\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xl\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xl\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xl\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xl\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xl\:rounded-t{border-top-left-radius:.25rem}.xl\:rounded-r,.xl\:rounded-t{border-top-right-radius:.25rem}.xl\:rounded-b,.xl\:rounded-r{border-bottom-right-radius:.25rem}.xl\:rounded-b,.xl\:rounded-l{border-bottom-left-radius:.25rem}.xl\:rounded-l{border-top-left-radius:.25rem}.xl\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xl\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xl\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xl\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xl\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xl\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xl\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xl\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xl\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xl\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xl\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xl\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xl\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xl\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xl\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xl\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xl\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xl\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xl\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xl\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xl\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xl\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xl\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xl\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xl\:rounded-tl-none{border-top-left-radius:0}.xl\:rounded-tr-none{border-top-right-radius:0}.xl\:rounded-br-none{border-bottom-right-radius:0}.xl\:rounded-bl-none{border-bottom-left-radius:0}.xl\:rounded-tl-sm{border-top-left-radius:.125rem}.xl\:rounded-tr-sm{border-top-right-radius:.125rem}.xl\:rounded-br-sm{border-bottom-right-radius:.125rem}.xl\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xl\:rounded-tl{border-top-left-radius:.25rem}.xl\:rounded-tr{border-top-right-radius:.25rem}.xl\:rounded-br{border-bottom-right-radius:.25rem}.xl\:rounded-bl{border-bottom-left-radius:.25rem}.xl\:rounded-tl-md{border-top-left-radius:.375rem}.xl\:rounded-tr-md{border-top-right-radius:.375rem}.xl\:rounded-br-md{border-bottom-right-radius:.375rem}.xl\:rounded-bl-md{border-bottom-left-radius:.375rem}.xl\:rounded-tl-lg{border-top-left-radius:.5rem}.xl\:rounded-tr-lg{border-top-right-radius:.5rem}.xl\:rounded-br-lg{border-bottom-right-radius:.5rem}.xl\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xl\:rounded-tl-xl{border-top-left-radius:.75rem}.xl\:rounded-tr-xl{border-top-right-radius:.75rem}.xl\:rounded-br-xl{border-bottom-right-radius:.75rem}.xl\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xl\:rounded-tl-2xl{border-top-left-radius:1rem}.xl\:rounded-tr-2xl{border-top-right-radius:1rem}.xl\:rounded-br-2xl{border-bottom-right-radius:1rem}.xl\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xl\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xl\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xl\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xl\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xl\:rounded-tl-full{border-top-left-radius:9999px}.xl\:rounded-tr-full{border-top-right-radius:9999px}.xl\:rounded-br-full{border-bottom-right-radius:9999px}.xl\:rounded-bl-full{border-bottom-left-radius:9999px}.xl\:border-solid{border-style:solid}.xl\:border-dashed{border-style:dashed}.xl\:border-dotted{border-style:dotted}.xl\:border-double{border-style:double}.xl\:border-none{border-style:none}.xl\:border-0{border-width:0}.xl\:border-2{border-width:2px}.xl\:border-4{border-width:4px}.xl\:border-8{border-width:8px}.xl\:border{border-width:1px}.xl\:border-t-0{border-top-width:0}.xl\:border-r-0{border-right-width:0}.xl\:border-b-0{border-bottom-width:0}.xl\:border-l-0{border-left-width:0}.xl\:border-t-2{border-top-width:2px}.xl\:border-r-2{border-right-width:2px}.xl\:border-b-2{border-bottom-width:2px}.xl\:border-l-2{border-left-width:2px}.xl\:border-t-4{border-top-width:4px}.xl\:border-r-4{border-right-width:4px}.xl\:border-b-4{border-bottom-width:4px}.xl\:border-l-4{border-left-width:4px}.xl\:border-t-8{border-top-width:8px}.xl\:border-r-8{border-right-width:8px}.xl\:border-b-8{border-bottom-width:8px}.xl\:border-l-8{border-left-width:8px}.xl\:border-t{border-top-width:1px}.xl\:border-r{border-right-width:1px}.xl\:border-b{border-bottom-width:1px}.xl\:border-l{border-left-width:1px}.xl\:box-border{box-sizing:border-box}.xl\:box-content{box-sizing:content-box}.xl\:cursor-auto{cursor:auto}.xl\:cursor-default{cursor:default}.xl\:cursor-pointer{cursor:pointer}.xl\:cursor-wait{cursor:wait}.xl\:cursor-text{cursor:text}.xl\:cursor-move{cursor:move}.xl\:cursor-not-allowed{cursor:not-allowed}.xl\:block{display:block}.xl\:inline-block{display:inline-block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:inline-flex{display:inline-flex}.xl\:table{display:table}.xl\:table-caption{display:table-caption}.xl\:table-cell{display:table-cell}.xl\:table-column{display:table-column}.xl\:table-column-group{display:table-column-group}.xl\:table-footer-group{display:table-footer-group}.xl\:table-header-group{display:table-header-group}.xl\:table-row-group{display:table-row-group}.xl\:table-row{display:table-row}.xl\:flow-root{display:flow-root}.xl\:grid{display:grid}.xl\:inline-grid{display:inline-grid}.xl\:contents{display:contents}.xl\:hidden{display:none}.xl\:flex-row{flex-direction:row}.xl\:flex-row-reverse{flex-direction:row-reverse}.xl\:flex-col{flex-direction:column}.xl\:flex-col-reverse{flex-direction:column-reverse}.xl\:flex-wrap{flex-wrap:wrap}.xl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xl\:flex-no-wrap{flex-wrap:nowrap}.xl\:place-items-auto{place-items:auto}.xl\:place-items-start{place-items:start}.xl\:place-items-end{place-items:end}.xl\:place-items-center{place-items:center}.xl\:place-items-stretch{place-items:stretch}.xl\:place-content-center{place-content:center}.xl\:place-content-start{place-content:start}.xl\:place-content-end{place-content:end}.xl\:place-content-between{place-content:space-between}.xl\:place-content-around{place-content:space-around}.xl\:place-content-evenly{place-content:space-evenly}.xl\:place-content-stretch{place-content:stretch}.xl\:place-self-auto{place-self:auto}.xl\:place-self-start{place-self:start}.xl\:place-self-end{place-self:end}.xl\:place-self-center{place-self:center}.xl\:place-self-stretch{place-self:stretch}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:items-baseline{align-items:baseline}.xl\:items-stretch{align-items:stretch}.xl\:content-center{align-content:center}.xl\:content-start{align-content:flex-start}.xl\:content-end{align-content:flex-end}.xl\:content-between{align-content:space-between}.xl\:content-around{align-content:space-around}.xl\:content-evenly{align-content:space-evenly}.xl\:self-auto{align-self:auto}.xl\:self-start{align-self:flex-start}.xl\:self-end{align-self:flex-end}.xl\:self-center{align-self:center}.xl\:self-stretch{align-self:stretch}.xl\:justify-items-auto{justify-items:auto}.xl\:justify-items-start{justify-items:start}.xl\:justify-items-end{justify-items:end}.xl\:justify-items-center{justify-items:center}.xl\:justify-items-stretch{justify-items:stretch}.xl\:justify-start{justify-content:flex-start}.xl\:justify-end{justify-content:flex-end}.xl\:justify-center{justify-content:center}.xl\:justify-between{justify-content:space-between}.xl\:justify-around{justify-content:space-around}.xl\:justify-evenly{justify-content:space-evenly}.xl\:justify-self-auto{justify-self:auto}.xl\:justify-self-start{justify-self:start}.xl\:justify-self-end{justify-self:end}.xl\:justify-self-center{justify-self:center}.xl\:justify-self-stretch{justify-self:stretch}.xl\:flex-1{flex:1 1 0%}.xl\:flex-auto{flex:1 1 auto}.xl\:flex-initial{flex:0 1 auto}.xl\:flex-none{flex:none}.xl\:flex-grow-0{flex-grow:0}.xl\:flex-grow{flex-grow:1}.xl\:flex-shrink-0{flex-shrink:0}.xl\:flex-shrink{flex-shrink:1}.xl\:order-1{order:1}.xl\:order-2{order:2}.xl\:order-3{order:3}.xl\:order-4{order:4}.xl\:order-5{order:5}.xl\:order-6{order:6}.xl\:order-7{order:7}.xl\:order-8{order:8}.xl\:order-9{order:9}.xl\:order-10{order:10}.xl\:order-11{order:11}.xl\:order-12{order:12}.xl\:order-first{order:-9999}.xl\:order-last{order:9999}.xl\:order-none{order:0}.xl\:float-right{float:right}.xl\:float-left{float:left}.xl\:float-none{float:none}.xl\:clearfix:after{content:"";display:table;clear:both}.xl\:clear-left{clear:left}.xl\:clear-right{clear:right}.xl\:clear-both{clear:both}.xl\:clear-none{clear:none}.xl\:font-sans{font-family: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}.xl\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xl\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xl\:font-hairline{font-weight:100}.xl\:font-thin{font-weight:200}.xl\:font-light{font-weight:300}.xl\:font-normal{font-weight:400}.xl\:font-medium{font-weight:500}.xl\:font-semibold{font-weight:600}.xl\:font-bold{font-weight:700}.xl\:font-extrabold{font-weight:800}.xl\:font-black{font-weight:900}.xl\:hover\:font-hairline:hover{font-weight:100}.xl\:hover\:font-thin:hover{font-weight:200}.xl\:hover\:font-light:hover{font-weight:300}.xl\:hover\:font-normal:hover{font-weight:400}.xl\:hover\:font-medium:hover{font-weight:500}.xl\:hover\:font-semibold:hover{font-weight:600}.xl\:hover\:font-bold:hover{font-weight:700}.xl\:hover\:font-extrabold:hover{font-weight:800}.xl\:hover\:font-black:hover{font-weight:900}.xl\:focus\:font-hairline:focus{font-weight:100}.xl\:focus\:font-thin:focus{font-weight:200}.xl\:focus\:font-light:focus{font-weight:300}.xl\:focus\:font-normal:focus{font-weight:400}.xl\:focus\:font-medium:focus{font-weight:500}.xl\:focus\:font-semibold:focus{font-weight:600}.xl\:focus\:font-bold:focus{font-weight:700}.xl\:focus\:font-extrabold:focus{font-weight:800}.xl\:focus\:font-black:focus{font-weight:900}.xl\:h-0{height:0}.xl\:h-1{height:.25rem}.xl\:h-2{height:.5rem}.xl\:h-3{height:.75rem}.xl\:h-4{height:1rem}.xl\:h-5{height:1.25rem}.xl\:h-6{height:1.5rem}.xl\:h-8{height:2rem}.xl\:h-10{height:2.5rem}.xl\:h-12{height:3rem}.xl\:h-16{height:4rem}.xl\:h-20{height:5rem}.xl\:h-24{height:6rem}.xl\:h-32{height:8rem}.xl\:h-40{height:10rem}.xl\:h-48{height:12rem}.xl\:h-56{height:14rem}.xl\:h-64{height:16rem}.xl\:h-auto{height:auto}.xl\:h-px{height:1px}.xl\:h-full{height:100%}.xl\:h-screen{height:100vh}.xl\:text-xs{font-size:.75rem}.xl\:text-sm{font-size:.875rem}.xl\:text-base{font-size:1rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.25rem}.xl\:text-2xl{font-size:1.5rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.25rem}.xl\:text-5xl{font-size:3rem}.xl\:text-6xl{font-size:4rem}.xl\:leading-3{line-height:.75rem}.xl\:leading-4{line-height:1rem}.xl\:leading-5{line-height:1.25rem}.xl\:leading-6{line-height:1.5rem}.xl\:leading-7{line-height:1.75rem}.xl\:leading-8{line-height:2rem}.xl\:leading-9{line-height:2.25rem}.xl\:leading-10{line-height:2.5rem}.xl\:leading-none{line-height:1}.xl\:leading-tight{line-height:1.25}.xl\:leading-snug{line-height:1.375}.xl\:leading-normal{line-height:1.5}.xl\:leading-relaxed{line-height:1.625}.xl\:leading-loose{line-height:2}.xl\:list-inside{list-style-position:inside}.xl\:list-outside{list-style-position:outside}.xl\:list-none{list-style-type:none}.xl\:list-disc{list-style-type:disc}.xl\:list-decimal{list-style-type:decimal}.xl\:m-0{margin:0}.xl\:m-1{margin:.25rem}.xl\:m-2{margin:.5rem}.xl\:m-3{margin:.75rem}.xl\:m-4{margin:1rem}.xl\:m-5{margin:1.25rem}.xl\:m-6{margin:1.5rem}.xl\:m-8{margin:2rem}.xl\:m-10{margin:2.5rem}.xl\:m-12{margin:3rem}.xl\:m-16{margin:4rem}.xl\:m-20{margin:5rem}.xl\:m-24{margin:6rem}.xl\:m-32{margin:8rem}.xl\:m-40{margin:10rem}.xl\:m-48{margin:12rem}.xl\:m-56{margin:14rem}.xl\:m-64{margin:16rem}.xl\:m-auto{margin:auto}.xl\:m-px{margin:1px}.xl\:-m-1{margin:-.25rem}.xl\:-m-2{margin:-.5rem}.xl\:-m-3{margin:-.75rem}.xl\:-m-4{margin:-1rem}.xl\:-m-5{margin:-1.25rem}.xl\:-m-6{margin:-1.5rem}.xl\:-m-8{margin:-2rem}.xl\:-m-10{margin:-2.5rem}.xl\:-m-12{margin:-3rem}.xl\:-m-16{margin:-4rem}.xl\:-m-20{margin:-5rem}.xl\:-m-24{margin:-6rem}.xl\:-m-32{margin:-8rem}.xl\:-m-40{margin:-10rem}.xl\:-m-48{margin:-12rem}.xl\:-m-56{margin:-14rem}.xl\:-m-64{margin:-16rem}.xl\:-m-px{margin:-1px}.xl\:my-0{margin-top:0;margin-bottom:0}.xl\:mx-0{margin-left:0;margin-right:0}.xl\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xl\:mx-1{margin-left:.25rem;margin-right:.25rem}.xl\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xl\:mx-2{margin-left:.5rem;margin-right:.5rem}.xl\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xl\:mx-3{margin-left:.75rem;margin-right:.75rem}.xl\:my-4{margin-top:1rem;margin-bottom:1rem}.xl\:mx-4{margin-left:1rem;margin-right:1rem}.xl\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xl\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xl\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xl\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xl\:my-8{margin-top:2rem;margin-bottom:2rem}.xl\:mx-8{margin-left:2rem;margin-right:2rem}.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xl\:my-12{margin-top:3rem;margin-bottom:3rem}.xl\:mx-12{margin-left:3rem;margin-right:3rem}.xl\:my-16{margin-top:4rem;margin-bottom:4rem}.xl\:mx-16{margin-left:4rem;margin-right:4rem}.xl\:my-20{margin-top:5rem;margin-bottom:5rem}.xl\:mx-20{margin-left:5rem;margin-right:5rem}.xl\:my-24{margin-top:6rem;margin-bottom:6rem}.xl\:mx-24{margin-left:6rem;margin-right:6rem}.xl\:my-32{margin-top:8rem;margin-bottom:8rem}.xl\:mx-32{margin-left:8rem;margin-right:8rem}.xl\:my-40{margin-top:10rem;margin-bottom:10rem}.xl\:mx-40{margin-left:10rem;margin-right:10rem}.xl\:my-48{margin-top:12rem;margin-bottom:12rem}.xl\:mx-48{margin-left:12rem;margin-right:12rem}.xl\:my-56{margin-top:14rem;margin-bottom:14rem}.xl\:mx-56{margin-left:14rem;margin-right:14rem}.xl\:my-64{margin-top:16rem;margin-bottom:16rem}.xl\:mx-64{margin-left:16rem;margin-right:16rem}.xl\:my-auto{margin-top:auto;margin-bottom:auto}.xl\:mx-auto{margin-left:auto;margin-right:auto}.xl\:my-px{margin-top:1px;margin-bottom:1px}.xl\:mx-px{margin-left:1px;margin-right:1px}.xl\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xl\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xl\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xl\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xl\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xl\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xl\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xl\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xl\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xl\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xl\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xl\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xl\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xl\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xl\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xl\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xl\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xl\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xl\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xl\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xl\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xl\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xl\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xl\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xl\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xl\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xl\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xl\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xl\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xl\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xl\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xl\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xl\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xl\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xl\:-my-px{margin-top:-1px;margin-bottom:-1px}.xl\:-mx-px{margin-left:-1px;margin-right:-1px}.xl\:mt-0{margin-top:0}.xl\:mr-0{margin-right:0}.xl\:mb-0{margin-bottom:0}.xl\:ml-0{margin-left:0}.xl\:mt-1{margin-top:.25rem}.xl\:mr-1{margin-right:.25rem}.xl\:mb-1{margin-bottom:.25rem}.xl\:ml-1{margin-left:.25rem}.xl\:mt-2{margin-top:.5rem}.xl\:mr-2{margin-right:.5rem}.xl\:mb-2{margin-bottom:.5rem}.xl\:ml-2{margin-left:.5rem}.xl\:mt-3{margin-top:.75rem}.xl\:mr-3{margin-right:.75rem}.xl\:mb-3{margin-bottom:.75rem}.xl\:ml-3{margin-left:.75rem}.xl\:mt-4{margin-top:1rem}.xl\:mr-4{margin-right:1rem}.xl\:mb-4{margin-bottom:1rem}.xl\:ml-4{margin-left:1rem}.xl\:mt-5{margin-top:1.25rem}.xl\:mr-5{margin-right:1.25rem}.xl\:mb-5{margin-bottom:1.25rem}.xl\:ml-5{margin-left:1.25rem}.xl\:mt-6{margin-top:1.5rem}.xl\:mr-6{margin-right:1.5rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:ml-6{margin-left:1.5rem}.xl\:mt-8{margin-top:2rem}.xl\:mr-8{margin-right:2rem}.xl\:mb-8{margin-bottom:2rem}.xl\:ml-8{margin-left:2rem}.xl\:mt-10{margin-top:2.5rem}.xl\:mr-10{margin-right:2.5rem}.xl\:mb-10{margin-bottom:2.5rem}.xl\:ml-10{margin-left:2.5rem}.xl\:mt-12{margin-top:3rem}.xl\:mr-12{margin-right:3rem}.xl\:mb-12{margin-bottom:3rem}.xl\:ml-12{margin-left:3rem}.xl\:mt-16{margin-top:4rem}.xl\:mr-16{margin-right:4rem}.xl\:mb-16{margin-bottom:4rem}.xl\:ml-16{margin-left:4rem}.xl\:mt-20{margin-top:5rem}.xl\:mr-20{margin-right:5rem}.xl\:mb-20{margin-bottom:5rem}.xl\:ml-20{margin-left:5rem}.xl\:mt-24{margin-top:6rem}.xl\:mr-24{margin-right:6rem}.xl\:mb-24{margin-bottom:6rem}.xl\:ml-24{margin-left:6rem}.xl\:mt-32{margin-top:8rem}.xl\:mr-32{margin-right:8rem}.xl\:mb-32{margin-bottom:8rem}.xl\:ml-32{margin-left:8rem}.xl\:mt-40{margin-top:10rem}.xl\:mr-40{margin-right:10rem}.xl\:mb-40{margin-bottom:10rem}.xl\:ml-40{margin-left:10rem}.xl\:mt-48{margin-top:12rem}.xl\:mr-48{margin-right:12rem}.xl\:mb-48{margin-bottom:12rem}.xl\:ml-48{margin-left:12rem}.xl\:mt-56{margin-top:14rem}.xl\:mr-56{margin-right:14rem}.xl\:mb-56{margin-bottom:14rem}.xl\:ml-56{margin-left:14rem}.xl\:mt-64{margin-top:16rem}.xl\:mr-64{margin-right:16rem}.xl\:mb-64{margin-bottom:16rem}.xl\:ml-64{margin-left:16rem}.xl\:mt-auto{margin-top:auto}.xl\:mr-auto{margin-right:auto}.xl\:mb-auto{margin-bottom:auto}.xl\:ml-auto{margin-left:auto}.xl\:mt-px{margin-top:1px}.xl\:mr-px{margin-right:1px}.xl\:mb-px{margin-bottom:1px}.xl\:ml-px{margin-left:1px}.xl\:-mt-1{margin-top:-.25rem}.xl\:-mr-1{margin-right:-.25rem}.xl\:-mb-1{margin-bottom:-.25rem}.xl\:-ml-1{margin-left:-.25rem}.xl\:-mt-2{margin-top:-.5rem}.xl\:-mr-2{margin-right:-.5rem}.xl\:-mb-2{margin-bottom:-.5rem}.xl\:-ml-2{margin-left:-.5rem}.xl\:-mt-3{margin-top:-.75rem}.xl\:-mr-3{margin-right:-.75rem}.xl\:-mb-3{margin-bottom:-.75rem}.xl\:-ml-3{margin-left:-.75rem}.xl\:-mt-4{margin-top:-1rem}.xl\:-mr-4{margin-right:-1rem}.xl\:-mb-4{margin-bottom:-1rem}.xl\:-ml-4{margin-left:-1rem}.xl\:-mt-5{margin-top:-1.25rem}.xl\:-mr-5{margin-right:-1.25rem}.xl\:-mb-5{margin-bottom:-1.25rem}.xl\:-ml-5{margin-left:-1.25rem}.xl\:-mt-6{margin-top:-1.5rem}.xl\:-mr-6{margin-right:-1.5rem}.xl\:-mb-6{margin-bottom:-1.5rem}.xl\:-ml-6{margin-left:-1.5rem}.xl\:-mt-8{margin-top:-2rem}.xl\:-mr-8{margin-right:-2rem}.xl\:-mb-8{margin-bottom:-2rem}.xl\:-ml-8{margin-left:-2rem}.xl\:-mt-10{margin-top:-2.5rem}.xl\:-mr-10{margin-right:-2.5rem}.xl\:-mb-10{margin-bottom:-2.5rem}.xl\:-ml-10{margin-left:-2.5rem}.xl\:-mt-12{margin-top:-3rem}.xl\:-mr-12{margin-right:-3rem}.xl\:-mb-12{margin-bottom:-3rem}.xl\:-ml-12{margin-left:-3rem}.xl\:-mt-16{margin-top:-4rem}.xl\:-mr-16{margin-right:-4rem}.xl\:-mb-16{margin-bottom:-4rem}.xl\:-ml-16{margin-left:-4rem}.xl\:-mt-20{margin-top:-5rem}.xl\:-mr-20{margin-right:-5rem}.xl\:-mb-20{margin-bottom:-5rem}.xl\:-ml-20{margin-left:-5rem}.xl\:-mt-24{margin-top:-6rem}.xl\:-mr-24{margin-right:-6rem}.xl\:-mb-24{margin-bottom:-6rem}.xl\:-ml-24{margin-left:-6rem}.xl\:-mt-32{margin-top:-8rem}.xl\:-mr-32{margin-right:-8rem}.xl\:-mb-32{margin-bottom:-8rem}.xl\:-ml-32{margin-left:-8rem}.xl\:-mt-40{margin-top:-10rem}.xl\:-mr-40{margin-right:-10rem}.xl\:-mb-40{margin-bottom:-10rem}.xl\:-ml-40{margin-left:-10rem}.xl\:-mt-48{margin-top:-12rem}.xl\:-mr-48{margin-right:-12rem}.xl\:-mb-48{margin-bottom:-12rem}.xl\:-ml-48{margin-left:-12rem}.xl\:-mt-56{margin-top:-14rem}.xl\:-mr-56{margin-right:-14rem}.xl\:-mb-56{margin-bottom:-14rem}.xl\:-ml-56{margin-left:-14rem}.xl\:-mt-64{margin-top:-16rem}.xl\:-mr-64{margin-right:-16rem}.xl\:-mb-64{margin-bottom:-16rem}.xl\:-ml-64{margin-left:-16rem}.xl\:-mt-px{margin-top:-1px}.xl\:-mr-px{margin-right:-1px}.xl\:-mb-px{margin-bottom:-1px}.xl\:-ml-px{margin-left:-1px}.xl\:max-h-full{max-height:100%}.xl\:max-h-screen{max-height:100vh}.xl\:max-w-none{max-width:none}.xl\:max-w-xs{max-width:20rem}.xl\:max-w-sm{max-width:24rem}.xl\:max-w-md{max-width:28rem}.xl\:max-w-lg{max-width:32rem}.xl\:max-w-xl{max-width:36rem}.xl\:max-w-2xl{max-width:42rem}.xl\:max-w-3xl{max-width:48rem}.xl\:max-w-4xl{max-width:56rem}.xl\:max-w-5xl{max-width:64rem}.xl\:max-w-6xl{max-width:72rem}.xl\:max-w-full{max-width:100%}.xl\:max-w-screen-xs{max-width:360px}.xl\:max-w-screen-sm{max-width:640px}.xl\:max-w-screen-md{max-width:768px}.xl\:max-w-screen-lg{max-width:1024px}.xl\:max-w-screen-xl{max-width:1280px}.xl\:max-w-screen-xxl{max-width:1480px}.xl\:min-h-0{min-height:0}.xl\:min-h-full{min-height:100%}.xl\:min-h-screen{min-height:100vh}.xl\:min-w-0{min-width:0}.xl\:min-w-full{min-width:100%}.xl\:object-contain{-o-object-fit:contain;object-fit:contain}.xl\:object-cover{-o-object-fit:cover;object-fit:cover}.xl\:object-fill{-o-object-fit:fill;object-fit:fill}.xl\:object-none{-o-object-fit:none;object-fit:none}.xl\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xl\:object-bottom{-o-object-position:bottom;object-position:bottom}.xl\:object-center{-o-object-position:center;object-position:center}.xl\:object-left{-o-object-position:left;object-position:left}.xl\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xl\:object-left-top{-o-object-position:left top;object-position:left top}.xl\:object-right{-o-object-position:right;object-position:right}.xl\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xl\:object-right-top{-o-object-position:right top;object-position:right top}.xl\:object-top{-o-object-position:top;object-position:top}.xl\:opacity-0{opacity:0}.xl\:opacity-25{opacity:.25}.xl\:opacity-50{opacity:.5}.xl\:opacity-75{opacity:.75}.xl\:opacity-100{opacity:1}.xl\:hover\:opacity-0:hover{opacity:0}.xl\:hover\:opacity-25:hover{opacity:.25}.xl\:hover\:opacity-50:hover{opacity:.5}.xl\:hover\:opacity-75:hover{opacity:.75}.xl\:hover\:opacity-100:hover{opacity:1}.xl\:focus\:opacity-0:focus{opacity:0}.xl\:focus\:opacity-25:focus{opacity:.25}.xl\:focus\:opacity-50:focus{opacity:.5}.xl\:focus\:opacity-75:focus{opacity:.75}.xl\:focus\:opacity-100:focus{opacity:1}.xl\:outline-none{outline:2px solid transparent;outline-offset:2px}.xl\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xl\:outline-black{outline:2px dotted #000;outline-offset:2px}.xl\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xl\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xl\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xl\:overflow-auto{overflow:auto}.xl\:overflow-hidden{overflow:hidden}.xl\:overflow-visible{overflow:visible}.xl\:overflow-scroll{overflow:scroll}.xl\:overflow-x-auto{overflow-x:auto}.xl\:overflow-y-auto{overflow-y:auto}.xl\:overflow-x-hidden{overflow-x:hidden}.xl\:overflow-y-hidden{overflow-y:hidden}.xl\:overflow-x-visible{overflow-x:visible}.xl\:overflow-y-visible{overflow-y:visible}.xl\:overflow-x-scroll{overflow-x:scroll}.xl\:overflow-y-scroll{overflow-y:scroll}.xl\:scrolling-touch{-webkit-overflow-scrolling:touch}.xl\:scrolling-auto{-webkit-overflow-scrolling:auto}.xl\:overscroll-auto{overscroll-behavior:auto}.xl\:overscroll-contain{overscroll-behavior:contain}.xl\:overscroll-none{overscroll-behavior:none}.xl\:overscroll-y-auto{overscroll-behavior-y:auto}.xl\:overscroll-y-contain{overscroll-behavior-y:contain}.xl\:overscroll-y-none{overscroll-behavior-y:none}.xl\:overscroll-x-auto{overscroll-behavior-x:auto}.xl\:overscroll-x-contain{overscroll-behavior-x:contain}.xl\:overscroll-x-none{overscroll-behavior-x:none}.xl\:p-0{padding:0}.xl\:p-1{padding:.25rem}.xl\:p-2{padding:.5rem}.xl\:p-3{padding:.75rem}.xl\:p-4{padding:1rem}.xl\:p-5{padding:1.25rem}.xl\:p-6{padding:1.5rem}.xl\:p-8{padding:2rem}.xl\:p-10{padding:2.5rem}.xl\:p-12{padding:3rem}.xl\:p-16{padding:4rem}.xl\:p-20{padding:5rem}.xl\:p-24{padding:6rem}.xl\:p-32{padding:8rem}.xl\:p-40{padding:10rem}.xl\:p-48{padding:12rem}.xl\:p-56{padding:14rem}.xl\:p-64{padding:16rem}.xl\:p-px{padding:1px}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:px-0{padding-left:0;padding-right:0}.xl\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xl\:px-1{padding-left:.25rem;padding-right:.25rem}.xl\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xl\:px-2{padding-left:.5rem;padding-right:.5rem}.xl\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xl\:px-3{padding-left:.75rem;padding-right:.75rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xl\:py-8{padding-top:2rem;padding-bottom:2rem}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:py-12{padding-top:3rem;padding-bottom:3rem}.xl\:px-12{padding-left:3rem;padding-right:3rem}.xl\:py-16{padding-top:4rem;padding-bottom:4rem}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:py-20{padding-top:5rem;padding-bottom:5rem}.xl\:px-20{padding-left:5rem;padding-right:5rem}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:px-24{padding-left:6rem;padding-right:6rem}.xl\:py-32{padding-top:8rem;padding-bottom:8rem}.xl\:px-32{padding-left:8rem;padding-right:8rem}.xl\:py-40{padding-top:10rem;padding-bottom:10rem}.xl\:px-40{padding-left:10rem;padding-right:10rem}.xl\:py-48{padding-top:12rem;padding-bottom:12rem}.xl\:px-48{padding-left:12rem;padding-right:12rem}.xl\:py-56{padding-top:14rem;padding-bottom:14rem}.xl\:px-56{padding-left:14rem;padding-right:14rem}.xl\:py-64{padding-top:16rem;padding-bottom:16rem}.xl\:px-64{padding-left:16rem;padding-right:16rem}.xl\:py-px{padding-top:1px;padding-bottom:1px}.xl\:px-px{padding-left:1px;padding-right:1px}.xl\:pt-0{padding-top:0}.xl\:pr-0{padding-right:0}.xl\:pb-0{padding-bottom:0}.xl\:pl-0{padding-left:0}.xl\:pt-1{padding-top:.25rem}.xl\:pr-1{padding-right:.25rem}.xl\:pb-1{padding-bottom:.25rem}.xl\:pl-1{padding-left:.25rem}.xl\:pt-2{padding-top:.5rem}.xl\:pr-2{padding-right:.5rem}.xl\:pb-2{padding-bottom:.5rem}.xl\:pl-2{padding-left:.5rem}.xl\:pt-3{padding-top:.75rem}.xl\:pr-3{padding-right:.75rem}.xl\:pb-3{padding-bottom:.75rem}.xl\:pl-3{padding-left:.75rem}.xl\:pt-4{padding-top:1rem}.xl\:pr-4{padding-right:1rem}.xl\:pb-4{padding-bottom:1rem}.xl\:pl-4{padding-left:1rem}.xl\:pt-5{padding-top:1.25rem}.xl\:pr-5{padding-right:1.25rem}.xl\:pb-5{padding-bottom:1.25rem}.xl\:pl-5{padding-left:1.25rem}.xl\:pt-6{padding-top:1.5rem}.xl\:pr-6{padding-right:1.5rem}.xl\:pb-6{padding-bottom:1.5rem}.xl\:pl-6{padding-left:1.5rem}.xl\:pt-8{padding-top:2rem}.xl\:pr-8{padding-right:2rem}.xl\:pb-8{padding-bottom:2rem}.xl\:pl-8{padding-left:2rem}.xl\:pt-10{padding-top:2.5rem}.xl\:pr-10{padding-right:2.5rem}.xl\:pb-10{padding-bottom:2.5rem}.xl\:pl-10{padding-left:2.5rem}.xl\:pt-12{padding-top:3rem}.xl\:pr-12{padding-right:3rem}.xl\:pb-12{padding-bottom:3rem}.xl\:pl-12{padding-left:3rem}.xl\:pt-16{padding-top:4rem}.xl\:pr-16{padding-right:4rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pl-16{padding-left:4rem}.xl\:pt-20{padding-top:5rem}.xl\:pr-20{padding-right:5rem}.xl\:pb-20{padding-bottom:5rem}.xl\:pl-20{padding-left:5rem}.xl\:pt-24{padding-top:6rem}.xl\:pr-24{padding-right:6rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pl-24{padding-left:6rem}.xl\:pt-32{padding-top:8rem}.xl\:pr-32{padding-right:8rem}.xl\:pb-32{padding-bottom:8rem}.xl\:pl-32{padding-left:8rem}.xl\:pt-40{padding-top:10rem}.xl\:pr-40{padding-right:10rem}.xl\:pb-40{padding-bottom:10rem}.xl\:pl-40{padding-left:10rem}.xl\:pt-48{padding-top:12rem}.xl\:pr-48{padding-right:12rem}.xl\:pb-48{padding-bottom:12rem}.xl\:pl-48{padding-left:12rem}.xl\:pt-56{padding-top:14rem}.xl\:pr-56{padding-right:14rem}.xl\:pb-56{padding-bottom:14rem}.xl\:pl-56{padding-left:14rem}.xl\:pt-64{padding-top:16rem}.xl\:pr-64{padding-right:16rem}.xl\:pb-64{padding-bottom:16rem}.xl\:pl-64{padding-left:16rem}.xl\:pt-px{padding-top:1px}.xl\:pr-px{padding-right:1px}.xl\:pb-px{padding-bottom:1px}.xl\:pl-px{padding-left:1px}.xl\:placeholder-transparent::placeholder{color:transparent}.xl\:placeholder-current::placeholder{color:currentColor}.xl\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xl\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xl\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xl\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xl\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xl\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xl\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xl\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xl\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xl\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xl\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xl\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xl\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xl\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xl\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xl\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xl\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xl\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xl\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xl\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xl\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xl\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xl\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xl\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xl\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xl\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xl\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xl\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xl\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xl\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xl\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xl\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xl\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xl\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xl\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xl\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xl\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xl\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xl\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xl\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xl\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xl\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xl\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xl\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xl\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xl\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xl\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xl\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xl\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xl\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xl\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xl\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xl\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xl\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xl\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xl\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xl\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xl\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xl\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xl\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xl\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xl\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xl\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xl\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xl\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xl\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xl\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xl\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xl\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xl\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xl\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xl\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xl\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xl\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xl\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xl\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xl\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xl\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xl\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xl\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xl\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xl\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xl\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xl\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xl\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xl\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xl\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xl\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xl\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xl\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xl\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xl\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xl\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xl\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xl\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xl\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xl\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xl\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xl\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xl\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xl\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xl\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xl\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xl\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xl\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xl\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xl\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xl\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xl\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xl\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xl\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xl\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xl\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xl\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xl\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xl\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xl\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xl\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xl\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xl\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xl\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xl\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xl\:pointer-events-none{pointer-events:none}.xl\:pointer-events-auto{pointer-events:auto}.xl\:static{position:static}.xl\:fixed{position:fixed}.xl\:absolute{position:absolute}.xl\:relative{position:relative}.xl\:sticky{position:sticky}.xl\:inset-0{top:0;right:0;bottom:0;left:0}.xl\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xl\:inset-y-0{top:0;bottom:0}.xl\:inset-x-0{right:0;left:0}.xl\:inset-y-auto{top:auto;bottom:auto}.xl\:inset-x-auto{right:auto;left:auto}.xl\:top-0{top:0}.xl\:right-0{right:0}.xl\:bottom-0{bottom:0}.xl\:left-0{left:0}.xl\:top-auto{top:auto}.xl\:right-auto{right:auto}.xl\:bottom-auto{bottom:auto}.xl\:left-auto{left:auto}.xl\:resize-none{resize:none}.xl\:resize-y{resize:vertical}.xl\:resize-x{resize:horizontal}.xl\:resize{resize:both}.xl\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:shadow-none{box-shadow:none}.xl\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:hover\:shadow-none:hover{box-shadow:none}.xl\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xl\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xl\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xl\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xl\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xl\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xl\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xl\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xl\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xl\:focus\:shadow-none:focus{box-shadow:none}.xl\:fill-current{fill:currentColor}.xl\:stroke-current{stroke:currentColor}.xl\:stroke-0{stroke-width:0}.xl\:stroke-1{stroke-width:1}.xl\:stroke-2{stroke-width:2}.xl\:table-auto{table-layout:auto}.xl\:table-fixed{table-layout:fixed}.xl\:text-left{text-align:left}.xl\:text-center{text-align:center}.xl\:text-right{text-align:right}.xl\:text-justify{text-align:justify}.xl\:text-transparent{color:transparent}.xl\:text-current{color:currentColor}.xl\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:hover\:text-transparent:hover{color:transparent}.xl\:hover\:text-current:hover{color:currentColor}.xl\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:focus\:text-transparent:focus{color:transparent}.xl\:focus\:text-current:focus{color:currentColor}.xl\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xl\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xl\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xl\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xl\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xl\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xl\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xl\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xl\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xl\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xl\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xl\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xl\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xl\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xl\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xl\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xl\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xl\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xl\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xl\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xl\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xl\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xl\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xl\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xl\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xl\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xl\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xl\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xl\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xl\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xl\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xl\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xl\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xl\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xl\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xl\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xl\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xl\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xl\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xl\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xl\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xl\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xl\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xl\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xl\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xl\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xl\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xl\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xl\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xl\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xl\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xl\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xl\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xl\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xl\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xl\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xl\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xl\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xl\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xl\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xl\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xl\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xl\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xl\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xl\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xl\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xl\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xl\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xl\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xl\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xl\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xl\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xl\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xl\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xl\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xl\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xl\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xl\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xl\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xl\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xl\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xl\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xl\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xl\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xl\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xl\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xl\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xl\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xl\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xl\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xl\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xl\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xl\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xl\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xl\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xl\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xl\:text-opacity-0{--text-opacity:0}.xl\:text-opacity-25{--text-opacity:0.25}.xl\:text-opacity-50{--text-opacity:0.5}.xl\:text-opacity-75{--text-opacity:0.75}.xl\:text-opacity-100{--text-opacity:1}.xl\:hover\:text-opacity-0:hover{--text-opacity:0}.xl\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xl\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xl\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xl\:hover\:text-opacity-100:hover{--text-opacity:1}.xl\:focus\:text-opacity-0:focus{--text-opacity:0}.xl\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xl\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xl\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xl\:focus\:text-opacity-100:focus{--text-opacity:1}.xl\:italic{font-style:italic}.xl\:not-italic{font-style:normal}.xl\:uppercase{text-transform:uppercase}.xl\:lowercase{text-transform:lowercase}.xl\:capitalize{text-transform:capitalize}.xl\:normal-case{text-transform:none}.xl\:underline{text-decoration:underline}.xl\:line-through{text-decoration:line-through}.xl\:no-underline{text-decoration:none}.xl\:hover\:underline:hover{text-decoration:underline}.xl\:hover\:line-through:hover{text-decoration:line-through}.xl\:hover\:no-underline:hover{text-decoration:none}.xl\:focus\:underline:focus{text-decoration:underline}.xl\:focus\:line-through:focus{text-decoration:line-through}.xl\:focus\:no-underline:focus{text-decoration:none}.xl\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xl\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xl\:diagonal-fractions,.xl\:lining-nums,.xl\:oldstyle-nums,.xl\:ordinal,.xl\:proportional-nums,.xl\:slashed-zero,.xl\:stacked-fractions,.xl\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xl\:normal-nums{font-variant-numeric:normal}.xl\:ordinal{--font-variant-numeric-ordinal:ordinal}.xl\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xl\:lining-nums{--font-variant-numeric-figure:lining-nums}.xl\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xl\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xl\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xl\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xl\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xl\:tracking-tighter{letter-spacing:-.05em}.xl\:tracking-tight{letter-spacing:-.025em}.xl\:tracking-normal{letter-spacing:0}.xl\:tracking-wide{letter-spacing:.025em}.xl\:tracking-wider{letter-spacing:.05em}.xl\:tracking-widest{letter-spacing:.1em}.xl\:select-none{-webkit-user-select:none;user-select:none}.xl\:select-text{-webkit-user-select:text;user-select:text}.xl\:select-all{-webkit-user-select:all;user-select:all}.xl\:select-auto{-webkit-user-select:auto;user-select:auto}.xl\:align-baseline{vertical-align:baseline}.xl\:align-top{vertical-align:top}.xl\:align-middle{vertical-align:middle}.xl\:align-bottom{vertical-align:bottom}.xl\:align-text-top{vertical-align:text-top}.xl\:align-text-bottom{vertical-align:text-bottom}.xl\:visible{visibility:visible}.xl\:invisible{visibility:hidden}.xl\:whitespace-normal{white-space:normal}.xl\:whitespace-no-wrap{white-space:nowrap}.xl\:whitespace-pre{white-space:pre}.xl\:whitespace-pre-line{white-space:pre-line}.xl\:whitespace-pre-wrap{white-space:pre-wrap}.xl\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xl\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xl\:break-all{word-break:break-all}.xl\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xl\:w-0{width:0}.xl\:w-1{width:.25rem}.xl\:w-2{width:.5rem}.xl\:w-3{width:.75rem}.xl\:w-4{width:1rem}.xl\:w-5{width:1.25rem}.xl\:w-6{width:1.5rem}.xl\:w-8{width:2rem}.xl\:w-10{width:2.5rem}.xl\:w-12{width:3rem}.xl\:w-16{width:4rem}.xl\:w-20{width:5rem}.xl\:w-24{width:6rem}.xl\:w-32{width:8rem}.xl\:w-40{width:10rem}.xl\:w-48{width:12rem}.xl\:w-56{width:14rem}.xl\:w-64{width:16rem}.xl\:w-auto{width:auto}.xl\:w-px{width:1px}.xl\:w-1\/2{width:50%}.xl\:w-1\/3{width:33.333333%}.xl\:w-2\/3{width:66.666667%}.xl\:w-1\/4{width:25%}.xl\:w-2\/4{width:50%}.xl\:w-3\/4{width:75%}.xl\:w-1\/5{width:20%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-4\/5{width:80%}.xl\:w-1\/6{width:16.666667%}.xl\:w-2\/6{width:33.333333%}.xl\:w-3\/6{width:50%}.xl\:w-4\/6{width:66.666667%}.xl\:w-5\/6{width:83.333333%}.xl\:w-1\/12{width:8.333333%}.xl\:w-2\/12{width:16.666667%}.xl\:w-3\/12{width:25%}.xl\:w-4\/12{width:33.333333%}.xl\:w-5\/12{width:41.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}.xl\:w-8\/12{width:66.666667%}.xl\:w-9\/12{width:75%}.xl\:w-10\/12{width:83.333333%}.xl\:w-11\/12{width:91.666667%}.xl\:w-full{width:100%}.xl\:w-screen{width:100vw}.xl\:z-0{z-index:0}.xl\:z-10{z-index:10}.xl\:z-20{z-index:20}.xl\:z-30{z-index:30}.xl\:z-40{z-index:40}.xl\:z-50{z-index:50}.xl\:z-auto{z-index:auto}.xl\:gap-0{grid-gap:0;gap:0}.xl\:gap-1{grid-gap:.25rem;gap:.25rem}.xl\:gap-2{grid-gap:.5rem;gap:.5rem}.xl\:gap-3{grid-gap:.75rem;gap:.75rem}.xl\:gap-4{grid-gap:1rem;gap:1rem}.xl\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xl\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xl\:gap-8{grid-gap:2rem;gap:2rem}.xl\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xl\:gap-12{grid-gap:3rem;gap:3rem}.xl\:gap-16{grid-gap:4rem;gap:4rem}.xl\:gap-20{grid-gap:5rem;gap:5rem}.xl\:gap-24{grid-gap:6rem;gap:6rem}.xl\:gap-32{grid-gap:8rem;gap:8rem}.xl\:gap-40{grid-gap:10rem;gap:10rem}.xl\:gap-48{grid-gap:12rem;gap:12rem}.xl\:gap-56{grid-gap:14rem;gap:14rem}.xl\:gap-64{grid-gap:16rem;gap:16rem}.xl\:gap-px{grid-gap:1px;gap:1px}.xl\:col-gap-0{grid-column-gap:0;column-gap:0}.xl\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xl\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xl\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xl\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xl\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xl\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xl\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xl\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xl\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xl\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xl\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xl\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xl\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xl\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xl\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xl\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xl\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xl\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xl\:gap-x-0{grid-column-gap:0;column-gap:0}.xl\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xl\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xl\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xl\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xl\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xl\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xl\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xl\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xl\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xl\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xl\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xl\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xl\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xl\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xl\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xl\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xl\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xl\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xl\:row-gap-0{grid-row-gap:0;row-gap:0}.xl\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xl\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xl\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xl\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xl\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xl\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xl\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xl\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xl\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xl\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xl\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xl\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xl\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xl\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xl\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xl\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xl\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xl\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xl\:gap-y-0{grid-row-gap:0;row-gap:0}.xl\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xl\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xl\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xl\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xl\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xl\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xl\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xl\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xl\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xl\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xl\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xl\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xl\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xl\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xl\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xl\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xl\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xl\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xl\:grid-flow-row{grid-auto-flow:row}.xl\:grid-flow-col{grid-auto-flow:column}.xl\:grid-flow-row-dense{grid-auto-flow:row dense}.xl\:grid-flow-col-dense{grid-auto-flow:column dense}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-none{grid-template-columns:none}.xl\:auto-cols-auto{grid-auto-columns:auto}.xl\:auto-cols-min{grid-auto-columns:min-content}.xl\:auto-cols-max{grid-auto-columns:max-content}.xl\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xl\:col-auto{grid-column:auto}.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-span-10{grid-column:span 10/span 10}.xl\:col-span-11{grid-column:span 11/span 11}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:col-span-full{grid-column:1/-1}.xl\:col-start-1{grid-column-start:1}.xl\:col-start-2{grid-column-start:2}.xl\:col-start-3{grid-column-start:3}.xl\:col-start-4{grid-column-start:4}.xl\:col-start-5{grid-column-start:5}.xl\:col-start-6{grid-column-start:6}.xl\:col-start-7{grid-column-start:7}.xl\:col-start-8{grid-column-start:8}.xl\:col-start-9{grid-column-start:9}.xl\:col-start-10{grid-column-start:10}.xl\:col-start-11{grid-column-start:11}.xl\:col-start-12{grid-column-start:12}.xl\:col-start-13{grid-column-start:13}.xl\:col-start-auto{grid-column-start:auto}.xl\:col-end-1{grid-column-end:1}.xl\:col-end-2{grid-column-end:2}.xl\:col-end-3{grid-column-end:3}.xl\:col-end-4{grid-column-end:4}.xl\:col-end-5{grid-column-end:5}.xl\:col-end-6{grid-column-end:6}.xl\:col-end-7{grid-column-end:7}.xl\:col-end-8{grid-column-end:8}.xl\:col-end-9{grid-column-end:9}.xl\:col-end-10{grid-column-end:10}.xl\:col-end-11{grid-column-end:11}.xl\:col-end-12{grid-column-end:12}.xl\:col-end-13{grid-column-end:13}.xl\:col-end-auto{grid-column-end:auto}.xl\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:grid-rows-none{grid-template-rows:none}.xl\:auto-rows-auto{grid-auto-rows:auto}.xl\:auto-rows-min{grid-auto-rows:min-content}.xl\:auto-rows-max{grid-auto-rows:max-content}.xl\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xl\:row-auto{grid-row:auto}.xl\:row-span-1{grid-row:span 1/span 1}.xl\:row-span-2{grid-row:span 2/span 2}.xl\:row-span-3{grid-row:span 3/span 3}.xl\:row-span-4{grid-row:span 4/span 4}.xl\:row-span-5{grid-row:span 5/span 5}.xl\:row-span-6{grid-row:span 6/span 6}.xl\:row-span-full{grid-row:1/-1}.xl\:row-start-1{grid-row-start:1}.xl\:row-start-2{grid-row-start:2}.xl\:row-start-3{grid-row-start:3}.xl\:row-start-4{grid-row-start:4}.xl\:row-start-5{grid-row-start:5}.xl\:row-start-6{grid-row-start:6}.xl\:row-start-7{grid-row-start:7}.xl\:row-start-auto{grid-row-start:auto}.xl\:row-end-1{grid-row-end:1}.xl\:row-end-2{grid-row-end:2}.xl\:row-end-3{grid-row-end:3}.xl\:row-end-4{grid-row-end:4}.xl\:row-end-5{grid-row-end:5}.xl\:row-end-6{grid-row-end:6}.xl\:row-end-7{grid-row-end:7}.xl\:row-end-auto{grid-row-end:auto}.xl\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xl\:transform-none{transform:none}.xl\:origin-center{transform-origin:center}.xl\:origin-top{transform-origin:top}.xl\:origin-top-right{transform-origin:top right}.xl\:origin-right{transform-origin:right}.xl\:origin-bottom-right{transform-origin:bottom right}.xl\:origin-bottom{transform-origin:bottom}.xl\:origin-bottom-left{transform-origin:bottom left}.xl\:origin-left{transform-origin:left}.xl\:origin-top-left{transform-origin:top left}.xl\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xl\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xl\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:scale-x-0{--transform-scale-x:0}.xl\:scale-x-50{--transform-scale-x:.5}.xl\:scale-x-75{--transform-scale-x:.75}.xl\:scale-x-90{--transform-scale-x:.9}.xl\:scale-x-95{--transform-scale-x:.95}.xl\:scale-x-100{--transform-scale-x:1}.xl\:scale-x-105{--transform-scale-x:1.05}.xl\:scale-x-110{--transform-scale-x:1.1}.xl\:scale-x-125{--transform-scale-x:1.25}.xl\:scale-x-150{--transform-scale-x:1.5}.xl\:scale-y-0{--transform-scale-y:0}.xl\:scale-y-50{--transform-scale-y:.5}.xl\:scale-y-75{--transform-scale-y:.75}.xl\:scale-y-90{--transform-scale-y:.9}.xl\:scale-y-95{--transform-scale-y:.95}.xl\:scale-y-100{--transform-scale-y:1}.xl\:scale-y-105{--transform-scale-y:1.05}.xl\:scale-y-110{--transform-scale-y:1.1}.xl\:scale-y-125{--transform-scale-y:1.25}.xl\:scale-y-150{--transform-scale-y:1.5}.xl\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xl\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xl\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:hover\:scale-x-0:hover{--transform-scale-x:0}.xl\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xl\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xl\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xl\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xl\:hover\:scale-x-100:hover{--transform-scale-x:1}.xl\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xl\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xl\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xl\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xl\:hover\:scale-y-0:hover{--transform-scale-y:0}.xl\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xl\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xl\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xl\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xl\:hover\:scale-y-100:hover{--transform-scale-y:1}.xl\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xl\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xl\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xl\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xl\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xl\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xl\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xl\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xl\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xl\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xl\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xl\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xl\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xl\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xl\:focus\:scale-x-0:focus{--transform-scale-x:0}.xl\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xl\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xl\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xl\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xl\:focus\:scale-x-100:focus{--transform-scale-x:1}.xl\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xl\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xl\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xl\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xl\:focus\:scale-y-0:focus{--transform-scale-y:0}.xl\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xl\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xl\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xl\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xl\:focus\:scale-y-100:focus{--transform-scale-y:1}.xl\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xl\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xl\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xl\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xl\:rotate-0{--transform-rotate:0}.xl\:rotate-1{--transform-rotate:1deg}.xl\:rotate-2{--transform-rotate:2deg}.xl\:rotate-3{--transform-rotate:3deg}.xl\:rotate-6{--transform-rotate:6deg}.xl\:rotate-12{--transform-rotate:12deg}.xl\:rotate-45{--transform-rotate:45deg}.xl\:rotate-90{--transform-rotate:90deg}.xl\:rotate-180{--transform-rotate:180deg}.xl\:-rotate-180{--transform-rotate:-180deg}.xl\:-rotate-90{--transform-rotate:-90deg}.xl\:-rotate-45{--transform-rotate:-45deg}.xl\:-rotate-12{--transform-rotate:-12deg}.xl\:-rotate-6{--transform-rotate:-6deg}.xl\:-rotate-3{--transform-rotate:-3deg}.xl\:-rotate-2{--transform-rotate:-2deg}.xl\:-rotate-1{--transform-rotate:-1deg}.xl\:hover\:rotate-0:hover{--transform-rotate:0}.xl\:hover\:rotate-1:hover{--transform-rotate:1deg}.xl\:hover\:rotate-2:hover{--transform-rotate:2deg}.xl\:hover\:rotate-3:hover{--transform-rotate:3deg}.xl\:hover\:rotate-6:hover{--transform-rotate:6deg}.xl\:hover\:rotate-12:hover{--transform-rotate:12deg}.xl\:hover\:rotate-45:hover{--transform-rotate:45deg}.xl\:hover\:rotate-90:hover{--transform-rotate:90deg}.xl\:hover\:rotate-180:hover{--transform-rotate:180deg}.xl\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xl\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xl\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xl\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xl\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xl\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xl\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xl\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xl\:focus\:rotate-0:focus{--transform-rotate:0}.xl\:focus\:rotate-1:focus{--transform-rotate:1deg}.xl\:focus\:rotate-2:focus{--transform-rotate:2deg}.xl\:focus\:rotate-3:focus{--transform-rotate:3deg}.xl\:focus\:rotate-6:focus{--transform-rotate:6deg}.xl\:focus\:rotate-12:focus{--transform-rotate:12deg}.xl\:focus\:rotate-45:focus{--transform-rotate:45deg}.xl\:focus\:rotate-90:focus{--transform-rotate:90deg}.xl\:focus\:rotate-180:focus{--transform-rotate:180deg}.xl\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xl\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xl\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xl\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xl\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xl\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xl\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xl\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xl\:translate-x-0{--transform-translate-x:0}.xl\:translate-x-1{--transform-translate-x:0.25rem}.xl\:translate-x-2{--transform-translate-x:0.5rem}.xl\:translate-x-3{--transform-translate-x:0.75rem}.xl\:translate-x-4{--transform-translate-x:1rem}.xl\:translate-x-5{--transform-translate-x:1.25rem}.xl\:translate-x-6{--transform-translate-x:1.5rem}.xl\:translate-x-8{--transform-translate-x:2rem}.xl\:translate-x-10{--transform-translate-x:2.5rem}.xl\:translate-x-12{--transform-translate-x:3rem}.xl\:translate-x-16{--transform-translate-x:4rem}.xl\:translate-x-20{--transform-translate-x:5rem}.xl\:translate-x-24{--transform-translate-x:6rem}.xl\:translate-x-32{--transform-translate-x:8rem}.xl\:translate-x-40{--transform-translate-x:10rem}.xl\:translate-x-48{--transform-translate-x:12rem}.xl\:translate-x-56{--transform-translate-x:14rem}.xl\:translate-x-64{--transform-translate-x:16rem}.xl\:translate-x-px{--transform-translate-x:1px}.xl\:-translate-x-1{--transform-translate-x:-0.25rem}.xl\:-translate-x-2{--transform-translate-x:-0.5rem}.xl\:-translate-x-3{--transform-translate-x:-0.75rem}.xl\:-translate-x-4{--transform-translate-x:-1rem}.xl\:-translate-x-5{--transform-translate-x:-1.25rem}.xl\:-translate-x-6{--transform-translate-x:-1.5rem}.xl\:-translate-x-8{--transform-translate-x:-2rem}.xl\:-translate-x-10{--transform-translate-x:-2.5rem}.xl\:-translate-x-12{--transform-translate-x:-3rem}.xl\:-translate-x-16{--transform-translate-x:-4rem}.xl\:-translate-x-20{--transform-translate-x:-5rem}.xl\:-translate-x-24{--transform-translate-x:-6rem}.xl\:-translate-x-32{--transform-translate-x:-8rem}.xl\:-translate-x-40{--transform-translate-x:-10rem}.xl\:-translate-x-48{--transform-translate-x:-12rem}.xl\:-translate-x-56{--transform-translate-x:-14rem}.xl\:-translate-x-64{--transform-translate-x:-16rem}.xl\:-translate-x-px{--transform-translate-x:-1px}.xl\:-translate-x-full{--transform-translate-x:-100%}.xl\:-translate-x-1\/2{--transform-translate-x:-50%}.xl\:translate-x-1\/2{--transform-translate-x:50%}.xl\:translate-x-full{--transform-translate-x:100%}.xl\:translate-y-0{--transform-translate-y:0}.xl\:translate-y-1{--transform-translate-y:0.25rem}.xl\:translate-y-2{--transform-translate-y:0.5rem}.xl\:translate-y-3{--transform-translate-y:0.75rem}.xl\:translate-y-4{--transform-translate-y:1rem}.xl\:translate-y-5{--transform-translate-y:1.25rem}.xl\:translate-y-6{--transform-translate-y:1.5rem}.xl\:translate-y-8{--transform-translate-y:2rem}.xl\:translate-y-10{--transform-translate-y:2.5rem}.xl\:translate-y-12{--transform-translate-y:3rem}.xl\:translate-y-16{--transform-translate-y:4rem}.xl\:translate-y-20{--transform-translate-y:5rem}.xl\:translate-y-24{--transform-translate-y:6rem}.xl\:translate-y-32{--transform-translate-y:8rem}.xl\:translate-y-40{--transform-translate-y:10rem}.xl\:translate-y-48{--transform-translate-y:12rem}.xl\:translate-y-56{--transform-translate-y:14rem}.xl\:translate-y-64{--transform-translate-y:16rem}.xl\:translate-y-px{--transform-translate-y:1px}.xl\:-translate-y-1{--transform-translate-y:-0.25rem}.xl\:-translate-y-2{--transform-translate-y:-0.5rem}.xl\:-translate-y-3{--transform-translate-y:-0.75rem}.xl\:-translate-y-4{--transform-translate-y:-1rem}.xl\:-translate-y-5{--transform-translate-y:-1.25rem}.xl\:-translate-y-6{--transform-translate-y:-1.5rem}.xl\:-translate-y-8{--transform-translate-y:-2rem}.xl\:-translate-y-10{--transform-translate-y:-2.5rem}.xl\:-translate-y-12{--transform-translate-y:-3rem}.xl\:-translate-y-16{--transform-translate-y:-4rem}.xl\:-translate-y-20{--transform-translate-y:-5rem}.xl\:-translate-y-24{--transform-translate-y:-6rem}.xl\:-translate-y-32{--transform-translate-y:-8rem}.xl\:-translate-y-40{--transform-translate-y:-10rem}.xl\:-translate-y-48{--transform-translate-y:-12rem}.xl\:-translate-y-56{--transform-translate-y:-14rem}.xl\:-translate-y-64{--transform-translate-y:-16rem}.xl\:-translate-y-px{--transform-translate-y:-1px}.xl\:-translate-y-full{--transform-translate-y:-100%}.xl\:-translate-y-1\/2{--transform-translate-y:-50%}.xl\:translate-y-1\/2{--transform-translate-y:50%}.xl\:translate-y-full{--transform-translate-y:100%}.xl\:hover\:translate-x-0:hover{--transform-translate-x:0}.xl\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xl\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xl\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xl\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xl\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xl\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xl\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xl\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xl\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xl\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xl\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xl\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xl\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xl\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xl\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xl\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xl\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xl\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xl\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xl\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xl\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xl\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xl\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xl\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xl\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xl\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xl\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xl\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xl\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xl\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xl\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xl\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xl\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xl\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xl\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xl\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xl\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xl\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xl\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xl\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xl\:hover\:translate-y-0:hover{--transform-translate-y:0}.xl\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xl\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xl\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xl\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xl\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xl\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xl\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xl\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xl\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xl\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xl\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xl\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xl\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xl\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xl\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xl\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xl\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xl\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xl\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xl\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xl\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xl\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xl\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xl\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xl\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xl\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xl\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xl\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xl\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xl\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xl\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xl\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xl\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xl\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xl\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xl\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xl\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xl\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xl\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xl\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xl\:focus\:translate-x-0:focus{--transform-translate-x:0}.xl\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xl\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xl\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xl\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xl\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xl\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xl\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xl\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xl\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xl\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xl\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xl\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xl\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xl\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xl\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xl\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xl\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xl\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xl\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xl\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xl\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xl\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xl\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xl\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xl\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xl\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xl\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xl\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xl\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xl\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xl\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xl\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xl\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xl\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xl\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xl\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xl\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xl\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xl\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xl\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xl\:focus\:translate-y-0:focus{--transform-translate-y:0}.xl\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xl\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xl\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xl\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xl\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xl\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xl\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xl\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xl\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xl\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xl\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xl\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xl\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xl\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xl\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xl\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xl\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xl\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xl\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xl\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xl\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xl\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xl\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xl\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xl\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xl\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xl\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xl\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xl\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xl\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xl\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xl\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xl\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xl\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xl\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xl\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xl\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xl\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xl\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xl\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xl\:skew-x-0{--transform-skew-x:0}.xl\:skew-x-1{--transform-skew-x:1deg}.xl\:skew-x-2{--transform-skew-x:2deg}.xl\:skew-x-3{--transform-skew-x:3deg}.xl\:skew-x-6{--transform-skew-x:6deg}.xl\:skew-x-12{--transform-skew-x:12deg}.xl\:-skew-x-12{--transform-skew-x:-12deg}.xl\:-skew-x-6{--transform-skew-x:-6deg}.xl\:-skew-x-3{--transform-skew-x:-3deg}.xl\:-skew-x-2{--transform-skew-x:-2deg}.xl\:-skew-x-1{--transform-skew-x:-1deg}.xl\:skew-y-0{--transform-skew-y:0}.xl\:skew-y-1{--transform-skew-y:1deg}.xl\:skew-y-2{--transform-skew-y:2deg}.xl\:skew-y-3{--transform-skew-y:3deg}.xl\:skew-y-6{--transform-skew-y:6deg}.xl\:skew-y-12{--transform-skew-y:12deg}.xl\:-skew-y-12{--transform-skew-y:-12deg}.xl\:-skew-y-6{--transform-skew-y:-6deg}.xl\:-skew-y-3{--transform-skew-y:-3deg}.xl\:-skew-y-2{--transform-skew-y:-2deg}.xl\:-skew-y-1{--transform-skew-y:-1deg}.xl\:hover\:skew-x-0:hover{--transform-skew-x:0}.xl\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xl\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xl\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xl\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xl\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xl\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xl\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xl\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xl\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xl\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xl\:hover\:skew-y-0:hover{--transform-skew-y:0}.xl\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xl\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xl\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xl\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xl\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xl\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xl\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xl\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xl\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xl\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xl\:focus\:skew-x-0:focus{--transform-skew-x:0}.xl\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xl\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xl\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xl\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xl\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xl\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xl\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xl\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xl\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xl\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xl\:focus\:skew-y-0:focus{--transform-skew-y:0}.xl\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xl\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xl\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xl\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xl\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xl\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xl\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xl\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xl\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xl\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xl\:transition-none{transition-property:none}.xl\:transition-all{transition-property:all}.xl\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xl\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xl\:transition-opacity{transition-property:opacity}.xl\:transition-shadow{transition-property:box-shadow}.xl\:transition-transform{transition-property:transform}.xl\:ease-linear{transition-timing-function:linear}.xl\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xl\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xl\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xl\:duration-75{transition-duration:75ms}.xl\:duration-100{transition-duration:.1s}.xl\:duration-150{transition-duration:.15s}.xl\:duration-200{transition-duration:.2s}.xl\:duration-300{transition-duration:.3s}.xl\:duration-500{transition-duration:.5s}.xl\:duration-700{transition-duration:.7s}.xl\:duration-1000{transition-duration:1s}.xl\:delay-75{transition-delay:75ms}.xl\:delay-100{transition-delay:.1s}.xl\:delay-150{transition-delay:.15s}.xl\:delay-200{transition-delay:.2s}.xl\:delay-300{transition-delay:.3s}.xl\:delay-500{transition-delay:.5s}.xl\:delay-700{transition-delay:.7s}.xl\:delay-1000{transition-delay:1s}.xl\:animate-none{animation:none}.xl\:animate-spin{animation:spin 1s linear infinite}.xl\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xl\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xl\:animate-bounce{animation:bounce 1s infinite}}@media (min-width:1480px){.xxl\:container{width:100%}@media (min-width:360px){.xxl\:container{max-width:360px}}@media (min-width:640px){.xxl\:container{max-width:640px}}@media (min-width:768px){.xxl\:container{max-width:768px}}@media (min-width:1024px){.xxl\:container{max-width:1024px}}@media (min-width:1280px){.xxl\:container{max-width:1280px}}@media (min-width:1480px){.xxl\:container{max-width:1480px}}.xxl\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.xxl\:space-x-0>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0px*var(--space-x-reverse));margin-left:calc(0px*(1 - var(--space-x-reverse)))}.xxl\:space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.xxl\:space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.25rem*var(--space-x-reverse));margin-left:calc(0.25rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.xxl\:space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.5rem*var(--space-x-reverse));margin-left:calc(0.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.xxl\:space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.xxl\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.xxl\:space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.25rem*var(--space-x-reverse));margin-left:calc(1.25rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.5rem*var(--space-y-reverse))}.xxl\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2rem*var(--space-y-reverse))}.xxl\:space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2rem*var(--space-x-reverse));margin-left:calc(2rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(2.5rem*var(--space-y-reverse))}.xxl\:space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(2.5rem*var(--space-x-reverse));margin-left:calc(2.5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(3rem*var(--space-y-reverse))}.xxl\:space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(3rem*var(--space-x-reverse));margin-left:calc(3rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(4rem*var(--space-y-reverse))}.xxl\:space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(4rem*var(--space-x-reverse));margin-left:calc(4rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(5rem*var(--space-y-reverse))}.xxl\:space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(5rem*var(--space-x-reverse));margin-left:calc(5rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(6rem*var(--space-y-reverse))}.xxl\:space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(6rem*var(--space-x-reverse));margin-left:calc(6rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(8rem*var(--space-y-reverse))}.xxl\:space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(8rem*var(--space-x-reverse));margin-left:calc(8rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(10rem*var(--space-y-reverse))}.xxl\:space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(10rem*var(--space-x-reverse));margin-left:calc(10rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(12rem*var(--space-y-reverse))}.xxl\:space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(12rem*var(--space-x-reverse));margin-left:calc(12rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(14rem*var(--space-y-reverse))}.xxl\:space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(14rem*var(--space-x-reverse));margin-left:calc(14rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(16rem*var(--space-y-reverse))}.xxl\:space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(16rem*var(--space-x-reverse));margin-left:calc(16rem*(1 - var(--space-x-reverse)))}.xxl\:space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1px*(1 - var(--space-y-reverse)));margin-bottom:calc(1px*var(--space-y-reverse))}.xxl\:space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1px*var(--space-x-reverse));margin-left:calc(1px*(1 - var(--space-x-reverse)))}.xxl\:-space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.25rem*var(--space-y-reverse))}.xxl\:-space-x-1>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.25rem*var(--space-x-reverse));margin-left:calc(-0.25rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.5rem*var(--space-y-reverse))}.xxl\:-space-x-2>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.5rem*var(--space-x-reverse));margin-left:calc(-0.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-0.75rem*var(--space-y-reverse))}.xxl\:-space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-0.75rem*var(--space-x-reverse));margin-left:calc(-0.75rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1rem*var(--space-y-reverse))}.xxl\:-space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1rem*var(--space-x-reverse));margin-left:calc(-1rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.25rem*var(--space-y-reverse))}.xxl\:-space-x-5>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.25rem*var(--space-x-reverse));margin-left:calc(-1.25rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-6>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-1.5rem*var(--space-y-reverse))}.xxl\:-space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1.5rem*var(--space-x-reverse));margin-left:calc(-1.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-8>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2rem*var(--space-y-reverse))}.xxl\:-space-x-8>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2rem*var(--space-x-reverse));margin-left:calc(-2rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-10>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-2.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-2.5rem*var(--space-y-reverse))}.xxl\:-space-x-10>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-2.5rem*var(--space-x-reverse));margin-left:calc(-2.5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-12>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-3rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-3rem*var(--space-y-reverse))}.xxl\:-space-x-12>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-3rem*var(--space-x-reverse));margin-left:calc(-3rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-16>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-4rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-4rem*var(--space-y-reverse))}.xxl\:-space-x-16>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-4rem*var(--space-x-reverse));margin-left:calc(-4rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-20>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-5rem*var(--space-y-reverse))}.xxl\:-space-x-20>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-5rem*var(--space-x-reverse));margin-left:calc(-5rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-24>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-6rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-6rem*var(--space-y-reverse))}.xxl\:-space-x-24>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-6rem*var(--space-x-reverse));margin-left:calc(-6rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-32>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-8rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-8rem*var(--space-y-reverse))}.xxl\:-space-x-32>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-8rem*var(--space-x-reverse));margin-left:calc(-8rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-40>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-10rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-10rem*var(--space-y-reverse))}.xxl\:-space-x-40>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-10rem*var(--space-x-reverse));margin-left:calc(-10rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-48>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-12rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-12rem*var(--space-y-reverse))}.xxl\:-space-x-48>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-12rem*var(--space-x-reverse));margin-left:calc(-12rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-56>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-14rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-14rem*var(--space-y-reverse))}.xxl\:-space-x-56>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-14rem*var(--space-x-reverse));margin-left:calc(-14rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-64>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-16rem*(1 - var(--space-y-reverse)));margin-bottom:calc(-16rem*var(--space-y-reverse))}.xxl\:-space-x-64>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-16rem*var(--space-x-reverse));margin-left:calc(-16rem*(1 - var(--space-x-reverse)))}.xxl\:-space-y-px>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(-1px*(1 - var(--space-y-reverse)));margin-bottom:calc(-1px*var(--space-y-reverse))}.xxl\:-space-x-px>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(-1px*var(--space-x-reverse));margin-left:calc(-1px*(1 - var(--space-x-reverse)))}.xxl\:space-y-reverse>:not(template)~:not(template){--space-y-reverse:1}.xxl\:space-x-reverse>:not(template)~:not(template){--space-x-reverse:1}.xxl\:divide-y-0>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(0px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(0px*var(--divide-y-reverse))}.xxl\:divide-x-0>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(0px*var(--divide-x-reverse));border-left-width:calc(0px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-2>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(2px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(2px*var(--divide-y-reverse))}.xxl\:divide-x-2>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(2px*var(--divide-x-reverse));border-left-width:calc(2px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-4>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(4px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(4px*var(--divide-y-reverse))}.xxl\:divide-x-4>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(4px*var(--divide-x-reverse));border-left-width:calc(4px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-8>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(8px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(8px*var(--divide-y-reverse))}.xxl\:divide-x-8>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(8px*var(--divide-x-reverse));border-left-width:calc(8px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.xxl\:divide-x>:not(template)~:not(template){--divide-x-reverse:0;border-right-width:calc(1px*var(--divide-x-reverse));border-left-width:calc(1px*(1 - var(--divide-x-reverse)))}.xxl\:divide-y-reverse>:not(template)~:not(template){--divide-y-reverse:1}.xxl\:divide-x-reverse>:not(template)~:not(template){--divide-x-reverse:1}.xxl\:divide-transparent>:not(template)~:not(template){border-color:transparent}.xxl\:divide-current>:not(template)~:not(template){border-color:currentColor}.xxl\:divide-black>:not(template)~:not(template){--divide-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--divide-opacity))}.xxl\:divide-white>:not(template)~:not(template){--divide-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--divide-opacity))}.xxl\:divide-gray-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--divide-opacity))}.xxl\:divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--divide-opacity))}.xxl\:divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--divide-opacity))}.xxl\:divide-gray-400>:not(template)~:not(template){--divide-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--divide-opacity))}.xxl\:divide-gray-500>:not(template)~:not(template){--divide-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--divide-opacity))}.xxl\:divide-gray-600>:not(template)~:not(template){--divide-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--divide-opacity))}.xxl\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--divide-opacity))}.xxl\:divide-gray-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--divide-opacity))}.xxl\:divide-gray-900>:not(template)~:not(template){--divide-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--divide-opacity))}.xxl\:divide-red-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--divide-opacity))}.xxl\:divide-red-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--divide-opacity))}.xxl\:divide-red-300>:not(template)~:not(template){--divide-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--divide-opacity))}.xxl\:divide-red-400>:not(template)~:not(template){--divide-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--divide-opacity))}.xxl\:divide-red-500>:not(template)~:not(template){--divide-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--divide-opacity))}.xxl\:divide-red-600>:not(template)~:not(template){--divide-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--divide-opacity))}.xxl\:divide-red-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--divide-opacity))}.xxl\:divide-red-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--divide-opacity))}.xxl\:divide-red-900>:not(template)~:not(template){--divide-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--divide-opacity))}.xxl\:divide-orange-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--divide-opacity))}.xxl\:divide-orange-200>:not(template)~:not(template){--divide-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--divide-opacity))}.xxl\:divide-orange-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--divide-opacity))}.xxl\:divide-orange-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--divide-opacity))}.xxl\:divide-orange-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--divide-opacity))}.xxl\:divide-orange-600>:not(template)~:not(template){--divide-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--divide-opacity))}.xxl\:divide-orange-700>:not(template)~:not(template){--divide-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--divide-opacity))}.xxl\:divide-orange-800>:not(template)~:not(template){--divide-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--divide-opacity))}.xxl\:divide-orange-900>:not(template)~:not(template){--divide-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--divide-opacity))}.xxl\:divide-yellow-100>:not(template)~:not(template){--divide-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--divide-opacity))}.xxl\:divide-yellow-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--divide-opacity))}.xxl\:divide-yellow-300>:not(template)~:not(template){--divide-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--divide-opacity))}.xxl\:divide-yellow-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--divide-opacity))}.xxl\:divide-yellow-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--divide-opacity))}.xxl\:divide-yellow-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--divide-opacity))}.xxl\:divide-yellow-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--divide-opacity))}.xxl\:divide-yellow-800>:not(template)~:not(template){--divide-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--divide-opacity))}.xxl\:divide-yellow-900>:not(template)~:not(template){--divide-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--divide-opacity))}.xxl\:divide-green-100>:not(template)~:not(template){--divide-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--divide-opacity))}.xxl\:divide-green-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--divide-opacity))}.xxl\:divide-green-300>:not(template)~:not(template){--divide-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--divide-opacity))}.xxl\:divide-green-400>:not(template)~:not(template){--divide-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--divide-opacity))}.xxl\:divide-green-500>:not(template)~:not(template){--divide-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--divide-opacity))}.xxl\:divide-green-600>:not(template)~:not(template){--divide-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--divide-opacity))}.xxl\:divide-green-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--divide-opacity))}.xxl\:divide-green-800>:not(template)~:not(template){--divide-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--divide-opacity))}.xxl\:divide-green-900>:not(template)~:not(template){--divide-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--divide-opacity))}.xxl\:divide-teal-100>:not(template)~:not(template){--divide-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--divide-opacity))}.xxl\:divide-teal-200>:not(template)~:not(template){--divide-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--divide-opacity))}.xxl\:divide-teal-300>:not(template)~:not(template){--divide-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--divide-opacity))}.xxl\:divide-teal-400>:not(template)~:not(template){--divide-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--divide-opacity))}.xxl\:divide-teal-500>:not(template)~:not(template){--divide-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--divide-opacity))}.xxl\:divide-teal-600>:not(template)~:not(template){--divide-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--divide-opacity))}.xxl\:divide-teal-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--divide-opacity))}.xxl\:divide-teal-800>:not(template)~:not(template){--divide-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--divide-opacity))}.xxl\:divide-teal-900>:not(template)~:not(template){--divide-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--divide-opacity))}.xxl\:divide-blue-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--divide-opacity))}.xxl\:divide-blue-200>:not(template)~:not(template){--divide-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--divide-opacity))}.xxl\:divide-blue-300>:not(template)~:not(template){--divide-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--divide-opacity))}.xxl\:divide-blue-400>:not(template)~:not(template){--divide-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--divide-opacity))}.xxl\:divide-blue-500>:not(template)~:not(template){--divide-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--divide-opacity))}.xxl\:divide-blue-600>:not(template)~:not(template){--divide-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--divide-opacity))}.xxl\:divide-blue-700>:not(template)~:not(template){--divide-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--divide-opacity))}.xxl\:divide-blue-800>:not(template)~:not(template){--divide-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--divide-opacity))}.xxl\:divide-blue-900>:not(template)~:not(template){--divide-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--divide-opacity))}.xxl\:divide-indigo-100>:not(template)~:not(template){--divide-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--divide-opacity))}.xxl\:divide-indigo-200>:not(template)~:not(template){--divide-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--divide-opacity))}.xxl\:divide-indigo-300>:not(template)~:not(template){--divide-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--divide-opacity))}.xxl\:divide-indigo-400>:not(template)~:not(template){--divide-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--divide-opacity))}.xxl\:divide-indigo-500>:not(template)~:not(template){--divide-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--divide-opacity))}.xxl\:divide-indigo-600>:not(template)~:not(template){--divide-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--divide-opacity))}.xxl\:divide-indigo-700>:not(template)~:not(template){--divide-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--divide-opacity))}.xxl\:divide-indigo-800>:not(template)~:not(template){--divide-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--divide-opacity))}.xxl\:divide-indigo-900>:not(template)~:not(template){--divide-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--divide-opacity))}.xxl\:divide-purple-100>:not(template)~:not(template){--divide-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--divide-opacity))}.xxl\:divide-purple-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--divide-opacity))}.xxl\:divide-purple-300>:not(template)~:not(template){--divide-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--divide-opacity))}.xxl\:divide-purple-400>:not(template)~:not(template){--divide-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--divide-opacity))}.xxl\:divide-purple-500>:not(template)~:not(template){--divide-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--divide-opacity))}.xxl\:divide-purple-600>:not(template)~:not(template){--divide-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--divide-opacity))}.xxl\:divide-purple-700>:not(template)~:not(template){--divide-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--divide-opacity))}.xxl\:divide-purple-800>:not(template)~:not(template){--divide-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--divide-opacity))}.xxl\:divide-purple-900>:not(template)~:not(template){--divide-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--divide-opacity))}.xxl\:divide-pink-100>:not(template)~:not(template){--divide-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--divide-opacity))}.xxl\:divide-pink-200>:not(template)~:not(template){--divide-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--divide-opacity))}.xxl\:divide-pink-300>:not(template)~:not(template){--divide-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--divide-opacity))}.xxl\:divide-pink-400>:not(template)~:not(template){--divide-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--divide-opacity))}.xxl\:divide-pink-500>:not(template)~:not(template){--divide-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--divide-opacity))}.xxl\:divide-pink-600>:not(template)~:not(template){--divide-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--divide-opacity))}.xxl\:divide-pink-700>:not(template)~:not(template){--divide-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--divide-opacity))}.xxl\:divide-pink-800>:not(template)~:not(template){--divide-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--divide-opacity))}.xxl\:divide-pink-900>:not(template)~:not(template){--divide-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--divide-opacity))}.xxl\:divide-primary>:not(template)~:not(template){--divide-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--divide-opacity))}.xxl\:divide-secondary>:not(template)~:not(template){--divide-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--divide-opacity))}.xxl\:divide-greenish-blue>:not(template)~:not(template){--divide-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--divide-opacity))}.xxl\:divide-blue-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--divide-opacity))}.xxl\:divide-solid>:not(template)~:not(template){border-style:solid}.xxl\:divide-dashed>:not(template)~:not(template){border-style:dashed}.xxl\:divide-dotted>:not(template)~:not(template){border-style:dotted}.xxl\:divide-double>:not(template)~:not(template){border-style:double}.xxl\:divide-none>:not(template)~:not(template){border-style:none}.xxl\:divide-opacity-0>:not(template)~:not(template){--divide-opacity:0}.xxl\:divide-opacity-25>:not(template)~:not(template){--divide-opacity:0.25}.xxl\:divide-opacity-50>:not(template)~:not(template){--divide-opacity:0.5}.xxl\:divide-opacity-75>:not(template)~:not(template){--divide-opacity:0.75}.xxl\:divide-opacity-100>:not(template)~:not(template){--divide-opacity:1}.xxl\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xxl\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xxl\:focus\:sr-only:focus{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.xxl\:focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.xxl\:appearance-none{-webkit-appearance:none;appearance:none}.xxl\:bg-fixed{background-attachment:fixed}.xxl\:bg-local{background-attachment:local}.xxl\:bg-scroll{background-attachment:scroll}.xxl\:bg-clip-border{background-clip:border-box}.xxl\:bg-clip-padding{background-clip:padding-box}.xxl\:bg-clip-content{background-clip:content-box}.xxl\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.xxl\:bg-transparent{background-color:transparent}.xxl\:bg-current{background-color:currentColor}.xxl\:bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:bg-gray-200{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:bg-gray-300{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:bg-gray-400{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:bg-gray-500{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:bg-gray-600{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:bg-gray-700{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:bg-red-100{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:bg-red-300{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:bg-red-400{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:bg-red-500{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:bg-red-600{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:bg-red-700{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:bg-red-800{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:bg-red-900{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:bg-orange-100{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:bg-orange-200{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:bg-orange-300{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:bg-orange-400{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:bg-orange-500{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:bg-orange-600{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:bg-orange-700{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:bg-orange-800{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:bg-orange-900{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:bg-yellow-100{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:bg-yellow-200{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:bg-yellow-300{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:bg-yellow-400{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:bg-yellow-500{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:bg-yellow-600{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:bg-yellow-700{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:bg-yellow-800{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:bg-yellow-900{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:bg-green-100{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:bg-green-200{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:bg-green-300{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:bg-green-400{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:bg-green-500{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:bg-green-600{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:bg-green-700{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:bg-green-800{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:bg-green-900{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:bg-teal-100{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:bg-teal-300{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:bg-teal-400{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:bg-teal-500{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:bg-teal-700{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:bg-teal-900{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:bg-blue-100{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:bg-blue-200{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:bg-blue-300{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:bg-blue-400{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:bg-blue-500{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:bg-blue-600{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:bg-blue-700{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:bg-blue-800{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:bg-blue-900{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:bg-indigo-100{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:bg-indigo-200{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:bg-indigo-300{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:bg-indigo-400{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:bg-indigo-500{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:bg-indigo-600{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:bg-indigo-700{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:bg-indigo-800{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:bg-indigo-900{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:bg-purple-100{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:bg-purple-200{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:bg-purple-300{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:bg-purple-400{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:bg-purple-500{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:bg-purple-600{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:bg-purple-700{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:bg-purple-800{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:bg-purple-900{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:bg-pink-100{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:bg-pink-200{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:bg-pink-300{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:bg-pink-400{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:bg-pink-500{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:bg-pink-600{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:bg-pink-700{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:bg-pink-800{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:bg-pink-900{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:bg-primary{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:bg-secondary{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:bg-greenish-blue{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:bg-blue-gray{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:hover\:bg-transparent:hover{background-color:transparent}.xxl\:hover\:bg-current:hover{background-color:currentColor}.xxl\:hover\:bg-black:hover{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:hover\:bg-white:hover{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:hover\:bg-gray-200:hover{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:hover\:bg-gray-400:hover{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:hover\:bg-gray-600:hover{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:hover\:bg-gray-700:hover{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:hover\:bg-gray-900:hover{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:hover\:bg-red-100:hover{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:hover\:bg-red-200:hover{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:hover\:bg-red-300:hover{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:hover\:bg-red-400:hover{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:hover\:bg-red-500:hover{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:hover\:bg-red-600:hover{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:hover\:bg-red-700:hover{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:hover\:bg-red-800:hover{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:hover\:bg-red-900:hover{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:hover\:bg-orange-100:hover{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:hover\:bg-orange-200:hover{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:hover\:bg-orange-300:hover{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:hover\:bg-orange-400:hover{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:hover\:bg-orange-500:hover{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:hover\:bg-orange-600:hover{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:hover\:bg-orange-700:hover{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:hover\:bg-orange-800:hover{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:hover\:bg-orange-900:hover{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:hover\:bg-yellow-100:hover{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:hover\:bg-yellow-200:hover{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:hover\:bg-yellow-300:hover{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:hover\:bg-yellow-400:hover{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:hover\:bg-yellow-500:hover{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:hover\:bg-yellow-600:hover{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:hover\:bg-yellow-700:hover{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:hover\:bg-yellow-800:hover{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:hover\:bg-yellow-900:hover{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:hover\:bg-green-100:hover{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:hover\:bg-green-200:hover{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:hover\:bg-green-300:hover{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:hover\:bg-green-400:hover{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:hover\:bg-green-500:hover{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:hover\:bg-green-600:hover{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:hover\:bg-green-700:hover{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:hover\:bg-green-800:hover{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:hover\:bg-green-900:hover{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:hover\:bg-teal-100:hover{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:hover\:bg-teal-200:hover{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:hover\:bg-teal-300:hover{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:hover\:bg-teal-400:hover{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:hover\:bg-teal-600:hover{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:hover\:bg-teal-700:hover{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:hover\:bg-teal-800:hover{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:hover\:bg-blue-100:hover{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:hover\:bg-blue-200:hover{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:hover\:bg-blue-300:hover{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:hover\:bg-blue-400:hover{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:hover\:bg-blue-500:hover{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:hover\:bg-blue-600:hover{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:hover\:bg-blue-700:hover{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:hover\:bg-blue-800:hover{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:hover\:bg-blue-900:hover{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:hover\:bg-indigo-100:hover{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:hover\:bg-indigo-200:hover{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:hover\:bg-indigo-300:hover{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:hover\:bg-indigo-400:hover{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:hover\:bg-indigo-700:hover{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:hover\:bg-indigo-800:hover{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:hover\:bg-indigo-900:hover{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:hover\:bg-purple-100:hover{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:hover\:bg-purple-200:hover{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:hover\:bg-purple-300:hover{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:hover\:bg-purple-400:hover{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:hover\:bg-purple-500:hover{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:hover\:bg-purple-600:hover{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:hover\:bg-purple-800:hover{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:hover\:bg-purple-900:hover{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:hover\:bg-pink-100:hover{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:hover\:bg-pink-200:hover{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:hover\:bg-pink-300:hover{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:hover\:bg-pink-400:hover{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:hover\:bg-pink-500:hover{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:hover\:bg-pink-600:hover{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:hover\:bg-pink-700:hover{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:hover\:bg-pink-800:hover{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:hover\:bg-pink-900:hover{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:hover\:bg-primary:hover{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:hover\:bg-secondary:hover{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:hover\:bg-greenish-blue:hover{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:hover\:bg-blue-gray:hover{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:focus\:bg-transparent:focus{background-color:transparent}.xxl\:focus\:bg-current:focus{background-color:currentColor}.xxl\:focus\:bg-black:focus{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.xxl\:focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.xxl\:focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.xxl\:focus\:bg-gray-200:focus{--bg-opacity:1;background-color:#edf2f7;background-color:rgba(237,242,247,var(--bg-opacity))}.xxl\:focus\:bg-gray-300:focus{--bg-opacity:1;background-color:#e2e8f0;background-color:rgba(226,232,240,var(--bg-opacity))}.xxl\:focus\:bg-gray-400:focus{--bg-opacity:1;background-color:#cbd5e0;background-color:rgba(203,213,224,var(--bg-opacity))}.xxl\:focus\:bg-gray-500:focus{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.xxl\:focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.xxl\:focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.xxl\:focus\:bg-gray-800:focus{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.xxl\:focus\:bg-gray-900:focus{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.xxl\:focus\:bg-red-100:focus{--bg-opacity:1;background-color:#fff5f5;background-color:rgba(255,245,245,var(--bg-opacity))}.xxl\:focus\:bg-red-200:focus{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.xxl\:focus\:bg-red-300:focus{--bg-opacity:1;background-color:#feb2b2;background-color:rgba(254,178,178,var(--bg-opacity))}.xxl\:focus\:bg-red-400:focus{--bg-opacity:1;background-color:#fc8181;background-color:rgba(252,129,129,var(--bg-opacity))}.xxl\:focus\:bg-red-500:focus{--bg-opacity:1;background-color:#f56565;background-color:rgba(245,101,101,var(--bg-opacity))}.xxl\:focus\:bg-red-600:focus{--bg-opacity:1;background-color:#e53e3e;background-color:rgba(229,62,62,var(--bg-opacity))}.xxl\:focus\:bg-red-700:focus{--bg-opacity:1;background-color:#c53030;background-color:rgba(197,48,48,var(--bg-opacity))}.xxl\:focus\:bg-red-800:focus{--bg-opacity:1;background-color:#9b2c2c;background-color:rgba(155,44,44,var(--bg-opacity))}.xxl\:focus\:bg-red-900:focus{--bg-opacity:1;background-color:#742a2a;background-color:rgba(116,42,42,var(--bg-opacity))}.xxl\:focus\:bg-orange-100:focus{--bg-opacity:1;background-color:#fffaf0;background-color:rgba(255,250,240,var(--bg-opacity))}.xxl\:focus\:bg-orange-200:focus{--bg-opacity:1;background-color:#feebc8;background-color:rgba(254,235,200,var(--bg-opacity))}.xxl\:focus\:bg-orange-300:focus{--bg-opacity:1;background-color:#fbd38d;background-color:rgba(251,211,141,var(--bg-opacity))}.xxl\:focus\:bg-orange-400:focus{--bg-opacity:1;background-color:#f6ad55;background-color:rgba(246,173,85,var(--bg-opacity))}.xxl\:focus\:bg-orange-500:focus{--bg-opacity:1;background-color:#ed8936;background-color:rgba(237,137,54,var(--bg-opacity))}.xxl\:focus\:bg-orange-600:focus{--bg-opacity:1;background-color:#dd6b20;background-color:rgba(221,107,32,var(--bg-opacity))}.xxl\:focus\:bg-orange-700:focus{--bg-opacity:1;background-color:#c05621;background-color:rgba(192,86,33,var(--bg-opacity))}.xxl\:focus\:bg-orange-800:focus{--bg-opacity:1;background-color:#9c4221;background-color:rgba(156,66,33,var(--bg-opacity))}.xxl\:focus\:bg-orange-900:focus{--bg-opacity:1;background-color:#7b341e;background-color:rgba(123,52,30,var(--bg-opacity))}.xxl\:focus\:bg-yellow-100:focus{--bg-opacity:1;background-color:ivory;background-color:rgba(255,255,240,var(--bg-opacity))}.xxl\:focus\:bg-yellow-200:focus{--bg-opacity:1;background-color:#fefcbf;background-color:rgba(254,252,191,var(--bg-opacity))}.xxl\:focus\:bg-yellow-300:focus{--bg-opacity:1;background-color:#faf089;background-color:rgba(250,240,137,var(--bg-opacity))}.xxl\:focus\:bg-yellow-400:focus{--bg-opacity:1;background-color:#f6e05e;background-color:rgba(246,224,94,var(--bg-opacity))}.xxl\:focus\:bg-yellow-500:focus{--bg-opacity:1;background-color:#ecc94b;background-color:rgba(236,201,75,var(--bg-opacity))}.xxl\:focus\:bg-yellow-600:focus{--bg-opacity:1;background-color:#d69e2e;background-color:rgba(214,158,46,var(--bg-opacity))}.xxl\:focus\:bg-yellow-700:focus{--bg-opacity:1;background-color:#b7791f;background-color:rgba(183,121,31,var(--bg-opacity))}.xxl\:focus\:bg-yellow-800:focus{--bg-opacity:1;background-color:#975a16;background-color:rgba(151,90,22,var(--bg-opacity))}.xxl\:focus\:bg-yellow-900:focus{--bg-opacity:1;background-color:#744210;background-color:rgba(116,66,16,var(--bg-opacity))}.xxl\:focus\:bg-green-100:focus{--bg-opacity:1;background-color:#f0fff4;background-color:rgba(240,255,244,var(--bg-opacity))}.xxl\:focus\:bg-green-200:focus{--bg-opacity:1;background-color:#c6f6d5;background-color:rgba(198,246,213,var(--bg-opacity))}.xxl\:focus\:bg-green-300:focus{--bg-opacity:1;background-color:#9ae6b4;background-color:rgba(154,230,180,var(--bg-opacity))}.xxl\:focus\:bg-green-400:focus{--bg-opacity:1;background-color:#68d391;background-color:rgba(104,211,145,var(--bg-opacity))}.xxl\:focus\:bg-green-500:focus{--bg-opacity:1;background-color:#48bb78;background-color:rgba(72,187,120,var(--bg-opacity))}.xxl\:focus\:bg-green-600:focus{--bg-opacity:1;background-color:#38a169;background-color:rgba(56,161,105,var(--bg-opacity))}.xxl\:focus\:bg-green-700:focus{--bg-opacity:1;background-color:#2f855a;background-color:rgba(47,133,90,var(--bg-opacity))}.xxl\:focus\:bg-green-800:focus{--bg-opacity:1;background-color:#276749;background-color:rgba(39,103,73,var(--bg-opacity))}.xxl\:focus\:bg-green-900:focus{--bg-opacity:1;background-color:#22543d;background-color:rgba(34,84,61,var(--bg-opacity))}.xxl\:focus\:bg-teal-100:focus{--bg-opacity:1;background-color:#e6fffa;background-color:rgba(230,255,250,var(--bg-opacity))}.xxl\:focus\:bg-teal-200:focus{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.xxl\:focus\:bg-teal-300:focus{--bg-opacity:1;background-color:#81e6d9;background-color:rgba(129,230,217,var(--bg-opacity))}.xxl\:focus\:bg-teal-400:focus{--bg-opacity:1;background-color:#4fd1c5;background-color:rgba(79,209,197,var(--bg-opacity))}.xxl\:focus\:bg-teal-500:focus{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.xxl\:focus\:bg-teal-600:focus{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.xxl\:focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.xxl\:focus\:bg-teal-800:focus{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.xxl\:focus\:bg-teal-900:focus{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.xxl\:focus\:bg-blue-100:focus{--bg-opacity:1;background-color:#ebf8ff;background-color:rgba(235,248,255,var(--bg-opacity))}.xxl\:focus\:bg-blue-200:focus{--bg-opacity:1;background-color:#bee3f8;background-color:rgba(190,227,248,var(--bg-opacity))}.xxl\:focus\:bg-blue-300:focus{--bg-opacity:1;background-color:#90cdf4;background-color:rgba(144,205,244,var(--bg-opacity))}.xxl\:focus\:bg-blue-400:focus{--bg-opacity:1;background-color:#63b3ed;background-color:rgba(99,179,237,var(--bg-opacity))}.xxl\:focus\:bg-blue-500:focus{--bg-opacity:1;background-color:#4299e1;background-color:rgba(66,153,225,var(--bg-opacity))}.xxl\:focus\:bg-blue-600:focus{--bg-opacity:1;background-color:#3182ce;background-color:rgba(49,130,206,var(--bg-opacity))}.xxl\:focus\:bg-blue-700:focus{--bg-opacity:1;background-color:#2b6cb0;background-color:rgba(43,108,176,var(--bg-opacity))}.xxl\:focus\:bg-blue-800:focus{--bg-opacity:1;background-color:#2c5282;background-color:rgba(44,82,130,var(--bg-opacity))}.xxl\:focus\:bg-blue-900:focus{--bg-opacity:1;background-color:#2a4365;background-color:rgba(42,67,101,var(--bg-opacity))}.xxl\:focus\:bg-indigo-100:focus{--bg-opacity:1;background-color:#ebf4ff;background-color:rgba(235,244,255,var(--bg-opacity))}.xxl\:focus\:bg-indigo-200:focus{--bg-opacity:1;background-color:#c3dafe;background-color:rgba(195,218,254,var(--bg-opacity))}.xxl\:focus\:bg-indigo-300:focus{--bg-opacity:1;background-color:#a3bffa;background-color:rgba(163,191,250,var(--bg-opacity))}.xxl\:focus\:bg-indigo-400:focus{--bg-opacity:1;background-color:#7f9cf5;background-color:rgba(127,156,245,var(--bg-opacity))}.xxl\:focus\:bg-indigo-500:focus{--bg-opacity:1;background-color:#667eea;background-color:rgba(102,126,234,var(--bg-opacity))}.xxl\:focus\:bg-indigo-600:focus{--bg-opacity:1;background-color:#5a67d8;background-color:rgba(90,103,216,var(--bg-opacity))}.xxl\:focus\:bg-indigo-700:focus{--bg-opacity:1;background-color:#4c51bf;background-color:rgba(76,81,191,var(--bg-opacity))}.xxl\:focus\:bg-indigo-800:focus{--bg-opacity:1;background-color:#434190;background-color:rgba(67,65,144,var(--bg-opacity))}.xxl\:focus\:bg-indigo-900:focus{--bg-opacity:1;background-color:#3c366b;background-color:rgba(60,54,107,var(--bg-opacity))}.xxl\:focus\:bg-purple-100:focus{--bg-opacity:1;background-color:#faf5ff;background-color:rgba(250,245,255,var(--bg-opacity))}.xxl\:focus\:bg-purple-200:focus{--bg-opacity:1;background-color:#e9d8fd;background-color:rgba(233,216,253,var(--bg-opacity))}.xxl\:focus\:bg-purple-300:focus{--bg-opacity:1;background-color:#d6bcfa;background-color:rgba(214,188,250,var(--bg-opacity))}.xxl\:focus\:bg-purple-400:focus{--bg-opacity:1;background-color:#b794f4;background-color:rgba(183,148,244,var(--bg-opacity))}.xxl\:focus\:bg-purple-500:focus{--bg-opacity:1;background-color:#9f7aea;background-color:rgba(159,122,234,var(--bg-opacity))}.xxl\:focus\:bg-purple-600:focus{--bg-opacity:1;background-color:#805ad5;background-color:rgba(128,90,213,var(--bg-opacity))}.xxl\:focus\:bg-purple-700:focus{--bg-opacity:1;background-color:#6b46c1;background-color:rgba(107,70,193,var(--bg-opacity))}.xxl\:focus\:bg-purple-800:focus{--bg-opacity:1;background-color:#553c9a;background-color:rgba(85,60,154,var(--bg-opacity))}.xxl\:focus\:bg-purple-900:focus{--bg-opacity:1;background-color:#44337a;background-color:rgba(68,51,122,var(--bg-opacity))}.xxl\:focus\:bg-pink-100:focus{--bg-opacity:1;background-color:#fff5f7;background-color:rgba(255,245,247,var(--bg-opacity))}.xxl\:focus\:bg-pink-200:focus{--bg-opacity:1;background-color:#fed7e2;background-color:rgba(254,215,226,var(--bg-opacity))}.xxl\:focus\:bg-pink-300:focus{--bg-opacity:1;background-color:#fbb6ce;background-color:rgba(251,182,206,var(--bg-opacity))}.xxl\:focus\:bg-pink-400:focus{--bg-opacity:1;background-color:#f687b3;background-color:rgba(246,135,179,var(--bg-opacity))}.xxl\:focus\:bg-pink-500:focus{--bg-opacity:1;background-color:#ed64a6;background-color:rgba(237,100,166,var(--bg-opacity))}.xxl\:focus\:bg-pink-600:focus{--bg-opacity:1;background-color:#d53f8c;background-color:rgba(213,63,140,var(--bg-opacity))}.xxl\:focus\:bg-pink-700:focus{--bg-opacity:1;background-color:#b83280;background-color:rgba(184,50,128,var(--bg-opacity))}.xxl\:focus\:bg-pink-800:focus{--bg-opacity:1;background-color:#97266d;background-color:rgba(151,38,109,var(--bg-opacity))}.xxl\:focus\:bg-pink-900:focus{--bg-opacity:1;background-color:#702459;background-color:rgba(112,36,89,var(--bg-opacity))}.xxl\:focus\:bg-primary:focus{--bg-opacity:1;background-color:#00d1ff;background-color:rgba(0,209,255,var(--bg-opacity))}.xxl\:focus\:bg-secondary:focus{--bg-opacity:1;background-color:#e077ff;background-color:rgba(224,119,255,var(--bg-opacity))}.xxl\:focus\:bg-greenish-blue:focus{--bg-opacity:1;background-color:#adffed;background-color:rgba(173,255,237,var(--bg-opacity))}.xxl\:focus\:bg-blue-gray:focus{--bg-opacity:1;background-color:#cfe1e6;background-color:rgba(207,225,230,var(--bg-opacity))}.xxl\:bg-none{background-image:none}.xxl\:bg-gradient-to-t{background-image:linear-gradient(0deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--gradient-color-stops))}.xxl\:bg-gradient-to-r{background-image:linear-gradient(90deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--gradient-color-stops))}.xxl\:bg-gradient-to-b{background-image:linear-gradient(180deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--gradient-color-stops))}.xxl\:bg-gradient-to-l{background-image:linear-gradient(270deg,var(--gradient-color-stops))}.xxl\:bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--gradient-color-stops))}.xxl\:from-transparent{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:from-current{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:from-black{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:from-white{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:from-gray-100{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:from-gray-200{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:from-gray-300{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:from-gray-400{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:from-gray-500{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:from-gray-600{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:from-gray-700{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:from-gray-800{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:from-gray-900{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:from-red-100{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:from-red-200{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:from-red-300{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:from-red-400{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:from-red-500{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:from-red-600{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:from-red-700{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:from-red-800{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:from-red-900{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:from-orange-100{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:from-orange-200{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:from-orange-300{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:from-orange-400{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:from-orange-500{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:from-orange-600{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:from-orange-700{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:from-orange-800{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:from-orange-900{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:from-yellow-100{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:from-yellow-200{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:from-yellow-300{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:from-yellow-400{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:from-yellow-500{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:from-yellow-600{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:from-yellow-700{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:from-yellow-800{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:from-yellow-900{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:from-green-100{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:from-green-200{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:from-green-300{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:from-green-400{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:from-green-500{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:from-green-600{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:from-green-700{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:from-green-800{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:from-green-900{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:from-teal-100{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:from-teal-200{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:from-teal-300{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:from-teal-400{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:from-teal-500{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:from-teal-600{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:from-teal-700{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:from-teal-800{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:from-teal-900{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:from-blue-100{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:from-blue-200{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:from-blue-300{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:from-blue-400{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:from-blue-500{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:from-blue-600{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:from-blue-700{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:from-blue-800{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:from-blue-900{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:from-indigo-100{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:from-indigo-200{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:from-indigo-300{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:from-indigo-400{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:from-indigo-500{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:from-indigo-600{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:from-indigo-700{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:from-indigo-800{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:from-indigo-900{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:from-purple-100{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:from-purple-200{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:from-purple-300{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:from-purple-400{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:from-purple-500{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:from-purple-600{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:from-purple-700{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:from-purple-800{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:from-purple-900{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:from-pink-100{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:from-pink-200{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:from-pink-300{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:from-pink-400{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:from-pink-500{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:from-pink-600{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:from-pink-700{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:from-pink-800{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:from-pink-900{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:from-primary{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:from-secondary{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:from-greenish-blue{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:from-blue-gray{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:via-transparent{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:via-current{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:via-black{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:via-white{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:via-gray-100{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:via-gray-200{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:via-gray-300{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:via-gray-400{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:via-gray-500{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:via-gray-600{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:via-gray-700{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:via-gray-800{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:via-gray-900{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:via-red-100{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:via-red-200{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:via-red-300{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:via-red-400{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:via-red-500{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:via-red-600{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:via-red-700{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:via-red-800{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:via-red-900{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:via-orange-100{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:via-orange-200{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:via-orange-300{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:via-orange-400{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:via-orange-500{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:via-orange-600{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:via-orange-700{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:via-orange-800{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:via-orange-900{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:via-yellow-100{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:via-yellow-200{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:via-yellow-300{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:via-yellow-400{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:via-yellow-500{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:via-yellow-600{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:via-yellow-700{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:via-yellow-800{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:via-yellow-900{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:via-green-100{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:via-green-200{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:via-green-300{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:via-green-400{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:via-green-500{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:via-green-600{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:via-green-700{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:via-green-800{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:via-green-900{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:via-teal-100{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:via-teal-200{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:via-teal-300{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:via-teal-400{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:via-teal-500{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:via-teal-600{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:via-teal-700{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:via-teal-800{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:via-teal-900{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:via-blue-100{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:via-blue-200{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:via-blue-300{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:via-blue-400{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:via-blue-500{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:via-blue-600{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:via-blue-700{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:via-blue-800{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:via-blue-900{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:via-indigo-100{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:via-indigo-200{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:via-indigo-300{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:via-indigo-400{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:via-indigo-500{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:via-indigo-600{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:via-indigo-700{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:via-indigo-800{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:via-indigo-900{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:via-purple-100{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:via-purple-200{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:via-purple-300{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:via-purple-400{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:via-purple-500{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:via-purple-600{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:via-purple-700{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:via-purple-800{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:via-purple-900{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:via-pink-100{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:via-pink-200{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:via-pink-300{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:via-pink-400{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:via-pink-500{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:via-pink-600{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:via-pink-700{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:via-pink-800{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:via-pink-900{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:via-primary{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:via-secondary{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:via-greenish-blue{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:via-blue-gray{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:to-transparent{--gradient-to-color:transparent}.xxl\:to-current{--gradient-to-color:currentColor}.xxl\:to-black{--gradient-to-color:#000}.xxl\:to-white{--gradient-to-color:#fff}.xxl\:to-gray-100{--gradient-to-color:#f7fafc}.xxl\:to-gray-200{--gradient-to-color:#edf2f7}.xxl\:to-gray-300{--gradient-to-color:#e2e8f0}.xxl\:to-gray-400{--gradient-to-color:#cbd5e0}.xxl\:to-gray-500{--gradient-to-color:#a0aec0}.xxl\:to-gray-600{--gradient-to-color:#718096}.xxl\:to-gray-700{--gradient-to-color:#4a5568}.xxl\:to-gray-800{--gradient-to-color:#2d3748}.xxl\:to-gray-900{--gradient-to-color:#1a202c}.xxl\:to-red-100{--gradient-to-color:#fff5f5}.xxl\:to-red-200{--gradient-to-color:#fed7d7}.xxl\:to-red-300{--gradient-to-color:#feb2b2}.xxl\:to-red-400{--gradient-to-color:#fc8181}.xxl\:to-red-500{--gradient-to-color:#f56565}.xxl\:to-red-600{--gradient-to-color:#e53e3e}.xxl\:to-red-700{--gradient-to-color:#c53030}.xxl\:to-red-800{--gradient-to-color:#9b2c2c}.xxl\:to-red-900{--gradient-to-color:#742a2a}.xxl\:to-orange-100{--gradient-to-color:#fffaf0}.xxl\:to-orange-200{--gradient-to-color:#feebc8}.xxl\:to-orange-300{--gradient-to-color:#fbd38d}.xxl\:to-orange-400{--gradient-to-color:#f6ad55}.xxl\:to-orange-500{--gradient-to-color:#ed8936}.xxl\:to-orange-600{--gradient-to-color:#dd6b20}.xxl\:to-orange-700{--gradient-to-color:#c05621}.xxl\:to-orange-800{--gradient-to-color:#9c4221}.xxl\:to-orange-900{--gradient-to-color:#7b341e}.xxl\:to-yellow-100{--gradient-to-color:ivory}.xxl\:to-yellow-200{--gradient-to-color:#fefcbf}.xxl\:to-yellow-300{--gradient-to-color:#faf089}.xxl\:to-yellow-400{--gradient-to-color:#f6e05e}.xxl\:to-yellow-500{--gradient-to-color:#ecc94b}.xxl\:to-yellow-600{--gradient-to-color:#d69e2e}.xxl\:to-yellow-700{--gradient-to-color:#b7791f}.xxl\:to-yellow-800{--gradient-to-color:#975a16}.xxl\:to-yellow-900{--gradient-to-color:#744210}.xxl\:to-green-100{--gradient-to-color:#f0fff4}.xxl\:to-green-200{--gradient-to-color:#c6f6d5}.xxl\:to-green-300{--gradient-to-color:#9ae6b4}.xxl\:to-green-400{--gradient-to-color:#68d391}.xxl\:to-green-500{--gradient-to-color:#48bb78}.xxl\:to-green-600{--gradient-to-color:#38a169}.xxl\:to-green-700{--gradient-to-color:#2f855a}.xxl\:to-green-800{--gradient-to-color:#276749}.xxl\:to-green-900{--gradient-to-color:#22543d}.xxl\:to-teal-100{--gradient-to-color:#e6fffa}.xxl\:to-teal-200{--gradient-to-color:#b2f5ea}.xxl\:to-teal-300{--gradient-to-color:#81e6d9}.xxl\:to-teal-400{--gradient-to-color:#4fd1c5}.xxl\:to-teal-500{--gradient-to-color:#38b2ac}.xxl\:to-teal-600{--gradient-to-color:#319795}.xxl\:to-teal-700{--gradient-to-color:#2c7a7b}.xxl\:to-teal-800{--gradient-to-color:#285e61}.xxl\:to-teal-900{--gradient-to-color:#234e52}.xxl\:to-blue-100{--gradient-to-color:#ebf8ff}.xxl\:to-blue-200{--gradient-to-color:#bee3f8}.xxl\:to-blue-300{--gradient-to-color:#90cdf4}.xxl\:to-blue-400{--gradient-to-color:#63b3ed}.xxl\:to-blue-500{--gradient-to-color:#4299e1}.xxl\:to-blue-600{--gradient-to-color:#3182ce}.xxl\:to-blue-700{--gradient-to-color:#2b6cb0}.xxl\:to-blue-800{--gradient-to-color:#2c5282}.xxl\:to-blue-900{--gradient-to-color:#2a4365}.xxl\:to-indigo-100{--gradient-to-color:#ebf4ff}.xxl\:to-indigo-200{--gradient-to-color:#c3dafe}.xxl\:to-indigo-300{--gradient-to-color:#a3bffa}.xxl\:to-indigo-400{--gradient-to-color:#7f9cf5}.xxl\:to-indigo-500{--gradient-to-color:#667eea}.xxl\:to-indigo-600{--gradient-to-color:#5a67d8}.xxl\:to-indigo-700{--gradient-to-color:#4c51bf}.xxl\:to-indigo-800{--gradient-to-color:#434190}.xxl\:to-indigo-900{--gradient-to-color:#3c366b}.xxl\:to-purple-100{--gradient-to-color:#faf5ff}.xxl\:to-purple-200{--gradient-to-color:#e9d8fd}.xxl\:to-purple-300{--gradient-to-color:#d6bcfa}.xxl\:to-purple-400{--gradient-to-color:#b794f4}.xxl\:to-purple-500{--gradient-to-color:#9f7aea}.xxl\:to-purple-600{--gradient-to-color:#805ad5}.xxl\:to-purple-700{--gradient-to-color:#6b46c1}.xxl\:to-purple-800{--gradient-to-color:#553c9a}.xxl\:to-purple-900{--gradient-to-color:#44337a}.xxl\:to-pink-100{--gradient-to-color:#fff5f7}.xxl\:to-pink-200{--gradient-to-color:#fed7e2}.xxl\:to-pink-300{--gradient-to-color:#fbb6ce}.xxl\:to-pink-400{--gradient-to-color:#f687b3}.xxl\:to-pink-500{--gradient-to-color:#ed64a6}.xxl\:to-pink-600{--gradient-to-color:#d53f8c}.xxl\:to-pink-700{--gradient-to-color:#b83280}.xxl\:to-pink-800{--gradient-to-color:#97266d}.xxl\:to-pink-900{--gradient-to-color:#702459}.xxl\:to-primary{--gradient-to-color:#00d1ff}.xxl\:to-secondary{--gradient-to-color:#e077ff}.xxl\:to-greenish-blue{--gradient-to-color:#adffed}.xxl\:to-blue-gray{--gradient-to-color:#cfe1e6}.xxl\:hover\:from-transparent:hover{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:hover\:from-current:hover{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:from-black:hover{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:hover\:from-white:hover{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:from-gray-100:hover{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:hover\:from-gray-200:hover{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:hover\:from-gray-300:hover{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:hover\:from-gray-400:hover{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:hover\:from-gray-500:hover{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:hover\:from-gray-600:hover{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:hover\:from-gray-700:hover{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:hover\:from-gray-800:hover{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:hover\:from-gray-900:hover{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:hover\:from-red-100:hover{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:hover\:from-red-200:hover{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:hover\:from-red-300:hover{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:hover\:from-red-400:hover{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:hover\:from-red-500:hover{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:hover\:from-red-600:hover{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:hover\:from-red-700:hover{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:hover\:from-red-800:hover{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:hover\:from-red-900:hover{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:hover\:from-orange-100:hover{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:hover\:from-orange-200:hover{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:hover\:from-orange-300:hover{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:hover\:from-orange-400:hover{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:hover\:from-orange-500:hover{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:hover\:from-orange-600:hover{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:hover\:from-orange-700:hover{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:hover\:from-orange-800:hover{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:hover\:from-orange-900:hover{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:hover\:from-yellow-100:hover{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:hover\:from-yellow-200:hover{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:hover\:from-yellow-300:hover{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:hover\:from-yellow-400:hover{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:hover\:from-yellow-500:hover{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:hover\:from-yellow-600:hover{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:hover\:from-yellow-700:hover{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:hover\:from-yellow-800:hover{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:hover\:from-yellow-900:hover{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:hover\:from-green-100:hover{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:hover\:from-green-200:hover{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:hover\:from-green-300:hover{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:hover\:from-green-400:hover{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:hover\:from-green-500:hover{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:hover\:from-green-600:hover{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:hover\:from-green-700:hover{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:hover\:from-green-800:hover{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:hover\:from-green-900:hover{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:hover\:from-teal-100:hover{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:hover\:from-teal-200:hover{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:hover\:from-teal-300:hover{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:hover\:from-teal-400:hover{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:hover\:from-teal-500:hover{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:hover\:from-teal-600:hover{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:hover\:from-teal-700:hover{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:hover\:from-teal-800:hover{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:hover\:from-teal-900:hover{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:hover\:from-blue-100:hover{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:hover\:from-blue-200:hover{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:hover\:from-blue-300:hover{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:hover\:from-blue-400:hover{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:hover\:from-blue-500:hover{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:hover\:from-blue-600:hover{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:hover\:from-blue-700:hover{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:hover\:from-blue-800:hover{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:hover\:from-blue-900:hover{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:hover\:from-indigo-100:hover{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:hover\:from-indigo-200:hover{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:hover\:from-indigo-300:hover{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:hover\:from-indigo-400:hover{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:hover\:from-indigo-500:hover{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:hover\:from-indigo-600:hover{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:hover\:from-indigo-700:hover{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:hover\:from-indigo-800:hover{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:hover\:from-indigo-900:hover{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:hover\:from-purple-100:hover{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:hover\:from-purple-200:hover{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:hover\:from-purple-300:hover{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:hover\:from-purple-400:hover{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:hover\:from-purple-500:hover{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:hover\:from-purple-600:hover{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:hover\:from-purple-700:hover{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:hover\:from-purple-800:hover{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:hover\:from-purple-900:hover{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:hover\:from-pink-100:hover{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:hover\:from-pink-200:hover{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:hover\:from-pink-300:hover{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:hover\:from-pink-400:hover{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:hover\:from-pink-500:hover{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:hover\:from-pink-600:hover{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:hover\:from-pink-700:hover{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:hover\:from-pink-800:hover{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:hover\:from-pink-900:hover{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:hover\:from-primary:hover{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:hover\:from-secondary:hover{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:hover\:from-greenish-blue:hover{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:hover\:from-blue-gray:hover{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:hover\:via-transparent:hover{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:hover\:via-current:hover{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:via-black:hover{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:hover\:via-white:hover{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:hover\:via-gray-100:hover{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:hover\:via-gray-200:hover{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:hover\:via-gray-300:hover{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:hover\:via-gray-400:hover{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:hover\:via-gray-500:hover{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:hover\:via-gray-600:hover{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:hover\:via-gray-700:hover{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:hover\:via-gray-800:hover{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:hover\:via-gray-900:hover{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:hover\:via-red-100:hover{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:hover\:via-red-200:hover{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:hover\:via-red-300:hover{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:hover\:via-red-400:hover{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:hover\:via-red-500:hover{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:hover\:via-red-600:hover{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:hover\:via-red-700:hover{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:hover\:via-red-800:hover{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:hover\:via-red-900:hover{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:hover\:via-orange-100:hover{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:hover\:via-orange-200:hover{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:hover\:via-orange-300:hover{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:hover\:via-orange-400:hover{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:hover\:via-orange-500:hover{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:hover\:via-orange-600:hover{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:hover\:via-orange-700:hover{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:hover\:via-orange-800:hover{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:hover\:via-orange-900:hover{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:hover\:via-yellow-100:hover{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:hover\:via-yellow-200:hover{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:hover\:via-yellow-300:hover{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:hover\:via-yellow-400:hover{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:hover\:via-yellow-500:hover{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:hover\:via-yellow-600:hover{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:hover\:via-yellow-700:hover{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:hover\:via-yellow-800:hover{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:hover\:via-yellow-900:hover{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:hover\:via-green-100:hover{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:hover\:via-green-200:hover{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:hover\:via-green-300:hover{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:hover\:via-green-400:hover{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:hover\:via-green-500:hover{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:hover\:via-green-600:hover{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:hover\:via-green-700:hover{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:hover\:via-green-800:hover{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:hover\:via-green-900:hover{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:hover\:via-teal-100:hover{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:hover\:via-teal-200:hover{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:hover\:via-teal-300:hover{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:hover\:via-teal-400:hover{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:hover\:via-teal-500:hover{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:hover\:via-teal-600:hover{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:hover\:via-teal-700:hover{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:hover\:via-teal-800:hover{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:hover\:via-teal-900:hover{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:hover\:via-blue-100:hover{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:hover\:via-blue-200:hover{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:hover\:via-blue-300:hover{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:hover\:via-blue-400:hover{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:hover\:via-blue-500:hover{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:hover\:via-blue-600:hover{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:hover\:via-blue-700:hover{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:hover\:via-blue-800:hover{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:hover\:via-blue-900:hover{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:hover\:via-indigo-100:hover{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:hover\:via-indigo-200:hover{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:hover\:via-indigo-300:hover{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:hover\:via-indigo-400:hover{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:hover\:via-indigo-500:hover{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:hover\:via-indigo-600:hover{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:hover\:via-indigo-700:hover{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:hover\:via-indigo-800:hover{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:hover\:via-indigo-900:hover{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:hover\:via-purple-100:hover{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:hover\:via-purple-200:hover{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:hover\:via-purple-300:hover{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:hover\:via-purple-400:hover{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:hover\:via-purple-500:hover{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:hover\:via-purple-600:hover{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:hover\:via-purple-700:hover{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:hover\:via-purple-800:hover{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:hover\:via-purple-900:hover{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:hover\:via-pink-100:hover{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:hover\:via-pink-200:hover{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:hover\:via-pink-300:hover{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:hover\:via-pink-400:hover{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:hover\:via-pink-500:hover{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:hover\:via-pink-600:hover{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:hover\:via-pink-700:hover{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:hover\:via-pink-800:hover{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:hover\:via-pink-900:hover{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:hover\:via-primary:hover{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:hover\:via-secondary:hover{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:hover\:via-greenish-blue:hover{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:hover\:via-blue-gray:hover{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:hover\:to-transparent:hover{--gradient-to-color:transparent}.xxl\:hover\:to-current:hover{--gradient-to-color:currentColor}.xxl\:hover\:to-black:hover{--gradient-to-color:#000}.xxl\:hover\:to-white:hover{--gradient-to-color:#fff}.xxl\:hover\:to-gray-100:hover{--gradient-to-color:#f7fafc}.xxl\:hover\:to-gray-200:hover{--gradient-to-color:#edf2f7}.xxl\:hover\:to-gray-300:hover{--gradient-to-color:#e2e8f0}.xxl\:hover\:to-gray-400:hover{--gradient-to-color:#cbd5e0}.xxl\:hover\:to-gray-500:hover{--gradient-to-color:#a0aec0}.xxl\:hover\:to-gray-600:hover{--gradient-to-color:#718096}.xxl\:hover\:to-gray-700:hover{--gradient-to-color:#4a5568}.xxl\:hover\:to-gray-800:hover{--gradient-to-color:#2d3748}.xxl\:hover\:to-gray-900:hover{--gradient-to-color:#1a202c}.xxl\:hover\:to-red-100:hover{--gradient-to-color:#fff5f5}.xxl\:hover\:to-red-200:hover{--gradient-to-color:#fed7d7}.xxl\:hover\:to-red-300:hover{--gradient-to-color:#feb2b2}.xxl\:hover\:to-red-400:hover{--gradient-to-color:#fc8181}.xxl\:hover\:to-red-500:hover{--gradient-to-color:#f56565}.xxl\:hover\:to-red-600:hover{--gradient-to-color:#e53e3e}.xxl\:hover\:to-red-700:hover{--gradient-to-color:#c53030}.xxl\:hover\:to-red-800:hover{--gradient-to-color:#9b2c2c}.xxl\:hover\:to-red-900:hover{--gradient-to-color:#742a2a}.xxl\:hover\:to-orange-100:hover{--gradient-to-color:#fffaf0}.xxl\:hover\:to-orange-200:hover{--gradient-to-color:#feebc8}.xxl\:hover\:to-orange-300:hover{--gradient-to-color:#fbd38d}.xxl\:hover\:to-orange-400:hover{--gradient-to-color:#f6ad55}.xxl\:hover\:to-orange-500:hover{--gradient-to-color:#ed8936}.xxl\:hover\:to-orange-600:hover{--gradient-to-color:#dd6b20}.xxl\:hover\:to-orange-700:hover{--gradient-to-color:#c05621}.xxl\:hover\:to-orange-800:hover{--gradient-to-color:#9c4221}.xxl\:hover\:to-orange-900:hover{--gradient-to-color:#7b341e}.xxl\:hover\:to-yellow-100:hover{--gradient-to-color:ivory}.xxl\:hover\:to-yellow-200:hover{--gradient-to-color:#fefcbf}.xxl\:hover\:to-yellow-300:hover{--gradient-to-color:#faf089}.xxl\:hover\:to-yellow-400:hover{--gradient-to-color:#f6e05e}.xxl\:hover\:to-yellow-500:hover{--gradient-to-color:#ecc94b}.xxl\:hover\:to-yellow-600:hover{--gradient-to-color:#d69e2e}.xxl\:hover\:to-yellow-700:hover{--gradient-to-color:#b7791f}.xxl\:hover\:to-yellow-800:hover{--gradient-to-color:#975a16}.xxl\:hover\:to-yellow-900:hover{--gradient-to-color:#744210}.xxl\:hover\:to-green-100:hover{--gradient-to-color:#f0fff4}.xxl\:hover\:to-green-200:hover{--gradient-to-color:#c6f6d5}.xxl\:hover\:to-green-300:hover{--gradient-to-color:#9ae6b4}.xxl\:hover\:to-green-400:hover{--gradient-to-color:#68d391}.xxl\:hover\:to-green-500:hover{--gradient-to-color:#48bb78}.xxl\:hover\:to-green-600:hover{--gradient-to-color:#38a169}.xxl\:hover\:to-green-700:hover{--gradient-to-color:#2f855a}.xxl\:hover\:to-green-800:hover{--gradient-to-color:#276749}.xxl\:hover\:to-green-900:hover{--gradient-to-color:#22543d}.xxl\:hover\:to-teal-100:hover{--gradient-to-color:#e6fffa}.xxl\:hover\:to-teal-200:hover{--gradient-to-color:#b2f5ea}.xxl\:hover\:to-teal-300:hover{--gradient-to-color:#81e6d9}.xxl\:hover\:to-teal-400:hover{--gradient-to-color:#4fd1c5}.xxl\:hover\:to-teal-500:hover{--gradient-to-color:#38b2ac}.xxl\:hover\:to-teal-600:hover{--gradient-to-color:#319795}.xxl\:hover\:to-teal-700:hover{--gradient-to-color:#2c7a7b}.xxl\:hover\:to-teal-800:hover{--gradient-to-color:#285e61}.xxl\:hover\:to-teal-900:hover{--gradient-to-color:#234e52}.xxl\:hover\:to-blue-100:hover{--gradient-to-color:#ebf8ff}.xxl\:hover\:to-blue-200:hover{--gradient-to-color:#bee3f8}.xxl\:hover\:to-blue-300:hover{--gradient-to-color:#90cdf4}.xxl\:hover\:to-blue-400:hover{--gradient-to-color:#63b3ed}.xxl\:hover\:to-blue-500:hover{--gradient-to-color:#4299e1}.xxl\:hover\:to-blue-600:hover{--gradient-to-color:#3182ce}.xxl\:hover\:to-blue-700:hover{--gradient-to-color:#2b6cb0}.xxl\:hover\:to-blue-800:hover{--gradient-to-color:#2c5282}.xxl\:hover\:to-blue-900:hover{--gradient-to-color:#2a4365}.xxl\:hover\:to-indigo-100:hover{--gradient-to-color:#ebf4ff}.xxl\:hover\:to-indigo-200:hover{--gradient-to-color:#c3dafe}.xxl\:hover\:to-indigo-300:hover{--gradient-to-color:#a3bffa}.xxl\:hover\:to-indigo-400:hover{--gradient-to-color:#7f9cf5}.xxl\:hover\:to-indigo-500:hover{--gradient-to-color:#667eea}.xxl\:hover\:to-indigo-600:hover{--gradient-to-color:#5a67d8}.xxl\:hover\:to-indigo-700:hover{--gradient-to-color:#4c51bf}.xxl\:hover\:to-indigo-800:hover{--gradient-to-color:#434190}.xxl\:hover\:to-indigo-900:hover{--gradient-to-color:#3c366b}.xxl\:hover\:to-purple-100:hover{--gradient-to-color:#faf5ff}.xxl\:hover\:to-purple-200:hover{--gradient-to-color:#e9d8fd}.xxl\:hover\:to-purple-300:hover{--gradient-to-color:#d6bcfa}.xxl\:hover\:to-purple-400:hover{--gradient-to-color:#b794f4}.xxl\:hover\:to-purple-500:hover{--gradient-to-color:#9f7aea}.xxl\:hover\:to-purple-600:hover{--gradient-to-color:#805ad5}.xxl\:hover\:to-purple-700:hover{--gradient-to-color:#6b46c1}.xxl\:hover\:to-purple-800:hover{--gradient-to-color:#553c9a}.xxl\:hover\:to-purple-900:hover{--gradient-to-color:#44337a}.xxl\:hover\:to-pink-100:hover{--gradient-to-color:#fff5f7}.xxl\:hover\:to-pink-200:hover{--gradient-to-color:#fed7e2}.xxl\:hover\:to-pink-300:hover{--gradient-to-color:#fbb6ce}.xxl\:hover\:to-pink-400:hover{--gradient-to-color:#f687b3}.xxl\:hover\:to-pink-500:hover{--gradient-to-color:#ed64a6}.xxl\:hover\:to-pink-600:hover{--gradient-to-color:#d53f8c}.xxl\:hover\:to-pink-700:hover{--gradient-to-color:#b83280}.xxl\:hover\:to-pink-800:hover{--gradient-to-color:#97266d}.xxl\:hover\:to-pink-900:hover{--gradient-to-color:#702459}.xxl\:hover\:to-primary:hover{--gradient-to-color:#00d1ff}.xxl\:hover\:to-secondary:hover{--gradient-to-color:#e077ff}.xxl\:hover\:to-greenish-blue:hover{--gradient-to-color:#adffed}.xxl\:hover\:to-blue-gray:hover{--gradient-to-color:#cfe1e6}.xxl\:focus\:from-transparent:focus{--gradient-from-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:focus\:from-current:focus{--gradient-from-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:from-black:focus{--gradient-from-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,transparent)}.xxl\:focus\:from-white:focus{--gradient-from-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:from-gray-100:focus{--gradient-from-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:focus\:from-gray-200:focus{--gradient-from-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:focus\:from-gray-300:focus{--gradient-from-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:focus\:from-gray-400:focus{--gradient-from-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:focus\:from-gray-500:focus{--gradient-from-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:focus\:from-gray-600:focus{--gradient-from-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:focus\:from-gray-700:focus{--gradient-from-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:focus\:from-gray-800:focus{--gradient-from-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:focus\:from-gray-900:focus{--gradient-from-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:focus\:from-red-100:focus{--gradient-from-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:focus\:from-red-200:focus{--gradient-from-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:focus\:from-red-300:focus{--gradient-from-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:focus\:from-red-400:focus{--gradient-from-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:focus\:from-red-500:focus{--gradient-from-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:focus\:from-red-600:focus{--gradient-from-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:focus\:from-red-700:focus{--gradient-from-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:focus\:from-red-800:focus{--gradient-from-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:focus\:from-red-900:focus{--gradient-from-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:focus\:from-orange-100:focus{--gradient-from-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:focus\:from-orange-200:focus{--gradient-from-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:focus\:from-orange-300:focus{--gradient-from-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:focus\:from-orange-400:focus{--gradient-from-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:focus\:from-orange-500:focus{--gradient-from-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:focus\:from-orange-600:focus{--gradient-from-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:focus\:from-orange-700:focus{--gradient-from-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:focus\:from-orange-800:focus{--gradient-from-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:focus\:from-orange-900:focus{--gradient-from-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:focus\:from-yellow-100:focus{--gradient-from-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:focus\:from-yellow-200:focus{--gradient-from-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:focus\:from-yellow-300:focus{--gradient-from-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:focus\:from-yellow-400:focus{--gradient-from-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:focus\:from-yellow-500:focus{--gradient-from-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:focus\:from-yellow-600:focus{--gradient-from-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:focus\:from-yellow-700:focus{--gradient-from-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:focus\:from-yellow-800:focus{--gradient-from-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:focus\:from-yellow-900:focus{--gradient-from-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:focus\:from-green-100:focus{--gradient-from-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:focus\:from-green-200:focus{--gradient-from-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:focus\:from-green-300:focus{--gradient-from-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:focus\:from-green-400:focus{--gradient-from-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:focus\:from-green-500:focus{--gradient-from-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:focus\:from-green-600:focus{--gradient-from-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:focus\:from-green-700:focus{--gradient-from-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:focus\:from-green-800:focus{--gradient-from-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:focus\:from-green-900:focus{--gradient-from-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:focus\:from-teal-100:focus{--gradient-from-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:focus\:from-teal-200:focus{--gradient-from-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:focus\:from-teal-300:focus{--gradient-from-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:focus\:from-teal-400:focus{--gradient-from-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:focus\:from-teal-500:focus{--gradient-from-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:focus\:from-teal-600:focus{--gradient-from-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:focus\:from-teal-700:focus{--gradient-from-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:focus\:from-teal-800:focus{--gradient-from-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:focus\:from-teal-900:focus{--gradient-from-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:focus\:from-blue-100:focus{--gradient-from-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:focus\:from-blue-200:focus{--gradient-from-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:focus\:from-blue-300:focus{--gradient-from-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:focus\:from-blue-400:focus{--gradient-from-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:focus\:from-blue-500:focus{--gradient-from-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:focus\:from-blue-600:focus{--gradient-from-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:focus\:from-blue-700:focus{--gradient-from-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:focus\:from-blue-800:focus{--gradient-from-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:focus\:from-blue-900:focus{--gradient-from-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:focus\:from-indigo-100:focus{--gradient-from-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:focus\:from-indigo-200:focus{--gradient-from-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:focus\:from-indigo-300:focus{--gradient-from-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:focus\:from-indigo-400:focus{--gradient-from-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:focus\:from-indigo-500:focus{--gradient-from-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:focus\:from-indigo-600:focus{--gradient-from-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:focus\:from-indigo-700:focus{--gradient-from-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:focus\:from-indigo-800:focus{--gradient-from-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:focus\:from-indigo-900:focus{--gradient-from-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:focus\:from-purple-100:focus{--gradient-from-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:focus\:from-purple-200:focus{--gradient-from-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:focus\:from-purple-300:focus{--gradient-from-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:focus\:from-purple-400:focus{--gradient-from-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:focus\:from-purple-500:focus{--gradient-from-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:focus\:from-purple-600:focus{--gradient-from-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:focus\:from-purple-700:focus{--gradient-from-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:focus\:from-purple-800:focus{--gradient-from-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:focus\:from-purple-900:focus{--gradient-from-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:focus\:from-pink-100:focus{--gradient-from-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:focus\:from-pink-200:focus{--gradient-from-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:focus\:from-pink-300:focus{--gradient-from-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:focus\:from-pink-400:focus{--gradient-from-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:focus\:from-pink-500:focus{--gradient-from-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:focus\:from-pink-600:focus{--gradient-from-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:focus\:from-pink-700:focus{--gradient-from-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:focus\:from-pink-800:focus{--gradient-from-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:focus\:from-pink-900:focus{--gradient-from-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:focus\:from-primary:focus{--gradient-from-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:focus\:from-secondary:focus{--gradient-from-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:focus\:from-greenish-blue:focus{--gradient-from-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:focus\:from-blue-gray:focus{--gradient-from-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:focus\:via-transparent:focus{--gradient-via-color:transparent;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:focus\:via-current:focus{--gradient-via-color:currentColor;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:via-black:focus{--gradient-via-color:#000;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,transparent)}.xxl\:focus\:via-white:focus{--gradient-via-color:#fff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,0%,100%,0))}.xxl\:focus\:via-gray-100:focus{--gradient-via-color:#f7fafc;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(247,250,252,0))}.xxl\:focus\:via-gray-200:focus{--gradient-via-color:#edf2f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,242,247,0))}.xxl\:focus\:via-gray-300:focus{--gradient-via-color:#e2e8f0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(226,232,240,0))}.xxl\:focus\:via-gray-400:focus{--gradient-via-color:#cbd5e0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(203,213,224,0))}.xxl\:focus\:via-gray-500:focus{--gradient-via-color:#a0aec0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(160,174,192,0))}.xxl\:focus\:via-gray-600:focus{--gradient-via-color:#718096;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(113,128,150,0))}.xxl\:focus\:via-gray-700:focus{--gradient-via-color:#4a5568;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(74,85,104,0))}.xxl\:focus\:via-gray-800:focus{--gradient-via-color:#2d3748;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(45,55,72,0))}.xxl\:focus\:via-gray-900:focus{--gradient-via-color:#1a202c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(26,32,44,0))}.xxl\:focus\:via-red-100:focus{--gradient-via-color:#fff5f5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,hsla(0,100%,98%,0))}.xxl\:focus\:via-red-200:focus{--gradient-via-color:#fed7d7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,215,0))}.xxl\:focus\:via-red-300:focus{--gradient-via-color:#feb2b2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,178,178,0))}.xxl\:focus\:via-red-400:focus{--gradient-via-color:#fc8181;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(252,129,129,0))}.xxl\:focus\:via-red-500:focus{--gradient-via-color:#f56565;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(245,101,101,0))}.xxl\:focus\:via-red-600:focus{--gradient-via-color:#e53e3e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(229,62,62,0))}.xxl\:focus\:via-red-700:focus{--gradient-via-color:#c53030;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(197,48,48,0))}.xxl\:focus\:via-red-800:focus{--gradient-via-color:#9b2c2c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(155,44,44,0))}.xxl\:focus\:via-red-900:focus{--gradient-via-color:#742a2a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,42,42,0))}.xxl\:focus\:via-orange-100:focus{--gradient-via-color:#fffaf0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,250,240,0))}.xxl\:focus\:via-orange-200:focus{--gradient-via-color:#feebc8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,235,200,0))}.xxl\:focus\:via-orange-300:focus{--gradient-via-color:#fbd38d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,211,141,0))}.xxl\:focus\:via-orange-400:focus{--gradient-via-color:#f6ad55;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,173,85,0))}.xxl\:focus\:via-orange-500:focus{--gradient-via-color:#ed8936;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,137,54,0))}.xxl\:focus\:via-orange-600:focus{--gradient-via-color:#dd6b20;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(221,107,32,0))}.xxl\:focus\:via-orange-700:focus{--gradient-via-color:#c05621;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(192,86,33,0))}.xxl\:focus\:via-orange-800:focus{--gradient-via-color:#9c4221;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(156,66,33,0))}.xxl\:focus\:via-orange-900:focus{--gradient-via-color:#7b341e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(123,52,30,0))}.xxl\:focus\:via-yellow-100:focus{--gradient-via-color:ivory;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,255,240,0))}.xxl\:focus\:via-yellow-200:focus{--gradient-via-color:#fefcbf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,252,191,0))}.xxl\:focus\:via-yellow-300:focus{--gradient-via-color:#faf089;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,240,137,0))}.xxl\:focus\:via-yellow-400:focus{--gradient-via-color:#f6e05e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,224,94,0))}.xxl\:focus\:via-yellow-500:focus{--gradient-via-color:#ecc94b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(236,201,75,0))}.xxl\:focus\:via-yellow-600:focus{--gradient-via-color:#d69e2e;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,158,46,0))}.xxl\:focus\:via-yellow-700:focus{--gradient-via-color:#b7791f;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,121,31,0))}.xxl\:focus\:via-yellow-800:focus{--gradient-via-color:#975a16;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,90,22,0))}.xxl\:focus\:via-yellow-900:focus{--gradient-via-color:#744210;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(116,66,16,0))}.xxl\:focus\:via-green-100:focus{--gradient-via-color:#f0fff4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(240,255,244,0))}.xxl\:focus\:via-green-200:focus{--gradient-via-color:#c6f6d5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(198,246,213,0))}.xxl\:focus\:via-green-300:focus{--gradient-via-color:#9ae6b4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(154,230,180,0))}.xxl\:focus\:via-green-400:focus{--gradient-via-color:#68d391;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(104,211,145,0))}.xxl\:focus\:via-green-500:focus{--gradient-via-color:#48bb78;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(72,187,120,0))}.xxl\:focus\:via-green-600:focus{--gradient-via-color:#38a169;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,161,105,0))}.xxl\:focus\:via-green-700:focus{--gradient-via-color:#2f855a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(47,133,90,0))}.xxl\:focus\:via-green-800:focus{--gradient-via-color:#276749;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(39,103,73,0))}.xxl\:focus\:via-green-900:focus{--gradient-via-color:#22543d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(34,84,61,0))}.xxl\:focus\:via-teal-100:focus{--gradient-via-color:#e6fffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(230,255,250,0))}.xxl\:focus\:via-teal-200:focus{--gradient-via-color:#b2f5ea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(178,245,234,0))}.xxl\:focus\:via-teal-300:focus{--gradient-via-color:#81e6d9;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(129,230,217,0))}.xxl\:focus\:via-teal-400:focus{--gradient-via-color:#4fd1c5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(79,209,197,0))}.xxl\:focus\:via-teal-500:focus{--gradient-via-color:#38b2ac;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(56,178,172,0))}.xxl\:focus\:via-teal-600:focus{--gradient-via-color:#319795;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,151,149,0))}.xxl\:focus\:via-teal-700:focus{--gradient-via-color:#2c7a7b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,122,123,0))}.xxl\:focus\:via-teal-800:focus{--gradient-via-color:#285e61;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(40,94,97,0))}.xxl\:focus\:via-teal-900:focus{--gradient-via-color:#234e52;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(35,78,82,0))}.xxl\:focus\:via-blue-100:focus{--gradient-via-color:#ebf8ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,248,255,0))}.xxl\:focus\:via-blue-200:focus{--gradient-via-color:#bee3f8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(190,227,248,0))}.xxl\:focus\:via-blue-300:focus{--gradient-via-color:#90cdf4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(144,205,244,0))}.xxl\:focus\:via-blue-400:focus{--gradient-via-color:#63b3ed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(99,179,237,0))}.xxl\:focus\:via-blue-500:focus{--gradient-via-color:#4299e1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(66,153,225,0))}.xxl\:focus\:via-blue-600:focus{--gradient-via-color:#3182ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(49,130,206,0))}.xxl\:focus\:via-blue-700:focus{--gradient-via-color:#2b6cb0;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(43,108,176,0))}.xxl\:focus\:via-blue-800:focus{--gradient-via-color:#2c5282;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(44,82,130,0))}.xxl\:focus\:via-blue-900:focus{--gradient-via-color:#2a4365;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(42,67,101,0))}.xxl\:focus\:via-indigo-100:focus{--gradient-via-color:#ebf4ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(235,244,255,0))}.xxl\:focus\:via-indigo-200:focus{--gradient-via-color:#c3dafe;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(195,218,254,0))}.xxl\:focus\:via-indigo-300:focus{--gradient-via-color:#a3bffa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(163,191,250,0))}.xxl\:focus\:via-indigo-400:focus{--gradient-via-color:#7f9cf5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(127,156,245,0))}.xxl\:focus\:via-indigo-500:focus{--gradient-via-color:#667eea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(102,126,234,0))}.xxl\:focus\:via-indigo-600:focus{--gradient-via-color:#5a67d8;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(90,103,216,0))}.xxl\:focus\:via-indigo-700:focus{--gradient-via-color:#4c51bf;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(76,81,191,0))}.xxl\:focus\:via-indigo-800:focus{--gradient-via-color:#434190;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(67,65,144,0))}.xxl\:focus\:via-indigo-900:focus{--gradient-via-color:#3c366b;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(60,54,107,0))}.xxl\:focus\:via-purple-100:focus{--gradient-via-color:#faf5ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(250,245,255,0))}.xxl\:focus\:via-purple-200:focus{--gradient-via-color:#e9d8fd;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(233,216,253,0))}.xxl\:focus\:via-purple-300:focus{--gradient-via-color:#d6bcfa;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(214,188,250,0))}.xxl\:focus\:via-purple-400:focus{--gradient-via-color:#b794f4;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(183,148,244,0))}.xxl\:focus\:via-purple-500:focus{--gradient-via-color:#9f7aea;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(159,122,234,0))}.xxl\:focus\:via-purple-600:focus{--gradient-via-color:#805ad5;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(128,90,213,0))}.xxl\:focus\:via-purple-700:focus{--gradient-via-color:#6b46c1;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(107,70,193,0))}.xxl\:focus\:via-purple-800:focus{--gradient-via-color:#553c9a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(85,60,154,0))}.xxl\:focus\:via-purple-900:focus{--gradient-via-color:#44337a;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(68,51,122,0))}.xxl\:focus\:via-pink-100:focus{--gradient-via-color:#fff5f7;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(255,245,247,0))}.xxl\:focus\:via-pink-200:focus{--gradient-via-color:#fed7e2;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(254,215,226,0))}.xxl\:focus\:via-pink-300:focus{--gradient-via-color:#fbb6ce;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(251,182,206,0))}.xxl\:focus\:via-pink-400:focus{--gradient-via-color:#f687b3;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(246,135,179,0))}.xxl\:focus\:via-pink-500:focus{--gradient-via-color:#ed64a6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(237,100,166,0))}.xxl\:focus\:via-pink-600:focus{--gradient-via-color:#d53f8c;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(213,63,140,0))}.xxl\:focus\:via-pink-700:focus{--gradient-via-color:#b83280;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(184,50,128,0))}.xxl\:focus\:via-pink-800:focus{--gradient-via-color:#97266d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(151,38,109,0))}.xxl\:focus\:via-pink-900:focus{--gradient-via-color:#702459;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(112,36,89,0))}.xxl\:focus\:via-primary:focus{--gradient-via-color:#00d1ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(0,209,255,0))}.xxl\:focus\:via-secondary:focus{--gradient-via-color:#e077ff;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(224,119,255,0))}.xxl\:focus\:via-greenish-blue:focus{--gradient-via-color:#adffed;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(173,255,237,0))}.xxl\:focus\:via-blue-gray:focus{--gradient-via-color:#cfe1e6;--gradient-color-stops:var(--gradient-from-color),var(--gradient-via-color),var(--gradient-to-color,rgba(207,225,230,0))}.xxl\:focus\:to-transparent:focus{--gradient-to-color:transparent}.xxl\:focus\:to-current:focus{--gradient-to-color:currentColor}.xxl\:focus\:to-black:focus{--gradient-to-color:#000}.xxl\:focus\:to-white:focus{--gradient-to-color:#fff}.xxl\:focus\:to-gray-100:focus{--gradient-to-color:#f7fafc}.xxl\:focus\:to-gray-200:focus{--gradient-to-color:#edf2f7}.xxl\:focus\:to-gray-300:focus{--gradient-to-color:#e2e8f0}.xxl\:focus\:to-gray-400:focus{--gradient-to-color:#cbd5e0}.xxl\:focus\:to-gray-500:focus{--gradient-to-color:#a0aec0}.xxl\:focus\:to-gray-600:focus{--gradient-to-color:#718096}.xxl\:focus\:to-gray-700:focus{--gradient-to-color:#4a5568}.xxl\:focus\:to-gray-800:focus{--gradient-to-color:#2d3748}.xxl\:focus\:to-gray-900:focus{--gradient-to-color:#1a202c}.xxl\:focus\:to-red-100:focus{--gradient-to-color:#fff5f5}.xxl\:focus\:to-red-200:focus{--gradient-to-color:#fed7d7}.xxl\:focus\:to-red-300:focus{--gradient-to-color:#feb2b2}.xxl\:focus\:to-red-400:focus{--gradient-to-color:#fc8181}.xxl\:focus\:to-red-500:focus{--gradient-to-color:#f56565}.xxl\:focus\:to-red-600:focus{--gradient-to-color:#e53e3e}.xxl\:focus\:to-red-700:focus{--gradient-to-color:#c53030}.xxl\:focus\:to-red-800:focus{--gradient-to-color:#9b2c2c}.xxl\:focus\:to-red-900:focus{--gradient-to-color:#742a2a}.xxl\:focus\:to-orange-100:focus{--gradient-to-color:#fffaf0}.xxl\:focus\:to-orange-200:focus{--gradient-to-color:#feebc8}.xxl\:focus\:to-orange-300:focus{--gradient-to-color:#fbd38d}.xxl\:focus\:to-orange-400:focus{--gradient-to-color:#f6ad55}.xxl\:focus\:to-orange-500:focus{--gradient-to-color:#ed8936}.xxl\:focus\:to-orange-600:focus{--gradient-to-color:#dd6b20}.xxl\:focus\:to-orange-700:focus{--gradient-to-color:#c05621}.xxl\:focus\:to-orange-800:focus{--gradient-to-color:#9c4221}.xxl\:focus\:to-orange-900:focus{--gradient-to-color:#7b341e}.xxl\:focus\:to-yellow-100:focus{--gradient-to-color:ivory}.xxl\:focus\:to-yellow-200:focus{--gradient-to-color:#fefcbf}.xxl\:focus\:to-yellow-300:focus{--gradient-to-color:#faf089}.xxl\:focus\:to-yellow-400:focus{--gradient-to-color:#f6e05e}.xxl\:focus\:to-yellow-500:focus{--gradient-to-color:#ecc94b}.xxl\:focus\:to-yellow-600:focus{--gradient-to-color:#d69e2e}.xxl\:focus\:to-yellow-700:focus{--gradient-to-color:#b7791f}.xxl\:focus\:to-yellow-800:focus{--gradient-to-color:#975a16}.xxl\:focus\:to-yellow-900:focus{--gradient-to-color:#744210}.xxl\:focus\:to-green-100:focus{--gradient-to-color:#f0fff4}.xxl\:focus\:to-green-200:focus{--gradient-to-color:#c6f6d5}.xxl\:focus\:to-green-300:focus{--gradient-to-color:#9ae6b4}.xxl\:focus\:to-green-400:focus{--gradient-to-color:#68d391}.xxl\:focus\:to-green-500:focus{--gradient-to-color:#48bb78}.xxl\:focus\:to-green-600:focus{--gradient-to-color:#38a169}.xxl\:focus\:to-green-700:focus{--gradient-to-color:#2f855a}.xxl\:focus\:to-green-800:focus{--gradient-to-color:#276749}.xxl\:focus\:to-green-900:focus{--gradient-to-color:#22543d}.xxl\:focus\:to-teal-100:focus{--gradient-to-color:#e6fffa}.xxl\:focus\:to-teal-200:focus{--gradient-to-color:#b2f5ea}.xxl\:focus\:to-teal-300:focus{--gradient-to-color:#81e6d9}.xxl\:focus\:to-teal-400:focus{--gradient-to-color:#4fd1c5}.xxl\:focus\:to-teal-500:focus{--gradient-to-color:#38b2ac}.xxl\:focus\:to-teal-600:focus{--gradient-to-color:#319795}.xxl\:focus\:to-teal-700:focus{--gradient-to-color:#2c7a7b}.xxl\:focus\:to-teal-800:focus{--gradient-to-color:#285e61}.xxl\:focus\:to-teal-900:focus{--gradient-to-color:#234e52}.xxl\:focus\:to-blue-100:focus{--gradient-to-color:#ebf8ff}.xxl\:focus\:to-blue-200:focus{--gradient-to-color:#bee3f8}.xxl\:focus\:to-blue-300:focus{--gradient-to-color:#90cdf4}.xxl\:focus\:to-blue-400:focus{--gradient-to-color:#63b3ed}.xxl\:focus\:to-blue-500:focus{--gradient-to-color:#4299e1}.xxl\:focus\:to-blue-600:focus{--gradient-to-color:#3182ce}.xxl\:focus\:to-blue-700:focus{--gradient-to-color:#2b6cb0}.xxl\:focus\:to-blue-800:focus{--gradient-to-color:#2c5282}.xxl\:focus\:to-blue-900:focus{--gradient-to-color:#2a4365}.xxl\:focus\:to-indigo-100:focus{--gradient-to-color:#ebf4ff}.xxl\:focus\:to-indigo-200:focus{--gradient-to-color:#c3dafe}.xxl\:focus\:to-indigo-300:focus{--gradient-to-color:#a3bffa}.xxl\:focus\:to-indigo-400:focus{--gradient-to-color:#7f9cf5}.xxl\:focus\:to-indigo-500:focus{--gradient-to-color:#667eea}.xxl\:focus\:to-indigo-600:focus{--gradient-to-color:#5a67d8}.xxl\:focus\:to-indigo-700:focus{--gradient-to-color:#4c51bf}.xxl\:focus\:to-indigo-800:focus{--gradient-to-color:#434190}.xxl\:focus\:to-indigo-900:focus{--gradient-to-color:#3c366b}.xxl\:focus\:to-purple-100:focus{--gradient-to-color:#faf5ff}.xxl\:focus\:to-purple-200:focus{--gradient-to-color:#e9d8fd}.xxl\:focus\:to-purple-300:focus{--gradient-to-color:#d6bcfa}.xxl\:focus\:to-purple-400:focus{--gradient-to-color:#b794f4}.xxl\:focus\:to-purple-500:focus{--gradient-to-color:#9f7aea}.xxl\:focus\:to-purple-600:focus{--gradient-to-color:#805ad5}.xxl\:focus\:to-purple-700:focus{--gradient-to-color:#6b46c1}.xxl\:focus\:to-purple-800:focus{--gradient-to-color:#553c9a}.xxl\:focus\:to-purple-900:focus{--gradient-to-color:#44337a}.xxl\:focus\:to-pink-100:focus{--gradient-to-color:#fff5f7}.xxl\:focus\:to-pink-200:focus{--gradient-to-color:#fed7e2}.xxl\:focus\:to-pink-300:focus{--gradient-to-color:#fbb6ce}.xxl\:focus\:to-pink-400:focus{--gradient-to-color:#f687b3}.xxl\:focus\:to-pink-500:focus{--gradient-to-color:#ed64a6}.xxl\:focus\:to-pink-600:focus{--gradient-to-color:#d53f8c}.xxl\:focus\:to-pink-700:focus{--gradient-to-color:#b83280}.xxl\:focus\:to-pink-800:focus{--gradient-to-color:#97266d}.xxl\:focus\:to-pink-900:focus{--gradient-to-color:#702459}.xxl\:focus\:to-primary:focus{--gradient-to-color:#00d1ff}.xxl\:focus\:to-secondary:focus{--gradient-to-color:#e077ff}.xxl\:focus\:to-greenish-blue:focus{--gradient-to-color:#adffed}.xxl\:focus\:to-blue-gray:focus{--gradient-to-color:#cfe1e6}.xxl\:bg-opacity-0{--bg-opacity:0}.xxl\:bg-opacity-25{--bg-opacity:0.25}.xxl\:bg-opacity-50{--bg-opacity:0.5}.xxl\:bg-opacity-75{--bg-opacity:0.75}.xxl\:bg-opacity-100{--bg-opacity:1}.xxl\:hover\:bg-opacity-0:hover{--bg-opacity:0}.xxl\:hover\:bg-opacity-25:hover{--bg-opacity:0.25}.xxl\:hover\:bg-opacity-50:hover{--bg-opacity:0.5}.xxl\:hover\:bg-opacity-75:hover{--bg-opacity:0.75}.xxl\:hover\:bg-opacity-100:hover{--bg-opacity:1}.xxl\:focus\:bg-opacity-0:focus{--bg-opacity:0}.xxl\:focus\:bg-opacity-25:focus{--bg-opacity:0.25}.xxl\:focus\:bg-opacity-50:focus{--bg-opacity:0.5}.xxl\:focus\:bg-opacity-75:focus{--bg-opacity:0.75}.xxl\:focus\:bg-opacity-100:focus{--bg-opacity:1}.xxl\:bg-bottom{background-position:bottom}.xxl\:bg-center{background-position:50%}.xxl\:bg-left{background-position:0}.xxl\:bg-left-bottom{background-position:0 100%}.xxl\:bg-left-top{background-position:0 0}.xxl\:bg-right{background-position:100%}.xxl\:bg-right-bottom{background-position:100% 100%}.xxl\:bg-right-top{background-position:100% 0}.xxl\:bg-top{background-position:top}.xxl\:bg-repeat{background-repeat:repeat}.xxl\:bg-no-repeat{background-repeat:no-repeat}.xxl\:bg-repeat-x{background-repeat:repeat-x}.xxl\:bg-repeat-y{background-repeat:repeat-y}.xxl\:bg-repeat-round{background-repeat:round}.xxl\:bg-repeat-space{background-repeat:space}.xxl\:bg-auto{background-size:auto}.xxl\:bg-cover{background-size:cover}.xxl\:bg-contain{background-size:contain}.xxl\:border-collapse{border-collapse:collapse}.xxl\:border-separate{border-collapse:separate}.xxl\:border-transparent{border-color:transparent}.xxl\:border-current{border-color:currentColor}.xxl\:border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:border-gray-100{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:border-gray-300{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:border-gray-600{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:border-gray-800{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:border-gray-900{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:border-red-100{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:border-red-200{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:border-red-300{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:border-red-500{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:border-red-600{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:border-red-700{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:border-red-800{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:border-red-900{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:border-orange-100{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:border-orange-200{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:border-orange-300{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:border-orange-400{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:border-orange-500{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:border-orange-600{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:border-orange-700{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:border-orange-800{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:border-orange-900{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:border-yellow-100{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:border-yellow-200{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:border-yellow-300{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:border-yellow-400{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:border-yellow-500{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:border-yellow-600{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:border-yellow-700{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:border-yellow-800{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:border-yellow-900{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:border-green-100{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:border-green-200{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:border-green-300{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:border-green-400{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:border-green-500{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:border-green-600{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:border-green-700{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:border-green-800{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:border-green-900{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:border-teal-100{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:border-teal-200{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:border-teal-300{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:border-teal-400{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:border-teal-500{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:border-teal-600{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:border-teal-700{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:border-teal-800{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:border-teal-900{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:border-blue-100{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:border-blue-200{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:border-blue-300{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:border-blue-400{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:border-blue-500{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:border-blue-600{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:border-blue-700{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:border-blue-800{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:border-blue-900{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:border-indigo-100{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:border-indigo-200{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:border-indigo-300{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:border-indigo-400{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:border-indigo-500{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:border-indigo-600{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:border-indigo-700{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:border-indigo-800{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:border-indigo-900{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:border-purple-100{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:border-purple-200{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:border-purple-300{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:border-purple-400{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:border-purple-500{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:border-purple-600{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:border-purple-700{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:border-purple-800{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:border-purple-900{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:border-pink-100{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:border-pink-200{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:border-pink-300{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:border-pink-400{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:border-pink-500{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:border-pink-600{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:border-pink-700{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:border-pink-800{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:border-pink-900{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:border-primary{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:border-secondary{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:border-greenish-blue{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:border-blue-gray{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:hover\:border-transparent:hover{border-color:transparent}.xxl\:hover\:border-current:hover{border-color:currentColor}.xxl\:hover\:border-black:hover{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:hover\:border-white:hover{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:hover\:border-gray-100:hover{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:hover\:border-gray-200:hover{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:hover\:border-gray-300:hover{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:hover\:border-gray-400:hover{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:hover\:border-gray-500:hover{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:hover\:border-gray-600:hover{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:hover\:border-gray-700:hover{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:hover\:border-gray-800:hover{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:hover\:border-gray-900:hover{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:hover\:border-red-100:hover{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:hover\:border-red-200:hover{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:hover\:border-red-300:hover{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:hover\:border-red-400:hover{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:hover\:border-red-500:hover{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:hover\:border-red-600:hover{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:hover\:border-red-700:hover{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:hover\:border-red-800:hover{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:hover\:border-red-900:hover{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:hover\:border-orange-100:hover{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:hover\:border-orange-200:hover{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:hover\:border-orange-300:hover{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:hover\:border-orange-400:hover{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:hover\:border-orange-500:hover{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:hover\:border-orange-600:hover{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:hover\:border-orange-700:hover{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:hover\:border-orange-800:hover{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:hover\:border-orange-900:hover{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:hover\:border-yellow-100:hover{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:hover\:border-yellow-200:hover{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:hover\:border-yellow-300:hover{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:hover\:border-yellow-400:hover{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:hover\:border-yellow-500:hover{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:hover\:border-yellow-600:hover{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:hover\:border-yellow-700:hover{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:hover\:border-yellow-800:hover{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:hover\:border-yellow-900:hover{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:hover\:border-green-100:hover{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:hover\:border-green-200:hover{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:hover\:border-green-300:hover{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:hover\:border-green-400:hover{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:hover\:border-green-500:hover{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:hover\:border-green-600:hover{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:hover\:border-green-700:hover{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:hover\:border-green-800:hover{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:hover\:border-green-900:hover{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:hover\:border-teal-100:hover{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:hover\:border-teal-200:hover{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:hover\:border-teal-300:hover{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:hover\:border-teal-400:hover{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:hover\:border-teal-500:hover{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:hover\:border-teal-600:hover{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:hover\:border-teal-700:hover{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:hover\:border-teal-800:hover{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:hover\:border-teal-900:hover{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:hover\:border-blue-100:hover{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:hover\:border-blue-200:hover{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:hover\:border-blue-300:hover{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:hover\:border-blue-400:hover{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:hover\:border-blue-500:hover{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:hover\:border-blue-600:hover{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:hover\:border-blue-700:hover{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:hover\:border-blue-800:hover{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:hover\:border-blue-900:hover{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:hover\:border-indigo-100:hover{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:hover\:border-indigo-200:hover{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:hover\:border-indigo-300:hover{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:hover\:border-indigo-400:hover{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:hover\:border-indigo-500:hover{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:hover\:border-indigo-700:hover{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:hover\:border-indigo-800:hover{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:hover\:border-indigo-900:hover{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:hover\:border-purple-100:hover{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:hover\:border-purple-200:hover{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:hover\:border-purple-300:hover{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:hover\:border-purple-400:hover{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:hover\:border-purple-500:hover{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:hover\:border-purple-600:hover{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:hover\:border-purple-700:hover{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:hover\:border-purple-800:hover{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:hover\:border-purple-900:hover{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:hover\:border-pink-100:hover{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:hover\:border-pink-200:hover{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:hover\:border-pink-300:hover{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:hover\:border-pink-400:hover{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:hover\:border-pink-500:hover{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:hover\:border-pink-600:hover{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:hover\:border-pink-700:hover{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:hover\:border-pink-800:hover{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:hover\:border-pink-900:hover{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:hover\:border-primary:hover{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:hover\:border-secondary:hover{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:hover\:border-greenish-blue:hover{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:hover\:border-blue-gray:hover{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:focus\:border-transparent:focus{border-color:transparent}.xxl\:focus\:border-current:focus{border-color:currentColor}.xxl\:focus\:border-black:focus{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.xxl\:focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.xxl\:focus\:border-gray-100:focus{--border-opacity:1;border-color:#f7fafc;border-color:rgba(247,250,252,var(--border-opacity))}.xxl\:focus\:border-gray-200:focus{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.xxl\:focus\:border-gray-300:focus{--border-opacity:1;border-color:#e2e8f0;border-color:rgba(226,232,240,var(--border-opacity))}.xxl\:focus\:border-gray-400:focus{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.xxl\:focus\:border-gray-500:focus{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.xxl\:focus\:border-gray-600:focus{--border-opacity:1;border-color:#718096;border-color:rgba(113,128,150,var(--border-opacity))}.xxl\:focus\:border-gray-700:focus{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.xxl\:focus\:border-gray-800:focus{--border-opacity:1;border-color:#2d3748;border-color:rgba(45,55,72,var(--border-opacity))}.xxl\:focus\:border-gray-900:focus{--border-opacity:1;border-color:#1a202c;border-color:rgba(26,32,44,var(--border-opacity))}.xxl\:focus\:border-red-100:focus{--border-opacity:1;border-color:#fff5f5;border-color:rgba(255,245,245,var(--border-opacity))}.xxl\:focus\:border-red-200:focus{--border-opacity:1;border-color:#fed7d7;border-color:rgba(254,215,215,var(--border-opacity))}.xxl\:focus\:border-red-300:focus{--border-opacity:1;border-color:#feb2b2;border-color:rgba(254,178,178,var(--border-opacity))}.xxl\:focus\:border-red-400:focus{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.xxl\:focus\:border-red-500:focus{--border-opacity:1;border-color:#f56565;border-color:rgba(245,101,101,var(--border-opacity))}.xxl\:focus\:border-red-600:focus{--border-opacity:1;border-color:#e53e3e;border-color:rgba(229,62,62,var(--border-opacity))}.xxl\:focus\:border-red-700:focus{--border-opacity:1;border-color:#c53030;border-color:rgba(197,48,48,var(--border-opacity))}.xxl\:focus\:border-red-800:focus{--border-opacity:1;border-color:#9b2c2c;border-color:rgba(155,44,44,var(--border-opacity))}.xxl\:focus\:border-red-900:focus{--border-opacity:1;border-color:#742a2a;border-color:rgba(116,42,42,var(--border-opacity))}.xxl\:focus\:border-orange-100:focus{--border-opacity:1;border-color:#fffaf0;border-color:rgba(255,250,240,var(--border-opacity))}.xxl\:focus\:border-orange-200:focus{--border-opacity:1;border-color:#feebc8;border-color:rgba(254,235,200,var(--border-opacity))}.xxl\:focus\:border-orange-300:focus{--border-opacity:1;border-color:#fbd38d;border-color:rgba(251,211,141,var(--border-opacity))}.xxl\:focus\:border-orange-400:focus{--border-opacity:1;border-color:#f6ad55;border-color:rgba(246,173,85,var(--border-opacity))}.xxl\:focus\:border-orange-500:focus{--border-opacity:1;border-color:#ed8936;border-color:rgba(237,137,54,var(--border-opacity))}.xxl\:focus\:border-orange-600:focus{--border-opacity:1;border-color:#dd6b20;border-color:rgba(221,107,32,var(--border-opacity))}.xxl\:focus\:border-orange-700:focus{--border-opacity:1;border-color:#c05621;border-color:rgba(192,86,33,var(--border-opacity))}.xxl\:focus\:border-orange-800:focus{--border-opacity:1;border-color:#9c4221;border-color:rgba(156,66,33,var(--border-opacity))}.xxl\:focus\:border-orange-900:focus{--border-opacity:1;border-color:#7b341e;border-color:rgba(123,52,30,var(--border-opacity))}.xxl\:focus\:border-yellow-100:focus{--border-opacity:1;border-color:ivory;border-color:rgba(255,255,240,var(--border-opacity))}.xxl\:focus\:border-yellow-200:focus{--border-opacity:1;border-color:#fefcbf;border-color:rgba(254,252,191,var(--border-opacity))}.xxl\:focus\:border-yellow-300:focus{--border-opacity:1;border-color:#faf089;border-color:rgba(250,240,137,var(--border-opacity))}.xxl\:focus\:border-yellow-400:focus{--border-opacity:1;border-color:#f6e05e;border-color:rgba(246,224,94,var(--border-opacity))}.xxl\:focus\:border-yellow-500:focus{--border-opacity:1;border-color:#ecc94b;border-color:rgba(236,201,75,var(--border-opacity))}.xxl\:focus\:border-yellow-600:focus{--border-opacity:1;border-color:#d69e2e;border-color:rgba(214,158,46,var(--border-opacity))}.xxl\:focus\:border-yellow-700:focus{--border-opacity:1;border-color:#b7791f;border-color:rgba(183,121,31,var(--border-opacity))}.xxl\:focus\:border-yellow-800:focus{--border-opacity:1;border-color:#975a16;border-color:rgba(151,90,22,var(--border-opacity))}.xxl\:focus\:border-yellow-900:focus{--border-opacity:1;border-color:#744210;border-color:rgba(116,66,16,var(--border-opacity))}.xxl\:focus\:border-green-100:focus{--border-opacity:1;border-color:#f0fff4;border-color:rgba(240,255,244,var(--border-opacity))}.xxl\:focus\:border-green-200:focus{--border-opacity:1;border-color:#c6f6d5;border-color:rgba(198,246,213,var(--border-opacity))}.xxl\:focus\:border-green-300:focus{--border-opacity:1;border-color:#9ae6b4;border-color:rgba(154,230,180,var(--border-opacity))}.xxl\:focus\:border-green-400:focus{--border-opacity:1;border-color:#68d391;border-color:rgba(104,211,145,var(--border-opacity))}.xxl\:focus\:border-green-500:focus{--border-opacity:1;border-color:#48bb78;border-color:rgba(72,187,120,var(--border-opacity))}.xxl\:focus\:border-green-600:focus{--border-opacity:1;border-color:#38a169;border-color:rgba(56,161,105,var(--border-opacity))}.xxl\:focus\:border-green-700:focus{--border-opacity:1;border-color:#2f855a;border-color:rgba(47,133,90,var(--border-opacity))}.xxl\:focus\:border-green-800:focus{--border-opacity:1;border-color:#276749;border-color:rgba(39,103,73,var(--border-opacity))}.xxl\:focus\:border-green-900:focus{--border-opacity:1;border-color:#22543d;border-color:rgba(34,84,61,var(--border-opacity))}.xxl\:focus\:border-teal-100:focus{--border-opacity:1;border-color:#e6fffa;border-color:rgba(230,255,250,var(--border-opacity))}.xxl\:focus\:border-teal-200:focus{--border-opacity:1;border-color:#b2f5ea;border-color:rgba(178,245,234,var(--border-opacity))}.xxl\:focus\:border-teal-300:focus{--border-opacity:1;border-color:#81e6d9;border-color:rgba(129,230,217,var(--border-opacity))}.xxl\:focus\:border-teal-400:focus{--border-opacity:1;border-color:#4fd1c5;border-color:rgba(79,209,197,var(--border-opacity))}.xxl\:focus\:border-teal-500:focus{--border-opacity:1;border-color:#38b2ac;border-color:rgba(56,178,172,var(--border-opacity))}.xxl\:focus\:border-teal-600:focus{--border-opacity:1;border-color:#319795;border-color:rgba(49,151,149,var(--border-opacity))}.xxl\:focus\:border-teal-700:focus{--border-opacity:1;border-color:#2c7a7b;border-color:rgba(44,122,123,var(--border-opacity))}.xxl\:focus\:border-teal-800:focus{--border-opacity:1;border-color:#285e61;border-color:rgba(40,94,97,var(--border-opacity))}.xxl\:focus\:border-teal-900:focus{--border-opacity:1;border-color:#234e52;border-color:rgba(35,78,82,var(--border-opacity))}.xxl\:focus\:border-blue-100:focus{--border-opacity:1;border-color:#ebf8ff;border-color:rgba(235,248,255,var(--border-opacity))}.xxl\:focus\:border-blue-200:focus{--border-opacity:1;border-color:#bee3f8;border-color:rgba(190,227,248,var(--border-opacity))}.xxl\:focus\:border-blue-300:focus{--border-opacity:1;border-color:#90cdf4;border-color:rgba(144,205,244,var(--border-opacity))}.xxl\:focus\:border-blue-400:focus{--border-opacity:1;border-color:#63b3ed;border-color:rgba(99,179,237,var(--border-opacity))}.xxl\:focus\:border-blue-500:focus{--border-opacity:1;border-color:#4299e1;border-color:rgba(66,153,225,var(--border-opacity))}.xxl\:focus\:border-blue-600:focus{--border-opacity:1;border-color:#3182ce;border-color:rgba(49,130,206,var(--border-opacity))}.xxl\:focus\:border-blue-700:focus{--border-opacity:1;border-color:#2b6cb0;border-color:rgba(43,108,176,var(--border-opacity))}.xxl\:focus\:border-blue-800:focus{--border-opacity:1;border-color:#2c5282;border-color:rgba(44,82,130,var(--border-opacity))}.xxl\:focus\:border-blue-900:focus{--border-opacity:1;border-color:#2a4365;border-color:rgba(42,67,101,var(--border-opacity))}.xxl\:focus\:border-indigo-100:focus{--border-opacity:1;border-color:#ebf4ff;border-color:rgba(235,244,255,var(--border-opacity))}.xxl\:focus\:border-indigo-200:focus{--border-opacity:1;border-color:#c3dafe;border-color:rgba(195,218,254,var(--border-opacity))}.xxl\:focus\:border-indigo-300:focus{--border-opacity:1;border-color:#a3bffa;border-color:rgba(163,191,250,var(--border-opacity))}.xxl\:focus\:border-indigo-400:focus{--border-opacity:1;border-color:#7f9cf5;border-color:rgba(127,156,245,var(--border-opacity))}.xxl\:focus\:border-indigo-500:focus{--border-opacity:1;border-color:#667eea;border-color:rgba(102,126,234,var(--border-opacity))}.xxl\:focus\:border-indigo-600:focus{--border-opacity:1;border-color:#5a67d8;border-color:rgba(90,103,216,var(--border-opacity))}.xxl\:focus\:border-indigo-700:focus{--border-opacity:1;border-color:#4c51bf;border-color:rgba(76,81,191,var(--border-opacity))}.xxl\:focus\:border-indigo-800:focus{--border-opacity:1;border-color:#434190;border-color:rgba(67,65,144,var(--border-opacity))}.xxl\:focus\:border-indigo-900:focus{--border-opacity:1;border-color:#3c366b;border-color:rgba(60,54,107,var(--border-opacity))}.xxl\:focus\:border-purple-100:focus{--border-opacity:1;border-color:#faf5ff;border-color:rgba(250,245,255,var(--border-opacity))}.xxl\:focus\:border-purple-200:focus{--border-opacity:1;border-color:#e9d8fd;border-color:rgba(233,216,253,var(--border-opacity))}.xxl\:focus\:border-purple-300:focus{--border-opacity:1;border-color:#d6bcfa;border-color:rgba(214,188,250,var(--border-opacity))}.xxl\:focus\:border-purple-400:focus{--border-opacity:1;border-color:#b794f4;border-color:rgba(183,148,244,var(--border-opacity))}.xxl\:focus\:border-purple-500:focus{--border-opacity:1;border-color:#9f7aea;border-color:rgba(159,122,234,var(--border-opacity))}.xxl\:focus\:border-purple-600:focus{--border-opacity:1;border-color:#805ad5;border-color:rgba(128,90,213,var(--border-opacity))}.xxl\:focus\:border-purple-700:focus{--border-opacity:1;border-color:#6b46c1;border-color:rgba(107,70,193,var(--border-opacity))}.xxl\:focus\:border-purple-800:focus{--border-opacity:1;border-color:#553c9a;border-color:rgba(85,60,154,var(--border-opacity))}.xxl\:focus\:border-purple-900:focus{--border-opacity:1;border-color:#44337a;border-color:rgba(68,51,122,var(--border-opacity))}.xxl\:focus\:border-pink-100:focus{--border-opacity:1;border-color:#fff5f7;border-color:rgba(255,245,247,var(--border-opacity))}.xxl\:focus\:border-pink-200:focus{--border-opacity:1;border-color:#fed7e2;border-color:rgba(254,215,226,var(--border-opacity))}.xxl\:focus\:border-pink-300:focus{--border-opacity:1;border-color:#fbb6ce;border-color:rgba(251,182,206,var(--border-opacity))}.xxl\:focus\:border-pink-400:focus{--border-opacity:1;border-color:#f687b3;border-color:rgba(246,135,179,var(--border-opacity))}.xxl\:focus\:border-pink-500:focus{--border-opacity:1;border-color:#ed64a6;border-color:rgba(237,100,166,var(--border-opacity))}.xxl\:focus\:border-pink-600:focus{--border-opacity:1;border-color:#d53f8c;border-color:rgba(213,63,140,var(--border-opacity))}.xxl\:focus\:border-pink-700:focus{--border-opacity:1;border-color:#b83280;border-color:rgba(184,50,128,var(--border-opacity))}.xxl\:focus\:border-pink-800:focus{--border-opacity:1;border-color:#97266d;border-color:rgba(151,38,109,var(--border-opacity))}.xxl\:focus\:border-pink-900:focus{--border-opacity:1;border-color:#702459;border-color:rgba(112,36,89,var(--border-opacity))}.xxl\:focus\:border-primary:focus{--border-opacity:1;border-color:#00d1ff;border-color:rgba(0,209,255,var(--border-opacity))}.xxl\:focus\:border-secondary:focus{--border-opacity:1;border-color:#e077ff;border-color:rgba(224,119,255,var(--border-opacity))}.xxl\:focus\:border-greenish-blue:focus{--border-opacity:1;border-color:#adffed;border-color:rgba(173,255,237,var(--border-opacity))}.xxl\:focus\:border-blue-gray:focus{--border-opacity:1;border-color:#cfe1e6;border-color:rgba(207,225,230,var(--border-opacity))}.xxl\:border-opacity-0{--border-opacity:0}.xxl\:border-opacity-25{--border-opacity:0.25}.xxl\:border-opacity-50{--border-opacity:0.5}.xxl\:border-opacity-75{--border-opacity:0.75}.xxl\:border-opacity-100{--border-opacity:1}.xxl\:hover\:border-opacity-0:hover{--border-opacity:0}.xxl\:hover\:border-opacity-25:hover{--border-opacity:0.25}.xxl\:hover\:border-opacity-50:hover{--border-opacity:0.5}.xxl\:hover\:border-opacity-75:hover{--border-opacity:0.75}.xxl\:hover\:border-opacity-100:hover{--border-opacity:1}.xxl\:focus\:border-opacity-0:focus{--border-opacity:0}.xxl\:focus\:border-opacity-25:focus{--border-opacity:0.25}.xxl\:focus\:border-opacity-50:focus{--border-opacity:0.5}.xxl\:focus\:border-opacity-75:focus{--border-opacity:0.75}.xxl\:focus\:border-opacity-100:focus{--border-opacity:1}.xxl\:rounded-none{border-radius:0}.xxl\:rounded-sm{border-radius:.125rem}.xxl\:rounded{border-radius:.25rem}.xxl\:rounded-md{border-radius:.375rem}.xxl\:rounded-lg{border-radius:.5rem}.xxl\:rounded-xl{border-radius:.75rem}.xxl\:rounded-2xl{border-radius:1rem}.xxl\:rounded-3xl{border-radius:1.5rem}.xxl\:rounded-full{border-radius:9999px}.xxl\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.xxl\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.xxl\:rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.xxl\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.xxl\:rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.xxl\:rounded-r-sm{border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.xxl\:rounded-b-sm{border-bottom-right-radius:.125rem;border-bottom-left-radius:.125rem}.xxl\:rounded-l-sm{border-top-left-radius:.125rem;border-bottom-left-radius:.125rem}.xxl\:rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.xxl\:rounded-r{border-top-right-radius:.25rem}.xxl\:rounded-b,.xxl\:rounded-r{border-bottom-right-radius:.25rem}.xxl\:rounded-b,.xxl\:rounded-l{border-bottom-left-radius:.25rem}.xxl\:rounded-l{border-top-left-radius:.25rem}.xxl\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.xxl\:rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.xxl\:rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.xxl\:rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.xxl\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.xxl\:rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.xxl\:rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.xxl\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.xxl\:rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.xxl\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.xxl\:rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.xxl\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.xxl\:rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.xxl\:rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.xxl\:rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.xxl\:rounded-l-2xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.xxl\:rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.xxl\:rounded-r-3xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.xxl\:rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.xxl\:rounded-l-3xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.xxl\:rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.xxl\:rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.xxl\:rounded-b-full{border-bottom-right-radius:9999px;border-bottom-left-radius:9999px}.xxl\:rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.xxl\:rounded-tl-none{border-top-left-radius:0}.xxl\:rounded-tr-none{border-top-right-radius:0}.xxl\:rounded-br-none{border-bottom-right-radius:0}.xxl\:rounded-bl-none{border-bottom-left-radius:0}.xxl\:rounded-tl-sm{border-top-left-radius:.125rem}.xxl\:rounded-tr-sm{border-top-right-radius:.125rem}.xxl\:rounded-br-sm{border-bottom-right-radius:.125rem}.xxl\:rounded-bl-sm{border-bottom-left-radius:.125rem}.xxl\:rounded-tl{border-top-left-radius:.25rem}.xxl\:rounded-tr{border-top-right-radius:.25rem}.xxl\:rounded-br{border-bottom-right-radius:.25rem}.xxl\:rounded-bl{border-bottom-left-radius:.25rem}.xxl\:rounded-tl-md{border-top-left-radius:.375rem}.xxl\:rounded-tr-md{border-top-right-radius:.375rem}.xxl\:rounded-br-md{border-bottom-right-radius:.375rem}.xxl\:rounded-bl-md{border-bottom-left-radius:.375rem}.xxl\:rounded-tl-lg{border-top-left-radius:.5rem}.xxl\:rounded-tr-lg{border-top-right-radius:.5rem}.xxl\:rounded-br-lg{border-bottom-right-radius:.5rem}.xxl\:rounded-bl-lg{border-bottom-left-radius:.5rem}.xxl\:rounded-tl-xl{border-top-left-radius:.75rem}.xxl\:rounded-tr-xl{border-top-right-radius:.75rem}.xxl\:rounded-br-xl{border-bottom-right-radius:.75rem}.xxl\:rounded-bl-xl{border-bottom-left-radius:.75rem}.xxl\:rounded-tl-2xl{border-top-left-radius:1rem}.xxl\:rounded-tr-2xl{border-top-right-radius:1rem}.xxl\:rounded-br-2xl{border-bottom-right-radius:1rem}.xxl\:rounded-bl-2xl{border-bottom-left-radius:1rem}.xxl\:rounded-tl-3xl{border-top-left-radius:1.5rem}.xxl\:rounded-tr-3xl{border-top-right-radius:1.5rem}.xxl\:rounded-br-3xl{border-bottom-right-radius:1.5rem}.xxl\:rounded-bl-3xl{border-bottom-left-radius:1.5rem}.xxl\:rounded-tl-full{border-top-left-radius:9999px}.xxl\:rounded-tr-full{border-top-right-radius:9999px}.xxl\:rounded-br-full{border-bottom-right-radius:9999px}.xxl\:rounded-bl-full{border-bottom-left-radius:9999px}.xxl\:border-solid{border-style:solid}.xxl\:border-dashed{border-style:dashed}.xxl\:border-dotted{border-style:dotted}.xxl\:border-double{border-style:double}.xxl\:border-none{border-style:none}.xxl\:border-0{border-width:0}.xxl\:border-2{border-width:2px}.xxl\:border-4{border-width:4px}.xxl\:border-8{border-width:8px}.xxl\:border{border-width:1px}.xxl\:border-t-0{border-top-width:0}.xxl\:border-r-0{border-right-width:0}.xxl\:border-b-0{border-bottom-width:0}.xxl\:border-l-0{border-left-width:0}.xxl\:border-t-2{border-top-width:2px}.xxl\:border-r-2{border-right-width:2px}.xxl\:border-b-2{border-bottom-width:2px}.xxl\:border-l-2{border-left-width:2px}.xxl\:border-t-4{border-top-width:4px}.xxl\:border-r-4{border-right-width:4px}.xxl\:border-b-4{border-bottom-width:4px}.xxl\:border-l-4{border-left-width:4px}.xxl\:border-t-8{border-top-width:8px}.xxl\:border-r-8{border-right-width:8px}.xxl\:border-b-8{border-bottom-width:8px}.xxl\:border-l-8{border-left-width:8px}.xxl\:border-t{border-top-width:1px}.xxl\:border-r{border-right-width:1px}.xxl\:border-b{border-bottom-width:1px}.xxl\:border-l{border-left-width:1px}.xxl\:box-border{box-sizing:border-box}.xxl\:box-content{box-sizing:content-box}.xxl\:cursor-auto{cursor:auto}.xxl\:cursor-default{cursor:default}.xxl\:cursor-pointer{cursor:pointer}.xxl\:cursor-wait{cursor:wait}.xxl\:cursor-text{cursor:text}.xxl\:cursor-move{cursor:move}.xxl\:cursor-not-allowed{cursor:not-allowed}.xxl\:block{display:block}.xxl\:inline-block{display:inline-block}.xxl\:inline{display:inline}.xxl\:flex{display:flex}.xxl\:inline-flex{display:inline-flex}.xxl\:table{display:table}.xxl\:table-caption{display:table-caption}.xxl\:table-cell{display:table-cell}.xxl\:table-column{display:table-column}.xxl\:table-column-group{display:table-column-group}.xxl\:table-footer-group{display:table-footer-group}.xxl\:table-header-group{display:table-header-group}.xxl\:table-row-group{display:table-row-group}.xxl\:table-row{display:table-row}.xxl\:flow-root{display:flow-root}.xxl\:grid{display:grid}.xxl\:inline-grid{display:inline-grid}.xxl\:contents{display:contents}.xxl\:hidden{display:none}.xxl\:flex-row{flex-direction:row}.xxl\:flex-row-reverse{flex-direction:row-reverse}.xxl\:flex-col{flex-direction:column}.xxl\:flex-col-reverse{flex-direction:column-reverse}.xxl\:flex-wrap{flex-wrap:wrap}.xxl\:flex-wrap-reverse{flex-wrap:wrap-reverse}.xxl\:flex-no-wrap{flex-wrap:nowrap}.xxl\:place-items-auto{place-items:auto}.xxl\:place-items-start{place-items:start}.xxl\:place-items-end{place-items:end}.xxl\:place-items-center{place-items:center}.xxl\:place-items-stretch{place-items:stretch}.xxl\:place-content-center{place-content:center}.xxl\:place-content-start{place-content:start}.xxl\:place-content-end{place-content:end}.xxl\:place-content-between{place-content:space-between}.xxl\:place-content-around{place-content:space-around}.xxl\:place-content-evenly{place-content:space-evenly}.xxl\:place-content-stretch{place-content:stretch}.xxl\:place-self-auto{place-self:auto}.xxl\:place-self-start{place-self:start}.xxl\:place-self-end{place-self:end}.xxl\:place-self-center{place-self:center}.xxl\:place-self-stretch{place-self:stretch}.xxl\:items-start{align-items:flex-start}.xxl\:items-end{align-items:flex-end}.xxl\:items-center{align-items:center}.xxl\:items-baseline{align-items:baseline}.xxl\:items-stretch{align-items:stretch}.xxl\:content-center{align-content:center}.xxl\:content-start{align-content:flex-start}.xxl\:content-end{align-content:flex-end}.xxl\:content-between{align-content:space-between}.xxl\:content-around{align-content:space-around}.xxl\:content-evenly{align-content:space-evenly}.xxl\:self-auto{align-self:auto}.xxl\:self-start{align-self:flex-start}.xxl\:self-end{align-self:flex-end}.xxl\:self-center{align-self:center}.xxl\:self-stretch{align-self:stretch}.xxl\:justify-items-auto{justify-items:auto}.xxl\:justify-items-start{justify-items:start}.xxl\:justify-items-end{justify-items:end}.xxl\:justify-items-center{justify-items:center}.xxl\:justify-items-stretch{justify-items:stretch}.xxl\:justify-start{justify-content:flex-start}.xxl\:justify-end{justify-content:flex-end}.xxl\:justify-center{justify-content:center}.xxl\:justify-between{justify-content:space-between}.xxl\:justify-around{justify-content:space-around}.xxl\:justify-evenly{justify-content:space-evenly}.xxl\:justify-self-auto{justify-self:auto}.xxl\:justify-self-start{justify-self:start}.xxl\:justify-self-end{justify-self:end}.xxl\:justify-self-center{justify-self:center}.xxl\:justify-self-stretch{justify-self:stretch}.xxl\:flex-1{flex:1 1 0%}.xxl\:flex-auto{flex:1 1 auto}.xxl\:flex-initial{flex:0 1 auto}.xxl\:flex-none{flex:none}.xxl\:flex-grow-0{flex-grow:0}.xxl\:flex-grow{flex-grow:1}.xxl\:flex-shrink-0{flex-shrink:0}.xxl\:flex-shrink{flex-shrink:1}.xxl\:order-1{order:1}.xxl\:order-2{order:2}.xxl\:order-3{order:3}.xxl\:order-4{order:4}.xxl\:order-5{order:5}.xxl\:order-6{order:6}.xxl\:order-7{order:7}.xxl\:order-8{order:8}.xxl\:order-9{order:9}.xxl\:order-10{order:10}.xxl\:order-11{order:11}.xxl\:order-12{order:12}.xxl\:order-first{order:-9999}.xxl\:order-last{order:9999}.xxl\:order-none{order:0}.xxl\:float-right{float:right}.xxl\:float-left{float:left}.xxl\:float-none{float:none}.xxl\:clearfix:after{content:"";display:table;clear:both}.xxl\:clear-left{clear:left}.xxl\:clear-right{clear:right}.xxl\:clear-both{clear:both}.xxl\:clear-none{clear:none}.xxl\:font-sans{font-family: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}.xxl\:font-serif{font-family:Georgia,Cambria,Times New Roman,Times,serif}.xxl\:font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.xxl\:font-hairline{font-weight:100}.xxl\:font-thin{font-weight:200}.xxl\:font-light{font-weight:300}.xxl\:font-normal{font-weight:400}.xxl\:font-medium{font-weight:500}.xxl\:font-semibold{font-weight:600}.xxl\:font-bold{font-weight:700}.xxl\:font-extrabold{font-weight:800}.xxl\:font-black{font-weight:900}.xxl\:hover\:font-hairline:hover{font-weight:100}.xxl\:hover\:font-thin:hover{font-weight:200}.xxl\:hover\:font-light:hover{font-weight:300}.xxl\:hover\:font-normal:hover{font-weight:400}.xxl\:hover\:font-medium:hover{font-weight:500}.xxl\:hover\:font-semibold:hover{font-weight:600}.xxl\:hover\:font-bold:hover{font-weight:700}.xxl\:hover\:font-extrabold:hover{font-weight:800}.xxl\:hover\:font-black:hover{font-weight:900}.xxl\:focus\:font-hairline:focus{font-weight:100}.xxl\:focus\:font-thin:focus{font-weight:200}.xxl\:focus\:font-light:focus{font-weight:300}.xxl\:focus\:font-normal:focus{font-weight:400}.xxl\:focus\:font-medium:focus{font-weight:500}.xxl\:focus\:font-semibold:focus{font-weight:600}.xxl\:focus\:font-bold:focus{font-weight:700}.xxl\:focus\:font-extrabold:focus{font-weight:800}.xxl\:focus\:font-black:focus{font-weight:900}.xxl\:h-0{height:0}.xxl\:h-1{height:.25rem}.xxl\:h-2{height:.5rem}.xxl\:h-3{height:.75rem}.xxl\:h-4{height:1rem}.xxl\:h-5{height:1.25rem}.xxl\:h-6{height:1.5rem}.xxl\:h-8{height:2rem}.xxl\:h-10{height:2.5rem}.xxl\:h-12{height:3rem}.xxl\:h-16{height:4rem}.xxl\:h-20{height:5rem}.xxl\:h-24{height:6rem}.xxl\:h-32{height:8rem}.xxl\:h-40{height:10rem}.xxl\:h-48{height:12rem}.xxl\:h-56{height:14rem}.xxl\:h-64{height:16rem}.xxl\:h-auto{height:auto}.xxl\:h-px{height:1px}.xxl\:h-full{height:100%}.xxl\:h-screen{height:100vh}.xxl\:text-xs{font-size:.75rem}.xxl\:text-sm{font-size:.875rem}.xxl\:text-base{font-size:1rem}.xxl\:text-lg{font-size:1.125rem}.xxl\:text-xl{font-size:1.25rem}.xxl\:text-2xl{font-size:1.5rem}.xxl\:text-3xl{font-size:1.875rem}.xxl\:text-4xl{font-size:2.25rem}.xxl\:text-5xl{font-size:3rem}.xxl\:text-6xl{font-size:4rem}.xxl\:leading-3{line-height:.75rem}.xxl\:leading-4{line-height:1rem}.xxl\:leading-5{line-height:1.25rem}.xxl\:leading-6{line-height:1.5rem}.xxl\:leading-7{line-height:1.75rem}.xxl\:leading-8{line-height:2rem}.xxl\:leading-9{line-height:2.25rem}.xxl\:leading-10{line-height:2.5rem}.xxl\:leading-none{line-height:1}.xxl\:leading-tight{line-height:1.25}.xxl\:leading-snug{line-height:1.375}.xxl\:leading-normal{line-height:1.5}.xxl\:leading-relaxed{line-height:1.625}.xxl\:leading-loose{line-height:2}.xxl\:list-inside{list-style-position:inside}.xxl\:list-outside{list-style-position:outside}.xxl\:list-none{list-style-type:none}.xxl\:list-disc{list-style-type:disc}.xxl\:list-decimal{list-style-type:decimal}.xxl\:m-0{margin:0}.xxl\:m-1{margin:.25rem}.xxl\:m-2{margin:.5rem}.xxl\:m-3{margin:.75rem}.xxl\:m-4{margin:1rem}.xxl\:m-5{margin:1.25rem}.xxl\:m-6{margin:1.5rem}.xxl\:m-8{margin:2rem}.xxl\:m-10{margin:2.5rem}.xxl\:m-12{margin:3rem}.xxl\:m-16{margin:4rem}.xxl\:m-20{margin:5rem}.xxl\:m-24{margin:6rem}.xxl\:m-32{margin:8rem}.xxl\:m-40{margin:10rem}.xxl\:m-48{margin:12rem}.xxl\:m-56{margin:14rem}.xxl\:m-64{margin:16rem}.xxl\:m-auto{margin:auto}.xxl\:m-px{margin:1px}.xxl\:-m-1{margin:-.25rem}.xxl\:-m-2{margin:-.5rem}.xxl\:-m-3{margin:-.75rem}.xxl\:-m-4{margin:-1rem}.xxl\:-m-5{margin:-1.25rem}.xxl\:-m-6{margin:-1.5rem}.xxl\:-m-8{margin:-2rem}.xxl\:-m-10{margin:-2.5rem}.xxl\:-m-12{margin:-3rem}.xxl\:-m-16{margin:-4rem}.xxl\:-m-20{margin:-5rem}.xxl\:-m-24{margin:-6rem}.xxl\:-m-32{margin:-8rem}.xxl\:-m-40{margin:-10rem}.xxl\:-m-48{margin:-12rem}.xxl\:-m-56{margin:-14rem}.xxl\:-m-64{margin:-16rem}.xxl\:-m-px{margin:-1px}.xxl\:my-0{margin-top:0;margin-bottom:0}.xxl\:mx-0{margin-left:0;margin-right:0}.xxl\:my-1{margin-top:.25rem;margin-bottom:.25rem}.xxl\:mx-1{margin-left:.25rem;margin-right:.25rem}.xxl\:my-2{margin-top:.5rem;margin-bottom:.5rem}.xxl\:mx-2{margin-left:.5rem;margin-right:.5rem}.xxl\:my-3{margin-top:.75rem;margin-bottom:.75rem}.xxl\:mx-3{margin-left:.75rem;margin-right:.75rem}.xxl\:my-4{margin-top:1rem;margin-bottom:1rem}.xxl\:mx-4{margin-left:1rem;margin-right:1rem}.xxl\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.xxl\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.xxl\:my-6{margin-top:1.5rem;margin-bottom:1.5rem}.xxl\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.xxl\:my-8{margin-top:2rem;margin-bottom:2rem}.xxl\:mx-8{margin-left:2rem;margin-right:2rem}.xxl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xxl\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.xxl\:my-12{margin-top:3rem;margin-bottom:3rem}.xxl\:mx-12{margin-left:3rem;margin-right:3rem}.xxl\:my-16{margin-top:4rem;margin-bottom:4rem}.xxl\:mx-16{margin-left:4rem;margin-right:4rem}.xxl\:my-20{margin-top:5rem;margin-bottom:5rem}.xxl\:mx-20{margin-left:5rem;margin-right:5rem}.xxl\:my-24{margin-top:6rem;margin-bottom:6rem}.xxl\:mx-24{margin-left:6rem;margin-right:6rem}.xxl\:my-32{margin-top:8rem;margin-bottom:8rem}.xxl\:mx-32{margin-left:8rem;margin-right:8rem}.xxl\:my-40{margin-top:10rem;margin-bottom:10rem}.xxl\:mx-40{margin-left:10rem;margin-right:10rem}.xxl\:my-48{margin-top:12rem;margin-bottom:12rem}.xxl\:mx-48{margin-left:12rem;margin-right:12rem}.xxl\:my-56{margin-top:14rem;margin-bottom:14rem}.xxl\:mx-56{margin-left:14rem;margin-right:14rem}.xxl\:my-64{margin-top:16rem;margin-bottom:16rem}.xxl\:mx-64{margin-left:16rem;margin-right:16rem}.xxl\:my-auto{margin-top:auto;margin-bottom:auto}.xxl\:mx-auto{margin-left:auto;margin-right:auto}.xxl\:my-px{margin-top:1px;margin-bottom:1px}.xxl\:mx-px{margin-left:1px;margin-right:1px}.xxl\:-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.xxl\:-mx-1{margin-left:-.25rem;margin-right:-.25rem}.xxl\:-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.xxl\:-mx-2{margin-left:-.5rem;margin-right:-.5rem}.xxl\:-my-3{margin-top:-.75rem;margin-bottom:-.75rem}.xxl\:-mx-3{margin-left:-.75rem;margin-right:-.75rem}.xxl\:-my-4{margin-top:-1rem;margin-bottom:-1rem}.xxl\:-mx-4{margin-left:-1rem;margin-right:-1rem}.xxl\:-my-5{margin-top:-1.25rem;margin-bottom:-1.25rem}.xxl\:-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.xxl\:-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.xxl\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.xxl\:-my-8{margin-top:-2rem;margin-bottom:-2rem}.xxl\:-mx-8{margin-left:-2rem;margin-right:-2rem}.xxl\:-my-10{margin-top:-2.5rem;margin-bottom:-2.5rem}.xxl\:-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.xxl\:-my-12{margin-top:-3rem;margin-bottom:-3rem}.xxl\:-mx-12{margin-left:-3rem;margin-right:-3rem}.xxl\:-my-16{margin-top:-4rem;margin-bottom:-4rem}.xxl\:-mx-16{margin-left:-4rem;margin-right:-4rem}.xxl\:-my-20{margin-top:-5rem;margin-bottom:-5rem}.xxl\:-mx-20{margin-left:-5rem;margin-right:-5rem}.xxl\:-my-24{margin-top:-6rem;margin-bottom:-6rem}.xxl\:-mx-24{margin-left:-6rem;margin-right:-6rem}.xxl\:-my-32{margin-top:-8rem;margin-bottom:-8rem}.xxl\:-mx-32{margin-left:-8rem;margin-right:-8rem}.xxl\:-my-40{margin-top:-10rem;margin-bottom:-10rem}.xxl\:-mx-40{margin-left:-10rem;margin-right:-10rem}.xxl\:-my-48{margin-top:-12rem;margin-bottom:-12rem}.xxl\:-mx-48{margin-left:-12rem;margin-right:-12rem}.xxl\:-my-56{margin-top:-14rem;margin-bottom:-14rem}.xxl\:-mx-56{margin-left:-14rem;margin-right:-14rem}.xxl\:-my-64{margin-top:-16rem;margin-bottom:-16rem}.xxl\:-mx-64{margin-left:-16rem;margin-right:-16rem}.xxl\:-my-px{margin-top:-1px;margin-bottom:-1px}.xxl\:-mx-px{margin-left:-1px;margin-right:-1px}.xxl\:mt-0{margin-top:0}.xxl\:mr-0{margin-right:0}.xxl\:mb-0{margin-bottom:0}.xxl\:ml-0{margin-left:0}.xxl\:mt-1{margin-top:.25rem}.xxl\:mr-1{margin-right:.25rem}.xxl\:mb-1{margin-bottom:.25rem}.xxl\:ml-1{margin-left:.25rem}.xxl\:mt-2{margin-top:.5rem}.xxl\:mr-2{margin-right:.5rem}.xxl\:mb-2{margin-bottom:.5rem}.xxl\:ml-2{margin-left:.5rem}.xxl\:mt-3{margin-top:.75rem}.xxl\:mr-3{margin-right:.75rem}.xxl\:mb-3{margin-bottom:.75rem}.xxl\:ml-3{margin-left:.75rem}.xxl\:mt-4{margin-top:1rem}.xxl\:mr-4{margin-right:1rem}.xxl\:mb-4{margin-bottom:1rem}.xxl\:ml-4{margin-left:1rem}.xxl\:mt-5{margin-top:1.25rem}.xxl\:mr-5{margin-right:1.25rem}.xxl\:mb-5{margin-bottom:1.25rem}.xxl\:ml-5{margin-left:1.25rem}.xxl\:mt-6{margin-top:1.5rem}.xxl\:mr-6{margin-right:1.5rem}.xxl\:mb-6{margin-bottom:1.5rem}.xxl\:ml-6{margin-left:1.5rem}.xxl\:mt-8{margin-top:2rem}.xxl\:mr-8{margin-right:2rem}.xxl\:mb-8{margin-bottom:2rem}.xxl\:ml-8{margin-left:2rem}.xxl\:mt-10{margin-top:2.5rem}.xxl\:mr-10{margin-right:2.5rem}.xxl\:mb-10{margin-bottom:2.5rem}.xxl\:ml-10{margin-left:2.5rem}.xxl\:mt-12{margin-top:3rem}.xxl\:mr-12{margin-right:3rem}.xxl\:mb-12{margin-bottom:3rem}.xxl\:ml-12{margin-left:3rem}.xxl\:mt-16{margin-top:4rem}.xxl\:mr-16{margin-right:4rem}.xxl\:mb-16{margin-bottom:4rem}.xxl\:ml-16{margin-left:4rem}.xxl\:mt-20{margin-top:5rem}.xxl\:mr-20{margin-right:5rem}.xxl\:mb-20{margin-bottom:5rem}.xxl\:ml-20{margin-left:5rem}.xxl\:mt-24{margin-top:6rem}.xxl\:mr-24{margin-right:6rem}.xxl\:mb-24{margin-bottom:6rem}.xxl\:ml-24{margin-left:6rem}.xxl\:mt-32{margin-top:8rem}.xxl\:mr-32{margin-right:8rem}.xxl\:mb-32{margin-bottom:8rem}.xxl\:ml-32{margin-left:8rem}.xxl\:mt-40{margin-top:10rem}.xxl\:mr-40{margin-right:10rem}.xxl\:mb-40{margin-bottom:10rem}.xxl\:ml-40{margin-left:10rem}.xxl\:mt-48{margin-top:12rem}.xxl\:mr-48{margin-right:12rem}.xxl\:mb-48{margin-bottom:12rem}.xxl\:ml-48{margin-left:12rem}.xxl\:mt-56{margin-top:14rem}.xxl\:mr-56{margin-right:14rem}.xxl\:mb-56{margin-bottom:14rem}.xxl\:ml-56{margin-left:14rem}.xxl\:mt-64{margin-top:16rem}.xxl\:mr-64{margin-right:16rem}.xxl\:mb-64{margin-bottom:16rem}.xxl\:ml-64{margin-left:16rem}.xxl\:mt-auto{margin-top:auto}.xxl\:mr-auto{margin-right:auto}.xxl\:mb-auto{margin-bottom:auto}.xxl\:ml-auto{margin-left:auto}.xxl\:mt-px{margin-top:1px}.xxl\:mr-px{margin-right:1px}.xxl\:mb-px{margin-bottom:1px}.xxl\:ml-px{margin-left:1px}.xxl\:-mt-1{margin-top:-.25rem}.xxl\:-mr-1{margin-right:-.25rem}.xxl\:-mb-1{margin-bottom:-.25rem}.xxl\:-ml-1{margin-left:-.25rem}.xxl\:-mt-2{margin-top:-.5rem}.xxl\:-mr-2{margin-right:-.5rem}.xxl\:-mb-2{margin-bottom:-.5rem}.xxl\:-ml-2{margin-left:-.5rem}.xxl\:-mt-3{margin-top:-.75rem}.xxl\:-mr-3{margin-right:-.75rem}.xxl\:-mb-3{margin-bottom:-.75rem}.xxl\:-ml-3{margin-left:-.75rem}.xxl\:-mt-4{margin-top:-1rem}.xxl\:-mr-4{margin-right:-1rem}.xxl\:-mb-4{margin-bottom:-1rem}.xxl\:-ml-4{margin-left:-1rem}.xxl\:-mt-5{margin-top:-1.25rem}.xxl\:-mr-5{margin-right:-1.25rem}.xxl\:-mb-5{margin-bottom:-1.25rem}.xxl\:-ml-5{margin-left:-1.25rem}.xxl\:-mt-6{margin-top:-1.5rem}.xxl\:-mr-6{margin-right:-1.5rem}.xxl\:-mb-6{margin-bottom:-1.5rem}.xxl\:-ml-6{margin-left:-1.5rem}.xxl\:-mt-8{margin-top:-2rem}.xxl\:-mr-8{margin-right:-2rem}.xxl\:-mb-8{margin-bottom:-2rem}.xxl\:-ml-8{margin-left:-2rem}.xxl\:-mt-10{margin-top:-2.5rem}.xxl\:-mr-10{margin-right:-2.5rem}.xxl\:-mb-10{margin-bottom:-2.5rem}.xxl\:-ml-10{margin-left:-2.5rem}.xxl\:-mt-12{margin-top:-3rem}.xxl\:-mr-12{margin-right:-3rem}.xxl\:-mb-12{margin-bottom:-3rem}.xxl\:-ml-12{margin-left:-3rem}.xxl\:-mt-16{margin-top:-4rem}.xxl\:-mr-16{margin-right:-4rem}.xxl\:-mb-16{margin-bottom:-4rem}.xxl\:-ml-16{margin-left:-4rem}.xxl\:-mt-20{margin-top:-5rem}.xxl\:-mr-20{margin-right:-5rem}.xxl\:-mb-20{margin-bottom:-5rem}.xxl\:-ml-20{margin-left:-5rem}.xxl\:-mt-24{margin-top:-6rem}.xxl\:-mr-24{margin-right:-6rem}.xxl\:-mb-24{margin-bottom:-6rem}.xxl\:-ml-24{margin-left:-6rem}.xxl\:-mt-32{margin-top:-8rem}.xxl\:-mr-32{margin-right:-8rem}.xxl\:-mb-32{margin-bottom:-8rem}.xxl\:-ml-32{margin-left:-8rem}.xxl\:-mt-40{margin-top:-10rem}.xxl\:-mr-40{margin-right:-10rem}.xxl\:-mb-40{margin-bottom:-10rem}.xxl\:-ml-40{margin-left:-10rem}.xxl\:-mt-48{margin-top:-12rem}.xxl\:-mr-48{margin-right:-12rem}.xxl\:-mb-48{margin-bottom:-12rem}.xxl\:-ml-48{margin-left:-12rem}.xxl\:-mt-56{margin-top:-14rem}.xxl\:-mr-56{margin-right:-14rem}.xxl\:-mb-56{margin-bottom:-14rem}.xxl\:-ml-56{margin-left:-14rem}.xxl\:-mt-64{margin-top:-16rem}.xxl\:-mr-64{margin-right:-16rem}.xxl\:-mb-64{margin-bottom:-16rem}.xxl\:-ml-64{margin-left:-16rem}.xxl\:-mt-px{margin-top:-1px}.xxl\:-mr-px{margin-right:-1px}.xxl\:-mb-px{margin-bottom:-1px}.xxl\:-ml-px{margin-left:-1px}.xxl\:max-h-full{max-height:100%}.xxl\:max-h-screen{max-height:100vh}.xxl\:max-w-none{max-width:none}.xxl\:max-w-xs{max-width:20rem}.xxl\:max-w-sm{max-width:24rem}.xxl\:max-w-md{max-width:28rem}.xxl\:max-w-lg{max-width:32rem}.xxl\:max-w-xl{max-width:36rem}.xxl\:max-w-2xl{max-width:42rem}.xxl\:max-w-3xl{max-width:48rem}.xxl\:max-w-4xl{max-width:56rem}.xxl\:max-w-5xl{max-width:64rem}.xxl\:max-w-6xl{max-width:72rem}.xxl\:max-w-full{max-width:100%}.xxl\:max-w-screen-xs{max-width:360px}.xxl\:max-w-screen-sm{max-width:640px}.xxl\:max-w-screen-md{max-width:768px}.xxl\:max-w-screen-lg{max-width:1024px}.xxl\:max-w-screen-xl{max-width:1280px}.xxl\:max-w-screen-xxl{max-width:1480px}.xxl\:min-h-0{min-height:0}.xxl\:min-h-full{min-height:100%}.xxl\:min-h-screen{min-height:100vh}.xxl\:min-w-0{min-width:0}.xxl\:min-w-full{min-width:100%}.xxl\:object-contain{-o-object-fit:contain;object-fit:contain}.xxl\:object-cover{-o-object-fit:cover;object-fit:cover}.xxl\:object-fill{-o-object-fit:fill;object-fit:fill}.xxl\:object-none{-o-object-fit:none;object-fit:none}.xxl\:object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.xxl\:object-bottom{-o-object-position:bottom;object-position:bottom}.xxl\:object-center{-o-object-position:center;object-position:center}.xxl\:object-left{-o-object-position:left;object-position:left}.xxl\:object-left-bottom{-o-object-position:left bottom;object-position:left bottom}.xxl\:object-left-top{-o-object-position:left top;object-position:left top}.xxl\:object-right{-o-object-position:right;object-position:right}.xxl\:object-right-bottom{-o-object-position:right bottom;object-position:right bottom}.xxl\:object-right-top{-o-object-position:right top;object-position:right top}.xxl\:object-top{-o-object-position:top;object-position:top}.xxl\:opacity-0{opacity:0}.xxl\:opacity-25{opacity:.25}.xxl\:opacity-50{opacity:.5}.xxl\:opacity-75{opacity:.75}.xxl\:opacity-100{opacity:1}.xxl\:hover\:opacity-0:hover{opacity:0}.xxl\:hover\:opacity-25:hover{opacity:.25}.xxl\:hover\:opacity-50:hover{opacity:.5}.xxl\:hover\:opacity-75:hover{opacity:.75}.xxl\:hover\:opacity-100:hover{opacity:1}.xxl\:focus\:opacity-0:focus{opacity:0}.xxl\:focus\:opacity-25:focus{opacity:.25}.xxl\:focus\:opacity-50:focus{opacity:.5}.xxl\:focus\:opacity-75:focus{opacity:.75}.xxl\:focus\:opacity-100:focus{opacity:1}.xxl\:outline-none{outline:2px solid transparent;outline-offset:2px}.xxl\:outline-white{outline:2px dotted #fff;outline-offset:2px}.xxl\:outline-black{outline:2px dotted #000;outline-offset:2px}.xxl\:focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.xxl\:focus\:outline-white:focus{outline:2px dotted #fff;outline-offset:2px}.xxl\:focus\:outline-black:focus{outline:2px dotted #000;outline-offset:2px}.xxl\:overflow-auto{overflow:auto}.xxl\:overflow-hidden{overflow:hidden}.xxl\:overflow-visible{overflow:visible}.xxl\:overflow-scroll{overflow:scroll}.xxl\:overflow-x-auto{overflow-x:auto}.xxl\:overflow-y-auto{overflow-y:auto}.xxl\:overflow-x-hidden{overflow-x:hidden}.xxl\:overflow-y-hidden{overflow-y:hidden}.xxl\:overflow-x-visible{overflow-x:visible}.xxl\:overflow-y-visible{overflow-y:visible}.xxl\:overflow-x-scroll{overflow-x:scroll}.xxl\:overflow-y-scroll{overflow-y:scroll}.xxl\:scrolling-touch{-webkit-overflow-scrolling:touch}.xxl\:scrolling-auto{-webkit-overflow-scrolling:auto}.xxl\:overscroll-auto{overscroll-behavior:auto}.xxl\:overscroll-contain{overscroll-behavior:contain}.xxl\:overscroll-none{overscroll-behavior:none}.xxl\:overscroll-y-auto{overscroll-behavior-y:auto}.xxl\:overscroll-y-contain{overscroll-behavior-y:contain}.xxl\:overscroll-y-none{overscroll-behavior-y:none}.xxl\:overscroll-x-auto{overscroll-behavior-x:auto}.xxl\:overscroll-x-contain{overscroll-behavior-x:contain}.xxl\:overscroll-x-none{overscroll-behavior-x:none}.xxl\:p-0{padding:0}.xxl\:p-1{padding:.25rem}.xxl\:p-2{padding:.5rem}.xxl\:p-3{padding:.75rem}.xxl\:p-4{padding:1rem}.xxl\:p-5{padding:1.25rem}.xxl\:p-6{padding:1.5rem}.xxl\:p-8{padding:2rem}.xxl\:p-10{padding:2.5rem}.xxl\:p-12{padding:3rem}.xxl\:p-16{padding:4rem}.xxl\:p-20{padding:5rem}.xxl\:p-24{padding:6rem}.xxl\:p-32{padding:8rem}.xxl\:p-40{padding:10rem}.xxl\:p-48{padding:12rem}.xxl\:p-56{padding:14rem}.xxl\:p-64{padding:16rem}.xxl\:p-px{padding:1px}.xxl\:py-0{padding-top:0;padding-bottom:0}.xxl\:px-0{padding-left:0;padding-right:0}.xxl\:py-1{padding-top:.25rem;padding-bottom:.25rem}.xxl\:px-1{padding-left:.25rem;padding-right:.25rem}.xxl\:py-2{padding-top:.5rem;padding-bottom:.5rem}.xxl\:px-2{padding-left:.5rem;padding-right:.5rem}.xxl\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xxl\:px-3{padding-left:.75rem;padding-right:.75rem}.xxl\:py-4{padding-top:1rem;padding-bottom:1rem}.xxl\:px-4{padding-left:1rem;padding-right:1rem}.xxl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xxl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xxl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xxl\:px-6{padding-left:1.5rem;padding-right:1.5rem}.xxl\:py-8{padding-top:2rem;padding-bottom:2rem}.xxl\:px-8{padding-left:2rem;padding-right:2rem}.xxl\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.xxl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xxl\:py-12{padding-top:3rem;padding-bottom:3rem}.xxl\:px-12{padding-left:3rem;padding-right:3rem}.xxl\:py-16{padding-top:4rem;padding-bottom:4rem}.xxl\:px-16{padding-left:4rem;padding-right:4rem}.xxl\:py-20{padding-top:5rem;padding-bottom:5rem}.xxl\:px-20{padding-left:5rem;padding-right:5rem}.xxl\:py-24{padding-top:6rem;padding-bottom:6rem}.xxl\:px-24{padding-left:6rem;padding-right:6rem}.xxl\:py-32{padding-top:8rem;padding-bottom:8rem}.xxl\:px-32{padding-left:8rem;padding-right:8rem}.xxl\:py-40{padding-top:10rem;padding-bottom:10rem}.xxl\:px-40{padding-left:10rem;padding-right:10rem}.xxl\:py-48{padding-top:12rem;padding-bottom:12rem}.xxl\:px-48{padding-left:12rem;padding-right:12rem}.xxl\:py-56{padding-top:14rem;padding-bottom:14rem}.xxl\:px-56{padding-left:14rem;padding-right:14rem}.xxl\:py-64{padding-top:16rem;padding-bottom:16rem}.xxl\:px-64{padding-left:16rem;padding-right:16rem}.xxl\:py-px{padding-top:1px;padding-bottom:1px}.xxl\:px-px{padding-left:1px;padding-right:1px}.xxl\:pt-0{padding-top:0}.xxl\:pr-0{padding-right:0}.xxl\:pb-0{padding-bottom:0}.xxl\:pl-0{padding-left:0}.xxl\:pt-1{padding-top:.25rem}.xxl\:pr-1{padding-right:.25rem}.xxl\:pb-1{padding-bottom:.25rem}.xxl\:pl-1{padding-left:.25rem}.xxl\:pt-2{padding-top:.5rem}.xxl\:pr-2{padding-right:.5rem}.xxl\:pb-2{padding-bottom:.5rem}.xxl\:pl-2{padding-left:.5rem}.xxl\:pt-3{padding-top:.75rem}.xxl\:pr-3{padding-right:.75rem}.xxl\:pb-3{padding-bottom:.75rem}.xxl\:pl-3{padding-left:.75rem}.xxl\:pt-4{padding-top:1rem}.xxl\:pr-4{padding-right:1rem}.xxl\:pb-4{padding-bottom:1rem}.xxl\:pl-4{padding-left:1rem}.xxl\:pt-5{padding-top:1.25rem}.xxl\:pr-5{padding-right:1.25rem}.xxl\:pb-5{padding-bottom:1.25rem}.xxl\:pl-5{padding-left:1.25rem}.xxl\:pt-6{padding-top:1.5rem}.xxl\:pr-6{padding-right:1.5rem}.xxl\:pb-6{padding-bottom:1.5rem}.xxl\:pl-6{padding-left:1.5rem}.xxl\:pt-8{padding-top:2rem}.xxl\:pr-8{padding-right:2rem}.xxl\:pb-8{padding-bottom:2rem}.xxl\:pl-8{padding-left:2rem}.xxl\:pt-10{padding-top:2.5rem}.xxl\:pr-10{padding-right:2.5rem}.xxl\:pb-10{padding-bottom:2.5rem}.xxl\:pl-10{padding-left:2.5rem}.xxl\:pt-12{padding-top:3rem}.xxl\:pr-12{padding-right:3rem}.xxl\:pb-12{padding-bottom:3rem}.xxl\:pl-12{padding-left:3rem}.xxl\:pt-16{padding-top:4rem}.xxl\:pr-16{padding-right:4rem}.xxl\:pb-16{padding-bottom:4rem}.xxl\:pl-16{padding-left:4rem}.xxl\:pt-20{padding-top:5rem}.xxl\:pr-20{padding-right:5rem}.xxl\:pb-20{padding-bottom:5rem}.xxl\:pl-20{padding-left:5rem}.xxl\:pt-24{padding-top:6rem}.xxl\:pr-24{padding-right:6rem}.xxl\:pb-24{padding-bottom:6rem}.xxl\:pl-24{padding-left:6rem}.xxl\:pt-32{padding-top:8rem}.xxl\:pr-32{padding-right:8rem}.xxl\:pb-32{padding-bottom:8rem}.xxl\:pl-32{padding-left:8rem}.xxl\:pt-40{padding-top:10rem}.xxl\:pr-40{padding-right:10rem}.xxl\:pb-40{padding-bottom:10rem}.xxl\:pl-40{padding-left:10rem}.xxl\:pt-48{padding-top:12rem}.xxl\:pr-48{padding-right:12rem}.xxl\:pb-48{padding-bottom:12rem}.xxl\:pl-48{padding-left:12rem}.xxl\:pt-56{padding-top:14rem}.xxl\:pr-56{padding-right:14rem}.xxl\:pb-56{padding-bottom:14rem}.xxl\:pl-56{padding-left:14rem}.xxl\:pt-64{padding-top:16rem}.xxl\:pr-64{padding-right:16rem}.xxl\:pb-64{padding-bottom:16rem}.xxl\:pl-64{padding-left:16rem}.xxl\:pt-px{padding-top:1px}.xxl\:pr-px{padding-right:1px}.xxl\:pb-px{padding-bottom:1px}.xxl\:pl-px{padding-left:1px}.xxl\:placeholder-transparent::placeholder{color:transparent}.xxl\:placeholder-current::placeholder{color:currentColor}.xxl\:placeholder-black::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xxl\:placeholder-white::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xxl\:placeholder-gray-100::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xxl\:placeholder-gray-200::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xxl\:placeholder-gray-300::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xxl\:placeholder-gray-400::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xxl\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xxl\:placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xxl\:placeholder-gray-700::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xxl\:placeholder-gray-800::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xxl\:placeholder-gray-900::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xxl\:placeholder-red-100::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xxl\:placeholder-red-200::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xxl\:placeholder-red-300::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xxl\:placeholder-red-400::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xxl\:placeholder-red-500::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xxl\:placeholder-red-600::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xxl\:placeholder-red-700::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xxl\:placeholder-red-800::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xxl\:placeholder-red-900::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xxl\:placeholder-orange-100::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xxl\:placeholder-orange-200::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xxl\:placeholder-orange-300::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xxl\:placeholder-orange-400::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xxl\:placeholder-orange-500::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xxl\:placeholder-orange-600::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xxl\:placeholder-orange-700::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xxl\:placeholder-orange-800::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xxl\:placeholder-orange-900::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xxl\:placeholder-yellow-100::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xxl\:placeholder-yellow-200::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xxl\:placeholder-yellow-300::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xxl\:placeholder-yellow-400::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xxl\:placeholder-yellow-500::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xxl\:placeholder-yellow-600::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xxl\:placeholder-yellow-700::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xxl\:placeholder-yellow-800::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xxl\:placeholder-yellow-900::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xxl\:placeholder-green-100::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xxl\:placeholder-green-200::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xxl\:placeholder-green-300::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xxl\:placeholder-green-400::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xxl\:placeholder-green-500::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xxl\:placeholder-green-600::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xxl\:placeholder-green-700::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xxl\:placeholder-green-800::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xxl\:placeholder-green-900::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xxl\:placeholder-teal-100::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xxl\:placeholder-teal-200::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xxl\:placeholder-teal-300::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xxl\:placeholder-teal-400::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xxl\:placeholder-teal-500::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xxl\:placeholder-teal-600::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xxl\:placeholder-teal-700::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xxl\:placeholder-teal-800::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xxl\:placeholder-teal-900::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xxl\:placeholder-blue-100::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xxl\:placeholder-blue-200::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xxl\:placeholder-blue-300::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xxl\:placeholder-blue-400::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xxl\:placeholder-blue-500::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xxl\:placeholder-blue-600::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xxl\:placeholder-blue-700::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xxl\:placeholder-blue-800::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xxl\:placeholder-blue-900::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xxl\:placeholder-indigo-100::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xxl\:placeholder-indigo-200::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xxl\:placeholder-indigo-300::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xxl\:placeholder-indigo-400::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xxl\:placeholder-indigo-500::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xxl\:placeholder-indigo-600::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xxl\:placeholder-indigo-700::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xxl\:placeholder-indigo-800::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xxl\:placeholder-indigo-900::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xxl\:placeholder-purple-100::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xxl\:placeholder-purple-200::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xxl\:placeholder-purple-300::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xxl\:placeholder-purple-400::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xxl\:placeholder-purple-500::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xxl\:placeholder-purple-600::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xxl\:placeholder-purple-700::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xxl\:placeholder-purple-800::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xxl\:placeholder-purple-900::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xxl\:placeholder-pink-100::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xxl\:placeholder-pink-200::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xxl\:placeholder-pink-300::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xxl\:placeholder-pink-400::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xxl\:placeholder-pink-500::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xxl\:placeholder-pink-600::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xxl\:placeholder-pink-700::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xxl\:placeholder-pink-800::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xxl\:placeholder-pink-900::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xxl\:placeholder-primary::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xxl\:placeholder-secondary::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xxl\:placeholder-greenish-blue::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xxl\:placeholder-blue-gray::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xxl\:focus\:placeholder-transparent:focus::placeholder{color:transparent}.xxl\:focus\:placeholder-current:focus::placeholder{color:currentColor}.xxl\:focus\:placeholder-black:focus::placeholder{--placeholder-opacity:1;color:#000;color:rgba(0,0,0,var(--placeholder-opacity))}.xxl\:focus\:placeholder-white:focus::placeholder{--placeholder-opacity:1;color:#fff;color:rgba(255,255,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-100:focus::placeholder{--placeholder-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-200:focus::placeholder{--placeholder-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-300:focus::placeholder{--placeholder-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-400:focus::placeholder{--placeholder-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#718096;color:rgba(113,128,150,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-700:focus::placeholder{--placeholder-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-800:focus::placeholder{--placeholder-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--placeholder-opacity))}.xxl\:focus\:placeholder-gray-900:focus::placeholder{--placeholder-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-200:focus::placeholder{--placeholder-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-300:focus::placeholder{--placeholder-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-400:focus::placeholder{--placeholder-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-500:focus::placeholder{--placeholder-opacity:1;color:#f56565;color:rgba(245,101,101,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-600:focus::placeholder{--placeholder-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-700:focus::placeholder{--placeholder-opacity:1;color:#c53030;color:rgba(197,48,48,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-800:focus::placeholder{--placeholder-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--placeholder-opacity))}.xxl\:focus\:placeholder-red-900:focus::placeholder{--placeholder-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-100:focus::placeholder{--placeholder-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-200:focus::placeholder{--placeholder-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-300:focus::placeholder{--placeholder-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-400:focus::placeholder{--placeholder-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-500:focus::placeholder{--placeholder-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-600:focus::placeholder{--placeholder-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-700:focus::placeholder{--placeholder-opacity:1;color:#c05621;color:rgba(192,86,33,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-800:focus::placeholder{--placeholder-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--placeholder-opacity))}.xxl\:focus\:placeholder-orange-900:focus::placeholder{--placeholder-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-100:focus::placeholder{--placeholder-opacity:1;color:ivory;color:rgba(255,255,240,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-200:focus::placeholder{--placeholder-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-300:focus::placeholder{--placeholder-opacity:1;color:#faf089;color:rgba(250,240,137,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-400:focus::placeholder{--placeholder-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-500:focus::placeholder{--placeholder-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-600:focus::placeholder{--placeholder-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-700:focus::placeholder{--placeholder-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-800:focus::placeholder{--placeholder-opacity:1;color:#975a16;color:rgba(151,90,22,var(--placeholder-opacity))}.xxl\:focus\:placeholder-yellow-900:focus::placeholder{--placeholder-opacity:1;color:#744210;color:rgba(116,66,16,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-100:focus::placeholder{--placeholder-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-200:focus::placeholder{--placeholder-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-300:focus::placeholder{--placeholder-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-400:focus::placeholder{--placeholder-opacity:1;color:#68d391;color:rgba(104,211,145,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-500:focus::placeholder{--placeholder-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-600:focus::placeholder{--placeholder-opacity:1;color:#38a169;color:rgba(56,161,105,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-700:focus::placeholder{--placeholder-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-800:focus::placeholder{--placeholder-opacity:1;color:#276749;color:rgba(39,103,73,var(--placeholder-opacity))}.xxl\:focus\:placeholder-green-900:focus::placeholder{--placeholder-opacity:1;color:#22543d;color:rgba(34,84,61,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-100:focus::placeholder{--placeholder-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-200:focus::placeholder{--placeholder-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-300:focus::placeholder{--placeholder-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-400:focus::placeholder{--placeholder-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-500:focus::placeholder{--placeholder-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-600:focus::placeholder{--placeholder-opacity:1;color:#319795;color:rgba(49,151,149,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-700:focus::placeholder{--placeholder-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-800:focus::placeholder{--placeholder-opacity:1;color:#285e61;color:rgba(40,94,97,var(--placeholder-opacity))}.xxl\:focus\:placeholder-teal-900:focus::placeholder{--placeholder-opacity:1;color:#234e52;color:rgba(35,78,82,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-100:focus::placeholder{--placeholder-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-200:focus::placeholder{--placeholder-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-300:focus::placeholder{--placeholder-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-400:focus::placeholder{--placeholder-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-500:focus::placeholder{--placeholder-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-600:focus::placeholder{--placeholder-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-700:focus::placeholder{--placeholder-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-800:focus::placeholder{--placeholder-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-900:focus::placeholder{--placeholder-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-100:focus::placeholder{--placeholder-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-200:focus::placeholder{--placeholder-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-300:focus::placeholder{--placeholder-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-400:focus::placeholder{--placeholder-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-500:focus::placeholder{--placeholder-opacity:1;color:#667eea;color:rgba(102,126,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-600:focus::placeholder{--placeholder-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-700:focus::placeholder{--placeholder-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-800:focus::placeholder{--placeholder-opacity:1;color:#434190;color:rgba(67,65,144,var(--placeholder-opacity))}.xxl\:focus\:placeholder-indigo-900:focus::placeholder{--placeholder-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-100:focus::placeholder{--placeholder-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-200:focus::placeholder{--placeholder-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-300:focus::placeholder{--placeholder-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-400:focus::placeholder{--placeholder-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-500:focus::placeholder{--placeholder-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-600:focus::placeholder{--placeholder-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-700:focus::placeholder{--placeholder-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-800:focus::placeholder{--placeholder-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--placeholder-opacity))}.xxl\:focus\:placeholder-purple-900:focus::placeholder{--placeholder-opacity:1;color:#44337a;color:rgba(68,51,122,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-100:focus::placeholder{--placeholder-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-200:focus::placeholder{--placeholder-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-300:focus::placeholder{--placeholder-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-400:focus::placeholder{--placeholder-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-500:focus::placeholder{--placeholder-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-600:focus::placeholder{--placeholder-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-700:focus::placeholder{--placeholder-opacity:1;color:#b83280;color:rgba(184,50,128,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-800:focus::placeholder{--placeholder-opacity:1;color:#97266d;color:rgba(151,38,109,var(--placeholder-opacity))}.xxl\:focus\:placeholder-pink-900:focus::placeholder{--placeholder-opacity:1;color:#702459;color:rgba(112,36,89,var(--placeholder-opacity))}.xxl\:focus\:placeholder-primary:focus::placeholder{--placeholder-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-secondary:focus::placeholder{--placeholder-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--placeholder-opacity))}.xxl\:focus\:placeholder-greenish-blue:focus::placeholder{--placeholder-opacity:1;color:#adffed;color:rgba(173,255,237,var(--placeholder-opacity))}.xxl\:focus\:placeholder-blue-gray:focus::placeholder{--placeholder-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--placeholder-opacity))}.xxl\:placeholder-opacity-0::placeholder{--placeholder-opacity:0}.xxl\:placeholder-opacity-25::placeholder{--placeholder-opacity:0.25}.xxl\:placeholder-opacity-50::placeholder{--placeholder-opacity:0.5}.xxl\:placeholder-opacity-75::placeholder{--placeholder-opacity:0.75}.xxl\:placeholder-opacity-100::placeholder{--placeholder-opacity:1}.xxl\:focus\:placeholder-opacity-0:focus::placeholder{--placeholder-opacity:0}.xxl\:focus\:placeholder-opacity-25:focus::placeholder{--placeholder-opacity:0.25}.xxl\:focus\:placeholder-opacity-50:focus::placeholder{--placeholder-opacity:0.5}.xxl\:focus\:placeholder-opacity-75:focus::placeholder{--placeholder-opacity:0.75}.xxl\:focus\:placeholder-opacity-100:focus::placeholder{--placeholder-opacity:1}.xxl\:pointer-events-none{pointer-events:none}.xxl\:pointer-events-auto{pointer-events:auto}.xxl\:static{position:static}.xxl\:fixed{position:fixed}.xxl\:absolute{position:absolute}.xxl\:relative{position:relative}.xxl\:sticky{position:sticky}.xxl\:inset-0{top:0;right:0;bottom:0;left:0}.xxl\:inset-auto{top:auto;right:auto;bottom:auto;left:auto}.xxl\:inset-y-0{top:0;bottom:0}.xxl\:inset-x-0{right:0;left:0}.xxl\:inset-y-auto{top:auto;bottom:auto}.xxl\:inset-x-auto{right:auto;left:auto}.xxl\:top-0{top:0}.xxl\:right-0{right:0}.xxl\:bottom-0{bottom:0}.xxl\:left-0{left:0}.xxl\:top-auto{top:auto}.xxl\:right-auto{right:auto}.xxl\:bottom-auto{bottom:auto}.xxl\:left-auto{left:auto}.xxl\:resize-none{resize:none}.xxl\:resize-y{resize:vertical}.xxl\:resize-x{resize:horizontal}.xxl\:resize{resize:both}.xxl\:shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:shadow-outline{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:shadow-none{box-shadow:none}.xxl\:hover\:shadow-xs:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:hover\:shadow:hover{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:hover\:shadow-inner:hover{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:hover\:shadow-outline:hover{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:hover\:shadow-none:hover{box-shadow:none}.xxl\:focus\:shadow-xs:focus{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.xxl\:focus\:shadow-sm:focus{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.xxl\:focus\:shadow:focus{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.xxl\:focus\:shadow-md:focus{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.xxl\:focus\:shadow-lg:focus{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.xxl\:focus\:shadow-xl:focus{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.xxl\:focus\:shadow-2xl:focus{box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.xxl\:focus\:shadow-inner:focus{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.xxl\:focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(66,153,225,.5)}.xxl\:focus\:shadow-none:focus{box-shadow:none}.xxl\:fill-current{fill:currentColor}.xxl\:stroke-current{stroke:currentColor}.xxl\:stroke-0{stroke-width:0}.xxl\:stroke-1{stroke-width:1}.xxl\:stroke-2{stroke-width:2}.xxl\:table-auto{table-layout:auto}.xxl\:table-fixed{table-layout:fixed}.xxl\:text-left{text-align:left}.xxl\:text-center{text-align:center}.xxl\:text-right{text-align:right}.xxl\:text-justify{text-align:justify}.xxl\:text-transparent{color:transparent}.xxl\:text-current{color:currentColor}.xxl\:text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:text-gray-100{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:text-red-100{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:text-red-200{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:text-red-300{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:text-red-400{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:text-red-600{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:text-red-700{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:text-red-800{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:text-red-900{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:text-orange-100{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:text-orange-200{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:text-orange-300{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:text-orange-400{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:text-orange-500{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:text-orange-600{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:text-orange-700{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:text-orange-800{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:text-orange-900{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:text-yellow-100{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:text-yellow-200{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:text-yellow-300{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:text-yellow-400{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:text-yellow-500{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:text-yellow-600{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:text-yellow-700{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:text-yellow-800{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:text-yellow-900{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:text-green-100{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:text-green-200{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:text-green-300{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:text-green-400{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:text-green-500{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:text-green-600{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:text-green-700{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:text-green-800{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:text-green-900{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:text-teal-100{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:text-teal-300{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:text-teal-400{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:text-teal-800{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:text-teal-900{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:text-blue-100{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:text-blue-200{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:text-blue-300{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:text-blue-400{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:text-blue-500{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:text-blue-600{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:text-blue-700{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:text-blue-800{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:text-blue-900{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:text-indigo-100{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:text-indigo-200{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:text-indigo-300{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:text-indigo-400{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:text-indigo-500{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:text-indigo-600{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:text-indigo-700{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:text-indigo-800{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:text-indigo-900{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:text-purple-100{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:text-purple-200{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:text-purple-300{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:text-purple-400{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:text-purple-500{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:text-purple-600{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:text-purple-700{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:text-purple-800{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:text-purple-900{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:text-pink-100{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:text-pink-200{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:text-pink-300{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:text-pink-400{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:text-pink-500{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:text-pink-600{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:text-pink-700{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:text-pink-800{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:text-pink-900{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:text-primary{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:text-secondary{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:text-greenish-blue{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:text-blue-gray{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:hover\:text-transparent:hover{color:transparent}.xxl\:hover\:text-current:hover{color:currentColor}.xxl\:hover\:text-black:hover{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:hover\:text-gray-100:hover{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:hover\:text-gray-200:hover{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:hover\:text-gray-300:hover{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:hover\:text-gray-400:hover{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:hover\:text-gray-500:hover{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:hover\:text-gray-600:hover{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:hover\:text-gray-700:hover{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:hover\:text-gray-800:hover{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:hover\:text-gray-900:hover{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:hover\:text-red-100:hover{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:hover\:text-red-200:hover{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:hover\:text-red-300:hover{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:hover\:text-red-400:hover{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:hover\:text-red-500:hover{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:hover\:text-red-600:hover{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:hover\:text-red-700:hover{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:hover\:text-red-800:hover{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:hover\:text-red-900:hover{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:hover\:text-orange-100:hover{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:hover\:text-orange-200:hover{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:hover\:text-orange-300:hover{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:hover\:text-orange-400:hover{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:hover\:text-orange-500:hover{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:hover\:text-orange-600:hover{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:hover\:text-orange-700:hover{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:hover\:text-orange-800:hover{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:hover\:text-orange-900:hover{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:hover\:text-yellow-100:hover{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:hover\:text-yellow-200:hover{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:hover\:text-yellow-300:hover{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:hover\:text-yellow-400:hover{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:hover\:text-yellow-500:hover{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:hover\:text-yellow-600:hover{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:hover\:text-yellow-700:hover{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:hover\:text-yellow-800:hover{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:hover\:text-yellow-900:hover{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:hover\:text-green-100:hover{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:hover\:text-green-200:hover{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:hover\:text-green-300:hover{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:hover\:text-green-400:hover{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:hover\:text-green-500:hover{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:hover\:text-green-600:hover{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:hover\:text-green-700:hover{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:hover\:text-green-800:hover{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:hover\:text-green-900:hover{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:hover\:text-teal-100:hover{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:hover\:text-teal-200:hover{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:hover\:text-teal-300:hover{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:hover\:text-teal-400:hover{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:hover\:text-teal-500:hover{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:hover\:text-teal-600:hover{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:hover\:text-teal-700:hover{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:hover\:text-teal-800:hover{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:hover\:text-teal-900:hover{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:hover\:text-blue-100:hover{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:hover\:text-blue-200:hover{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:hover\:text-blue-300:hover{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:hover\:text-blue-400:hover{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:hover\:text-blue-500:hover{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:hover\:text-blue-600:hover{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:hover\:text-blue-700:hover{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:hover\:text-blue-800:hover{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:hover\:text-blue-900:hover{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:hover\:text-indigo-100:hover{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:hover\:text-indigo-200:hover{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:hover\:text-indigo-300:hover{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:hover\:text-indigo-400:hover{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:hover\:text-indigo-500:hover{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:hover\:text-indigo-600:hover{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:hover\:text-indigo-700:hover{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:hover\:text-indigo-800:hover{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:hover\:text-indigo-900:hover{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:hover\:text-purple-100:hover{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:hover\:text-purple-200:hover{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:hover\:text-purple-300:hover{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:hover\:text-purple-400:hover{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:hover\:text-purple-500:hover{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:hover\:text-purple-600:hover{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:hover\:text-purple-700:hover{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:hover\:text-purple-800:hover{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:hover\:text-purple-900:hover{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:hover\:text-pink-100:hover{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:hover\:text-pink-200:hover{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:hover\:text-pink-300:hover{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:hover\:text-pink-400:hover{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:hover\:text-pink-500:hover{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:hover\:text-pink-600:hover{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:hover\:text-pink-700:hover{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:hover\:text-pink-800:hover{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:hover\:text-pink-900:hover{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:hover\:text-primary:hover{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:hover\:text-secondary:hover{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:hover\:text-greenish-blue:hover{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:hover\:text-blue-gray:hover{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:focus\:text-transparent:focus{color:transparent}.xxl\:focus\:text-current:focus{color:currentColor}.xxl\:focus\:text-black:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.xxl\:focus\:text-white:focus{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.xxl\:focus\:text-gray-100:focus{--text-opacity:1;color:#f7fafc;color:rgba(247,250,252,var(--text-opacity))}.xxl\:focus\:text-gray-200:focus{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.xxl\:focus\:text-gray-300:focus{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.xxl\:focus\:text-gray-400:focus{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.xxl\:focus\:text-gray-500:focus{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.xxl\:focus\:text-gray-600:focus{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.xxl\:focus\:text-gray-700:focus{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.xxl\:focus\:text-gray-800:focus{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.xxl\:focus\:text-gray-900:focus{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.xxl\:focus\:text-red-100:focus{--text-opacity:1;color:#fff5f5;color:rgba(255,245,245,var(--text-opacity))}.xxl\:focus\:text-red-200:focus{--text-opacity:1;color:#fed7d7;color:rgba(254,215,215,var(--text-opacity))}.xxl\:focus\:text-red-300:focus{--text-opacity:1;color:#feb2b2;color:rgba(254,178,178,var(--text-opacity))}.xxl\:focus\:text-red-400:focus{--text-opacity:1;color:#fc8181;color:rgba(252,129,129,var(--text-opacity))}.xxl\:focus\:text-red-500:focus{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.xxl\:focus\:text-red-600:focus{--text-opacity:1;color:#e53e3e;color:rgba(229,62,62,var(--text-opacity))}.xxl\:focus\:text-red-700:focus{--text-opacity:1;color:#c53030;color:rgba(197,48,48,var(--text-opacity))}.xxl\:focus\:text-red-800:focus{--text-opacity:1;color:#9b2c2c;color:rgba(155,44,44,var(--text-opacity))}.xxl\:focus\:text-red-900:focus{--text-opacity:1;color:#742a2a;color:rgba(116,42,42,var(--text-opacity))}.xxl\:focus\:text-orange-100:focus{--text-opacity:1;color:#fffaf0;color:rgba(255,250,240,var(--text-opacity))}.xxl\:focus\:text-orange-200:focus{--text-opacity:1;color:#feebc8;color:rgba(254,235,200,var(--text-opacity))}.xxl\:focus\:text-orange-300:focus{--text-opacity:1;color:#fbd38d;color:rgba(251,211,141,var(--text-opacity))}.xxl\:focus\:text-orange-400:focus{--text-opacity:1;color:#f6ad55;color:rgba(246,173,85,var(--text-opacity))}.xxl\:focus\:text-orange-500:focus{--text-opacity:1;color:#ed8936;color:rgba(237,137,54,var(--text-opacity))}.xxl\:focus\:text-orange-600:focus{--text-opacity:1;color:#dd6b20;color:rgba(221,107,32,var(--text-opacity))}.xxl\:focus\:text-orange-700:focus{--text-opacity:1;color:#c05621;color:rgba(192,86,33,var(--text-opacity))}.xxl\:focus\:text-orange-800:focus{--text-opacity:1;color:#9c4221;color:rgba(156,66,33,var(--text-opacity))}.xxl\:focus\:text-orange-900:focus{--text-opacity:1;color:#7b341e;color:rgba(123,52,30,var(--text-opacity))}.xxl\:focus\:text-yellow-100:focus{--text-opacity:1;color:ivory;color:rgba(255,255,240,var(--text-opacity))}.xxl\:focus\:text-yellow-200:focus{--text-opacity:1;color:#fefcbf;color:rgba(254,252,191,var(--text-opacity))}.xxl\:focus\:text-yellow-300:focus{--text-opacity:1;color:#faf089;color:rgba(250,240,137,var(--text-opacity))}.xxl\:focus\:text-yellow-400:focus{--text-opacity:1;color:#f6e05e;color:rgba(246,224,94,var(--text-opacity))}.xxl\:focus\:text-yellow-500:focus{--text-opacity:1;color:#ecc94b;color:rgba(236,201,75,var(--text-opacity))}.xxl\:focus\:text-yellow-600:focus{--text-opacity:1;color:#d69e2e;color:rgba(214,158,46,var(--text-opacity))}.xxl\:focus\:text-yellow-700:focus{--text-opacity:1;color:#b7791f;color:rgba(183,121,31,var(--text-opacity))}.xxl\:focus\:text-yellow-800:focus{--text-opacity:1;color:#975a16;color:rgba(151,90,22,var(--text-opacity))}.xxl\:focus\:text-yellow-900:focus{--text-opacity:1;color:#744210;color:rgba(116,66,16,var(--text-opacity))}.xxl\:focus\:text-green-100:focus{--text-opacity:1;color:#f0fff4;color:rgba(240,255,244,var(--text-opacity))}.xxl\:focus\:text-green-200:focus{--text-opacity:1;color:#c6f6d5;color:rgba(198,246,213,var(--text-opacity))}.xxl\:focus\:text-green-300:focus{--text-opacity:1;color:#9ae6b4;color:rgba(154,230,180,var(--text-opacity))}.xxl\:focus\:text-green-400:focus{--text-opacity:1;color:#68d391;color:rgba(104,211,145,var(--text-opacity))}.xxl\:focus\:text-green-500:focus{--text-opacity:1;color:#48bb78;color:rgba(72,187,120,var(--text-opacity))}.xxl\:focus\:text-green-600:focus{--text-opacity:1;color:#38a169;color:rgba(56,161,105,var(--text-opacity))}.xxl\:focus\:text-green-700:focus{--text-opacity:1;color:#2f855a;color:rgba(47,133,90,var(--text-opacity))}.xxl\:focus\:text-green-800:focus{--text-opacity:1;color:#276749;color:rgba(39,103,73,var(--text-opacity))}.xxl\:focus\:text-green-900:focus{--text-opacity:1;color:#22543d;color:rgba(34,84,61,var(--text-opacity))}.xxl\:focus\:text-teal-100:focus{--text-opacity:1;color:#e6fffa;color:rgba(230,255,250,var(--text-opacity))}.xxl\:focus\:text-teal-200:focus{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.xxl\:focus\:text-teal-300:focus{--text-opacity:1;color:#81e6d9;color:rgba(129,230,217,var(--text-opacity))}.xxl\:focus\:text-teal-400:focus{--text-opacity:1;color:#4fd1c5;color:rgba(79,209,197,var(--text-opacity))}.xxl\:focus\:text-teal-500:focus{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.xxl\:focus\:text-teal-600:focus{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.xxl\:focus\:text-teal-700:focus{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.xxl\:focus\:text-teal-800:focus{--text-opacity:1;color:#285e61;color:rgba(40,94,97,var(--text-opacity))}.xxl\:focus\:text-teal-900:focus{--text-opacity:1;color:#234e52;color:rgba(35,78,82,var(--text-opacity))}.xxl\:focus\:text-blue-100:focus{--text-opacity:1;color:#ebf8ff;color:rgba(235,248,255,var(--text-opacity))}.xxl\:focus\:text-blue-200:focus{--text-opacity:1;color:#bee3f8;color:rgba(190,227,248,var(--text-opacity))}.xxl\:focus\:text-blue-300:focus{--text-opacity:1;color:#90cdf4;color:rgba(144,205,244,var(--text-opacity))}.xxl\:focus\:text-blue-400:focus{--text-opacity:1;color:#63b3ed;color:rgba(99,179,237,var(--text-opacity))}.xxl\:focus\:text-blue-500:focus{--text-opacity:1;color:#4299e1;color:rgba(66,153,225,var(--text-opacity))}.xxl\:focus\:text-blue-600:focus{--text-opacity:1;color:#3182ce;color:rgba(49,130,206,var(--text-opacity))}.xxl\:focus\:text-blue-700:focus{--text-opacity:1;color:#2b6cb0;color:rgba(43,108,176,var(--text-opacity))}.xxl\:focus\:text-blue-800:focus{--text-opacity:1;color:#2c5282;color:rgba(44,82,130,var(--text-opacity))}.xxl\:focus\:text-blue-900:focus{--text-opacity:1;color:#2a4365;color:rgba(42,67,101,var(--text-opacity))}.xxl\:focus\:text-indigo-100:focus{--text-opacity:1;color:#ebf4ff;color:rgba(235,244,255,var(--text-opacity))}.xxl\:focus\:text-indigo-200:focus{--text-opacity:1;color:#c3dafe;color:rgba(195,218,254,var(--text-opacity))}.xxl\:focus\:text-indigo-300:focus{--text-opacity:1;color:#a3bffa;color:rgba(163,191,250,var(--text-opacity))}.xxl\:focus\:text-indigo-400:focus{--text-opacity:1;color:#7f9cf5;color:rgba(127,156,245,var(--text-opacity))}.xxl\:focus\:text-indigo-500:focus{--text-opacity:1;color:#667eea;color:rgba(102,126,234,var(--text-opacity))}.xxl\:focus\:text-indigo-600:focus{--text-opacity:1;color:#5a67d8;color:rgba(90,103,216,var(--text-opacity))}.xxl\:focus\:text-indigo-700:focus{--text-opacity:1;color:#4c51bf;color:rgba(76,81,191,var(--text-opacity))}.xxl\:focus\:text-indigo-800:focus{--text-opacity:1;color:#434190;color:rgba(67,65,144,var(--text-opacity))}.xxl\:focus\:text-indigo-900:focus{--text-opacity:1;color:#3c366b;color:rgba(60,54,107,var(--text-opacity))}.xxl\:focus\:text-purple-100:focus{--text-opacity:1;color:#faf5ff;color:rgba(250,245,255,var(--text-opacity))}.xxl\:focus\:text-purple-200:focus{--text-opacity:1;color:#e9d8fd;color:rgba(233,216,253,var(--text-opacity))}.xxl\:focus\:text-purple-300:focus{--text-opacity:1;color:#d6bcfa;color:rgba(214,188,250,var(--text-opacity))}.xxl\:focus\:text-purple-400:focus{--text-opacity:1;color:#b794f4;color:rgba(183,148,244,var(--text-opacity))}.xxl\:focus\:text-purple-500:focus{--text-opacity:1;color:#9f7aea;color:rgba(159,122,234,var(--text-opacity))}.xxl\:focus\:text-purple-600:focus{--text-opacity:1;color:#805ad5;color:rgba(128,90,213,var(--text-opacity))}.xxl\:focus\:text-purple-700:focus{--text-opacity:1;color:#6b46c1;color:rgba(107,70,193,var(--text-opacity))}.xxl\:focus\:text-purple-800:focus{--text-opacity:1;color:#553c9a;color:rgba(85,60,154,var(--text-opacity))}.xxl\:focus\:text-purple-900:focus{--text-opacity:1;color:#44337a;color:rgba(68,51,122,var(--text-opacity))}.xxl\:focus\:text-pink-100:focus{--text-opacity:1;color:#fff5f7;color:rgba(255,245,247,var(--text-opacity))}.xxl\:focus\:text-pink-200:focus{--text-opacity:1;color:#fed7e2;color:rgba(254,215,226,var(--text-opacity))}.xxl\:focus\:text-pink-300:focus{--text-opacity:1;color:#fbb6ce;color:rgba(251,182,206,var(--text-opacity))}.xxl\:focus\:text-pink-400:focus{--text-opacity:1;color:#f687b3;color:rgba(246,135,179,var(--text-opacity))}.xxl\:focus\:text-pink-500:focus{--text-opacity:1;color:#ed64a6;color:rgba(237,100,166,var(--text-opacity))}.xxl\:focus\:text-pink-600:focus{--text-opacity:1;color:#d53f8c;color:rgba(213,63,140,var(--text-opacity))}.xxl\:focus\:text-pink-700:focus{--text-opacity:1;color:#b83280;color:rgba(184,50,128,var(--text-opacity))}.xxl\:focus\:text-pink-800:focus{--text-opacity:1;color:#97266d;color:rgba(151,38,109,var(--text-opacity))}.xxl\:focus\:text-pink-900:focus{--text-opacity:1;color:#702459;color:rgba(112,36,89,var(--text-opacity))}.xxl\:focus\:text-primary:focus{--text-opacity:1;color:#00d1ff;color:rgba(0,209,255,var(--text-opacity))}.xxl\:focus\:text-secondary:focus{--text-opacity:1;color:#e077ff;color:rgba(224,119,255,var(--text-opacity))}.xxl\:focus\:text-greenish-blue:focus{--text-opacity:1;color:#adffed;color:rgba(173,255,237,var(--text-opacity))}.xxl\:focus\:text-blue-gray:focus{--text-opacity:1;color:#cfe1e6;color:rgba(207,225,230,var(--text-opacity))}.xxl\:text-opacity-0{--text-opacity:0}.xxl\:text-opacity-25{--text-opacity:0.25}.xxl\:text-opacity-50{--text-opacity:0.5}.xxl\:text-opacity-75{--text-opacity:0.75}.xxl\:text-opacity-100{--text-opacity:1}.xxl\:hover\:text-opacity-0:hover{--text-opacity:0}.xxl\:hover\:text-opacity-25:hover{--text-opacity:0.25}.xxl\:hover\:text-opacity-50:hover{--text-opacity:0.5}.xxl\:hover\:text-opacity-75:hover{--text-opacity:0.75}.xxl\:hover\:text-opacity-100:hover{--text-opacity:1}.xxl\:focus\:text-opacity-0:focus{--text-opacity:0}.xxl\:focus\:text-opacity-25:focus{--text-opacity:0.25}.xxl\:focus\:text-opacity-50:focus{--text-opacity:0.5}.xxl\:focus\:text-opacity-75:focus{--text-opacity:0.75}.xxl\:focus\:text-opacity-100:focus{--text-opacity:1}.xxl\:italic{font-style:italic}.xxl\:not-italic{font-style:normal}.xxl\:uppercase{text-transform:uppercase}.xxl\:lowercase{text-transform:lowercase}.xxl\:capitalize{text-transform:capitalize}.xxl\:normal-case{text-transform:none}.xxl\:underline{text-decoration:underline}.xxl\:line-through{text-decoration:line-through}.xxl\:no-underline{text-decoration:none}.xxl\:hover\:underline:hover{text-decoration:underline}.xxl\:hover\:line-through:hover{text-decoration:line-through}.xxl\:hover\:no-underline:hover{text-decoration:none}.xxl\:focus\:underline:focus{text-decoration:underline}.xxl\:focus\:line-through:focus{text-decoration:line-through}.xxl\:focus\:no-underline:focus{text-decoration:none}.xxl\:antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.xxl\:subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.xxl\:diagonal-fractions,.xxl\:lining-nums,.xxl\:oldstyle-nums,.xxl\:ordinal,.xxl\:proportional-nums,.xxl\:slashed-zero,.xxl\:stacked-fractions,.xxl\:tabular-nums{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.xxl\:normal-nums{font-variant-numeric:normal}.xxl\:ordinal{--font-variant-numeric-ordinal:ordinal}.xxl\:slashed-zero{--font-variant-numeric-slashed-zero:slashed-zero}.xxl\:lining-nums{--font-variant-numeric-figure:lining-nums}.xxl\:oldstyle-nums{--font-variant-numeric-figure:oldstyle-nums}.xxl\:proportional-nums{--font-variant-numeric-spacing:proportional-nums}.xxl\:tabular-nums{--font-variant-numeric-spacing:tabular-nums}.xxl\:diagonal-fractions{--font-variant-numeric-fraction:diagonal-fractions}.xxl\:stacked-fractions{--font-variant-numeric-fraction:stacked-fractions}.xxl\:tracking-tighter{letter-spacing:-.05em}.xxl\:tracking-tight{letter-spacing:-.025em}.xxl\:tracking-normal{letter-spacing:0}.xxl\:tracking-wide{letter-spacing:.025em}.xxl\:tracking-wider{letter-spacing:.05em}.xxl\:tracking-widest{letter-spacing:.1em}.xxl\:select-none{-webkit-user-select:none;user-select:none}.xxl\:select-text{-webkit-user-select:text;user-select:text}.xxl\:select-all{-webkit-user-select:all;user-select:all}.xxl\:select-auto{-webkit-user-select:auto;user-select:auto}.xxl\:align-baseline{vertical-align:baseline}.xxl\:align-top{vertical-align:top}.xxl\:align-middle{vertical-align:middle}.xxl\:align-bottom{vertical-align:bottom}.xxl\:align-text-top{vertical-align:text-top}.xxl\:align-text-bottom{vertical-align:text-bottom}.xxl\:visible{visibility:visible}.xxl\:invisible{visibility:hidden}.xxl\:whitespace-normal{white-space:normal}.xxl\:whitespace-no-wrap{white-space:nowrap}.xxl\:whitespace-pre{white-space:pre}.xxl\:whitespace-pre-line{white-space:pre-line}.xxl\:whitespace-pre-wrap{white-space:pre-wrap}.xxl\:break-normal{word-wrap:normal;overflow-wrap:normal;word-break:normal}.xxl\:break-words{word-wrap:break-word;overflow-wrap:break-word}.xxl\:break-all{word-break:break-all}.xxl\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xxl\:w-0{width:0}.xxl\:w-1{width:.25rem}.xxl\:w-2{width:.5rem}.xxl\:w-3{width:.75rem}.xxl\:w-4{width:1rem}.xxl\:w-5{width:1.25rem}.xxl\:w-6{width:1.5rem}.xxl\:w-8{width:2rem}.xxl\:w-10{width:2.5rem}.xxl\:w-12{width:3rem}.xxl\:w-16{width:4rem}.xxl\:w-20{width:5rem}.xxl\:w-24{width:6rem}.xxl\:w-32{width:8rem}.xxl\:w-40{width:10rem}.xxl\:w-48{width:12rem}.xxl\:w-56{width:14rem}.xxl\:w-64{width:16rem}.xxl\:w-auto{width:auto}.xxl\:w-px{width:1px}.xxl\:w-1\/2{width:50%}.xxl\:w-1\/3{width:33.333333%}.xxl\:w-2\/3{width:66.666667%}.xxl\:w-1\/4{width:25%}.xxl\:w-2\/4{width:50%}.xxl\:w-3\/4{width:75%}.xxl\:w-1\/5{width:20%}.xxl\:w-2\/5{width:40%}.xxl\:w-3\/5{width:60%}.xxl\:w-4\/5{width:80%}.xxl\:w-1\/6{width:16.666667%}.xxl\:w-2\/6{width:33.333333%}.xxl\:w-3\/6{width:50%}.xxl\:w-4\/6{width:66.666667%}.xxl\:w-5\/6{width:83.333333%}.xxl\:w-1\/12{width:8.333333%}.xxl\:w-2\/12{width:16.666667%}.xxl\:w-3\/12{width:25%}.xxl\:w-4\/12{width:33.333333%}.xxl\:w-5\/12{width:41.666667%}.xxl\:w-6\/12{width:50%}.xxl\:w-7\/12{width:58.333333%}.xxl\:w-8\/12{width:66.666667%}.xxl\:w-9\/12{width:75%}.xxl\:w-10\/12{width:83.333333%}.xxl\:w-11\/12{width:91.666667%}.xxl\:w-full{width:100%}.xxl\:w-screen{width:100vw}.xxl\:z-0{z-index:0}.xxl\:z-10{z-index:10}.xxl\:z-20{z-index:20}.xxl\:z-30{z-index:30}.xxl\:z-40{z-index:40}.xxl\:z-50{z-index:50}.xxl\:z-auto{z-index:auto}.xxl\:gap-0{grid-gap:0;gap:0}.xxl\:gap-1{grid-gap:.25rem;gap:.25rem}.xxl\:gap-2{grid-gap:.5rem;gap:.5rem}.xxl\:gap-3{grid-gap:.75rem;gap:.75rem}.xxl\:gap-4{grid-gap:1rem;gap:1rem}.xxl\:gap-5{grid-gap:1.25rem;gap:1.25rem}.xxl\:gap-6{grid-gap:1.5rem;gap:1.5rem}.xxl\:gap-8{grid-gap:2rem;gap:2rem}.xxl\:gap-10{grid-gap:2.5rem;gap:2.5rem}.xxl\:gap-12{grid-gap:3rem;gap:3rem}.xxl\:gap-16{grid-gap:4rem;gap:4rem}.xxl\:gap-20{grid-gap:5rem;gap:5rem}.xxl\:gap-24{grid-gap:6rem;gap:6rem}.xxl\:gap-32{grid-gap:8rem;gap:8rem}.xxl\:gap-40{grid-gap:10rem;gap:10rem}.xxl\:gap-48{grid-gap:12rem;gap:12rem}.xxl\:gap-56{grid-gap:14rem;gap:14rem}.xxl\:gap-64{grid-gap:16rem;gap:16rem}.xxl\:gap-px{grid-gap:1px;gap:1px}.xxl\:col-gap-0{grid-column-gap:0;column-gap:0}.xxl\:col-gap-1{grid-column-gap:.25rem;column-gap:.25rem}.xxl\:col-gap-2{grid-column-gap:.5rem;column-gap:.5rem}.xxl\:col-gap-3{grid-column-gap:.75rem;column-gap:.75rem}.xxl\:col-gap-4{grid-column-gap:1rem;column-gap:1rem}.xxl\:col-gap-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xxl\:col-gap-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xxl\:col-gap-8{grid-column-gap:2rem;column-gap:2rem}.xxl\:col-gap-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xxl\:col-gap-12{grid-column-gap:3rem;column-gap:3rem}.xxl\:col-gap-16{grid-column-gap:4rem;column-gap:4rem}.xxl\:col-gap-20{grid-column-gap:5rem;column-gap:5rem}.xxl\:col-gap-24{grid-column-gap:6rem;column-gap:6rem}.xxl\:col-gap-32{grid-column-gap:8rem;column-gap:8rem}.xxl\:col-gap-40{grid-column-gap:10rem;column-gap:10rem}.xxl\:col-gap-48{grid-column-gap:12rem;column-gap:12rem}.xxl\:col-gap-56{grid-column-gap:14rem;column-gap:14rem}.xxl\:col-gap-64{grid-column-gap:16rem;column-gap:16rem}.xxl\:col-gap-px{grid-column-gap:1px;column-gap:1px}.xxl\:gap-x-0{grid-column-gap:0;column-gap:0}.xxl\:gap-x-1{grid-column-gap:.25rem;column-gap:.25rem}.xxl\:gap-x-2{grid-column-gap:.5rem;column-gap:.5rem}.xxl\:gap-x-3{grid-column-gap:.75rem;column-gap:.75rem}.xxl\:gap-x-4{grid-column-gap:1rem;column-gap:1rem}.xxl\:gap-x-5{grid-column-gap:1.25rem;column-gap:1.25rem}.xxl\:gap-x-6{grid-column-gap:1.5rem;column-gap:1.5rem}.xxl\:gap-x-8{grid-column-gap:2rem;column-gap:2rem}.xxl\:gap-x-10{grid-column-gap:2.5rem;column-gap:2.5rem}.xxl\:gap-x-12{grid-column-gap:3rem;column-gap:3rem}.xxl\:gap-x-16{grid-column-gap:4rem;column-gap:4rem}.xxl\:gap-x-20{grid-column-gap:5rem;column-gap:5rem}.xxl\:gap-x-24{grid-column-gap:6rem;column-gap:6rem}.xxl\:gap-x-32{grid-column-gap:8rem;column-gap:8rem}.xxl\:gap-x-40{grid-column-gap:10rem;column-gap:10rem}.xxl\:gap-x-48{grid-column-gap:12rem;column-gap:12rem}.xxl\:gap-x-56{grid-column-gap:14rem;column-gap:14rem}.xxl\:gap-x-64{grid-column-gap:16rem;column-gap:16rem}.xxl\:gap-x-px{grid-column-gap:1px;column-gap:1px}.xxl\:row-gap-0{grid-row-gap:0;row-gap:0}.xxl\:row-gap-1{grid-row-gap:.25rem;row-gap:.25rem}.xxl\:row-gap-2{grid-row-gap:.5rem;row-gap:.5rem}.xxl\:row-gap-3{grid-row-gap:.75rem;row-gap:.75rem}.xxl\:row-gap-4{grid-row-gap:1rem;row-gap:1rem}.xxl\:row-gap-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xxl\:row-gap-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xxl\:row-gap-8{grid-row-gap:2rem;row-gap:2rem}.xxl\:row-gap-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xxl\:row-gap-12{grid-row-gap:3rem;row-gap:3rem}.xxl\:row-gap-16{grid-row-gap:4rem;row-gap:4rem}.xxl\:row-gap-20{grid-row-gap:5rem;row-gap:5rem}.xxl\:row-gap-24{grid-row-gap:6rem;row-gap:6rem}.xxl\:row-gap-32{grid-row-gap:8rem;row-gap:8rem}.xxl\:row-gap-40{grid-row-gap:10rem;row-gap:10rem}.xxl\:row-gap-48{grid-row-gap:12rem;row-gap:12rem}.xxl\:row-gap-56{grid-row-gap:14rem;row-gap:14rem}.xxl\:row-gap-64{grid-row-gap:16rem;row-gap:16rem}.xxl\:row-gap-px{grid-row-gap:1px;row-gap:1px}.xxl\:gap-y-0{grid-row-gap:0;row-gap:0}.xxl\:gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.xxl\:gap-y-2{grid-row-gap:.5rem;row-gap:.5rem}.xxl\:gap-y-3{grid-row-gap:.75rem;row-gap:.75rem}.xxl\:gap-y-4{grid-row-gap:1rem;row-gap:1rem}.xxl\:gap-y-5{grid-row-gap:1.25rem;row-gap:1.25rem}.xxl\:gap-y-6{grid-row-gap:1.5rem;row-gap:1.5rem}.xxl\:gap-y-8{grid-row-gap:2rem;row-gap:2rem}.xxl\:gap-y-10{grid-row-gap:2.5rem;row-gap:2.5rem}.xxl\:gap-y-12{grid-row-gap:3rem;row-gap:3rem}.xxl\:gap-y-16{grid-row-gap:4rem;row-gap:4rem}.xxl\:gap-y-20{grid-row-gap:5rem;row-gap:5rem}.xxl\:gap-y-24{grid-row-gap:6rem;row-gap:6rem}.xxl\:gap-y-32{grid-row-gap:8rem;row-gap:8rem}.xxl\:gap-y-40{grid-row-gap:10rem;row-gap:10rem}.xxl\:gap-y-48{grid-row-gap:12rem;row-gap:12rem}.xxl\:gap-y-56{grid-row-gap:14rem;row-gap:14rem}.xxl\:gap-y-64{grid-row-gap:16rem;row-gap:16rem}.xxl\:gap-y-px{grid-row-gap:1px;row-gap:1px}.xxl\:grid-flow-row{grid-auto-flow:row}.xxl\:grid-flow-col{grid-auto-flow:column}.xxl\:grid-flow-row-dense{grid-auto-flow:row dense}.xxl\:grid-flow-col-dense{grid-auto-flow:column dense}.xxl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xxl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xxl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xxl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xxl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xxl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xxl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xxl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xxl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xxl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xxl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xxl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xxl\:grid-cols-none{grid-template-columns:none}.xxl\:auto-cols-auto{grid-auto-columns:auto}.xxl\:auto-cols-min{grid-auto-columns:min-content}.xxl\:auto-cols-max{grid-auto-columns:max-content}.xxl\:auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.xxl\:col-auto{grid-column:auto}.xxl\:col-span-1{grid-column:span 1/span 1}.xxl\:col-span-2{grid-column:span 2/span 2}.xxl\:col-span-3{grid-column:span 3/span 3}.xxl\:col-span-4{grid-column:span 4/span 4}.xxl\:col-span-5{grid-column:span 5/span 5}.xxl\:col-span-6{grid-column:span 6/span 6}.xxl\:col-span-7{grid-column:span 7/span 7}.xxl\:col-span-8{grid-column:span 8/span 8}.xxl\:col-span-9{grid-column:span 9/span 9}.xxl\:col-span-10{grid-column:span 10/span 10}.xxl\:col-span-11{grid-column:span 11/span 11}.xxl\:col-span-12{grid-column:span 12/span 12}.xxl\:col-span-full{grid-column:1/-1}.xxl\:col-start-1{grid-column-start:1}.xxl\:col-start-2{grid-column-start:2}.xxl\:col-start-3{grid-column-start:3}.xxl\:col-start-4{grid-column-start:4}.xxl\:col-start-5{grid-column-start:5}.xxl\:col-start-6{grid-column-start:6}.xxl\:col-start-7{grid-column-start:7}.xxl\:col-start-8{grid-column-start:8}.xxl\:col-start-9{grid-column-start:9}.xxl\:col-start-10{grid-column-start:10}.xxl\:col-start-11{grid-column-start:11}.xxl\:col-start-12{grid-column-start:12}.xxl\:col-start-13{grid-column-start:13}.xxl\:col-start-auto{grid-column-start:auto}.xxl\:col-end-1{grid-column-end:1}.xxl\:col-end-2{grid-column-end:2}.xxl\:col-end-3{grid-column-end:3}.xxl\:col-end-4{grid-column-end:4}.xxl\:col-end-5{grid-column-end:5}.xxl\:col-end-6{grid-column-end:6}.xxl\:col-end-7{grid-column-end:7}.xxl\:col-end-8{grid-column-end:8}.xxl\:col-end-9{grid-column-end:9}.xxl\:col-end-10{grid-column-end:10}.xxl\:col-end-11{grid-column-end:11}.xxl\:col-end-12{grid-column-end:12}.xxl\:col-end-13{grid-column-end:13}.xxl\:col-end-auto{grid-column-end:auto}.xxl\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.xxl\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xxl\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xxl\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xxl\:grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xxl\:grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xxl\:grid-rows-none{grid-template-rows:none}.xxl\:auto-rows-auto{grid-auto-rows:auto}.xxl\:auto-rows-min{grid-auto-rows:min-content}.xxl\:auto-rows-max{grid-auto-rows:max-content}.xxl\:auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.xxl\:row-auto{grid-row:auto}.xxl\:row-span-1{grid-row:span 1/span 1}.xxl\:row-span-2{grid-row:span 2/span 2}.xxl\:row-span-3{grid-row:span 3/span 3}.xxl\:row-span-4{grid-row:span 4/span 4}.xxl\:row-span-5{grid-row:span 5/span 5}.xxl\:row-span-6{grid-row:span 6/span 6}.xxl\:row-span-full{grid-row:1/-1}.xxl\:row-start-1{grid-row-start:1}.xxl\:row-start-2{grid-row-start:2}.xxl\:row-start-3{grid-row-start:3}.xxl\:row-start-4{grid-row-start:4}.xxl\:row-start-5{grid-row-start:5}.xxl\:row-start-6{grid-row-start:6}.xxl\:row-start-7{grid-row-start:7}.xxl\:row-start-auto{grid-row-start:auto}.xxl\:row-end-1{grid-row-end:1}.xxl\:row-end-2{grid-row-end:2}.xxl\:row-end-3{grid-row-end:3}.xxl\:row-end-4{grid-row-end:4}.xxl\:row-end-5{grid-row-end:5}.xxl\:row-end-6{grid-row-end:6}.xxl\:row-end-7{grid-row-end:7}.xxl\:row-end-auto{grid-row-end:auto}.xxl\:transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.xxl\:transform-none{transform:none}.xxl\:origin-center{transform-origin:center}.xxl\:origin-top{transform-origin:top}.xxl\:origin-top-right{transform-origin:top right}.xxl\:origin-right{transform-origin:right}.xxl\:origin-bottom-right{transform-origin:bottom right}.xxl\:origin-bottom{transform-origin:bottom}.xxl\:origin-bottom-left{transform-origin:bottom left}.xxl\:origin-left{transform-origin:left}.xxl\:origin-top-left{transform-origin:top left}.xxl\:scale-0{--transform-scale-x:0;--transform-scale-y:0}.xxl\:scale-50{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:scale-75{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:scale-90{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:scale-100{--transform-scale-x:1;--transform-scale-y:1}.xxl\:scale-105{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:scale-110{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:scale-125{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:scale-150{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:scale-x-0{--transform-scale-x:0}.xxl\:scale-x-50{--transform-scale-x:.5}.xxl\:scale-x-75{--transform-scale-x:.75}.xxl\:scale-x-90{--transform-scale-x:.9}.xxl\:scale-x-95{--transform-scale-x:.95}.xxl\:scale-x-100{--transform-scale-x:1}.xxl\:scale-x-105{--transform-scale-x:1.05}.xxl\:scale-x-110{--transform-scale-x:1.1}.xxl\:scale-x-125{--transform-scale-x:1.25}.xxl\:scale-x-150{--transform-scale-x:1.5}.xxl\:scale-y-0{--transform-scale-y:0}.xxl\:scale-y-50{--transform-scale-y:.5}.xxl\:scale-y-75{--transform-scale-y:.75}.xxl\:scale-y-90{--transform-scale-y:.9}.xxl\:scale-y-95{--transform-scale-y:.95}.xxl\:scale-y-100{--transform-scale-y:1}.xxl\:scale-y-105{--transform-scale-y:1.05}.xxl\:scale-y-110{--transform-scale-y:1.1}.xxl\:scale-y-125{--transform-scale-y:1.25}.xxl\:scale-y-150{--transform-scale-y:1.5}.xxl\:hover\:scale-0:hover{--transform-scale-x:0;--transform-scale-y:0}.xxl\:hover\:scale-50:hover{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:hover\:scale-75:hover{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:hover\:scale-90:hover{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:hover\:scale-95:hover{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:hover\:scale-100:hover{--transform-scale-x:1;--transform-scale-y:1}.xxl\:hover\:scale-105:hover{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:hover\:scale-110:hover{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:hover\:scale-125:hover{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:hover\:scale-150:hover{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:hover\:scale-x-0:hover{--transform-scale-x:0}.xxl\:hover\:scale-x-50:hover{--transform-scale-x:.5}.xxl\:hover\:scale-x-75:hover{--transform-scale-x:.75}.xxl\:hover\:scale-x-90:hover{--transform-scale-x:.9}.xxl\:hover\:scale-x-95:hover{--transform-scale-x:.95}.xxl\:hover\:scale-x-100:hover{--transform-scale-x:1}.xxl\:hover\:scale-x-105:hover{--transform-scale-x:1.05}.xxl\:hover\:scale-x-110:hover{--transform-scale-x:1.1}.xxl\:hover\:scale-x-125:hover{--transform-scale-x:1.25}.xxl\:hover\:scale-x-150:hover{--transform-scale-x:1.5}.xxl\:hover\:scale-y-0:hover{--transform-scale-y:0}.xxl\:hover\:scale-y-50:hover{--transform-scale-y:.5}.xxl\:hover\:scale-y-75:hover{--transform-scale-y:.75}.xxl\:hover\:scale-y-90:hover{--transform-scale-y:.9}.xxl\:hover\:scale-y-95:hover{--transform-scale-y:.95}.xxl\:hover\:scale-y-100:hover{--transform-scale-y:1}.xxl\:hover\:scale-y-105:hover{--transform-scale-y:1.05}.xxl\:hover\:scale-y-110:hover{--transform-scale-y:1.1}.xxl\:hover\:scale-y-125:hover{--transform-scale-y:1.25}.xxl\:hover\:scale-y-150:hover{--transform-scale-y:1.5}.xxl\:focus\:scale-0:focus{--transform-scale-x:0;--transform-scale-y:0}.xxl\:focus\:scale-50:focus{--transform-scale-x:.5;--transform-scale-y:.5}.xxl\:focus\:scale-75:focus{--transform-scale-x:.75;--transform-scale-y:.75}.xxl\:focus\:scale-90:focus{--transform-scale-x:.9;--transform-scale-y:.9}.xxl\:focus\:scale-95:focus{--transform-scale-x:.95;--transform-scale-y:.95}.xxl\:focus\:scale-100:focus{--transform-scale-x:1;--transform-scale-y:1}.xxl\:focus\:scale-105:focus{--transform-scale-x:1.05;--transform-scale-y:1.05}.xxl\:focus\:scale-110:focus{--transform-scale-x:1.1;--transform-scale-y:1.1}.xxl\:focus\:scale-125:focus{--transform-scale-x:1.25;--transform-scale-y:1.25}.xxl\:focus\:scale-150:focus{--transform-scale-x:1.5;--transform-scale-y:1.5}.xxl\:focus\:scale-x-0:focus{--transform-scale-x:0}.xxl\:focus\:scale-x-50:focus{--transform-scale-x:.5}.xxl\:focus\:scale-x-75:focus{--transform-scale-x:.75}.xxl\:focus\:scale-x-90:focus{--transform-scale-x:.9}.xxl\:focus\:scale-x-95:focus{--transform-scale-x:.95}.xxl\:focus\:scale-x-100:focus{--transform-scale-x:1}.xxl\:focus\:scale-x-105:focus{--transform-scale-x:1.05}.xxl\:focus\:scale-x-110:focus{--transform-scale-x:1.1}.xxl\:focus\:scale-x-125:focus{--transform-scale-x:1.25}.xxl\:focus\:scale-x-150:focus{--transform-scale-x:1.5}.xxl\:focus\:scale-y-0:focus{--transform-scale-y:0}.xxl\:focus\:scale-y-50:focus{--transform-scale-y:.5}.xxl\:focus\:scale-y-75:focus{--transform-scale-y:.75}.xxl\:focus\:scale-y-90:focus{--transform-scale-y:.9}.xxl\:focus\:scale-y-95:focus{--transform-scale-y:.95}.xxl\:focus\:scale-y-100:focus{--transform-scale-y:1}.xxl\:focus\:scale-y-105:focus{--transform-scale-y:1.05}.xxl\:focus\:scale-y-110:focus{--transform-scale-y:1.1}.xxl\:focus\:scale-y-125:focus{--transform-scale-y:1.25}.xxl\:focus\:scale-y-150:focus{--transform-scale-y:1.5}.xxl\:rotate-0{--transform-rotate:0}.xxl\:rotate-1{--transform-rotate:1deg}.xxl\:rotate-2{--transform-rotate:2deg}.xxl\:rotate-3{--transform-rotate:3deg}.xxl\:rotate-6{--transform-rotate:6deg}.xxl\:rotate-12{--transform-rotate:12deg}.xxl\:rotate-45{--transform-rotate:45deg}.xxl\:rotate-90{--transform-rotate:90deg}.xxl\:rotate-180{--transform-rotate:180deg}.xxl\:-rotate-180{--transform-rotate:-180deg}.xxl\:-rotate-90{--transform-rotate:-90deg}.xxl\:-rotate-45{--transform-rotate:-45deg}.xxl\:-rotate-12{--transform-rotate:-12deg}.xxl\:-rotate-6{--transform-rotate:-6deg}.xxl\:-rotate-3{--transform-rotate:-3deg}.xxl\:-rotate-2{--transform-rotate:-2deg}.xxl\:-rotate-1{--transform-rotate:-1deg}.xxl\:hover\:rotate-0:hover{--transform-rotate:0}.xxl\:hover\:rotate-1:hover{--transform-rotate:1deg}.xxl\:hover\:rotate-2:hover{--transform-rotate:2deg}.xxl\:hover\:rotate-3:hover{--transform-rotate:3deg}.xxl\:hover\:rotate-6:hover{--transform-rotate:6deg}.xxl\:hover\:rotate-12:hover{--transform-rotate:12deg}.xxl\:hover\:rotate-45:hover{--transform-rotate:45deg}.xxl\:hover\:rotate-90:hover{--transform-rotate:90deg}.xxl\:hover\:rotate-180:hover{--transform-rotate:180deg}.xxl\:hover\:-rotate-180:hover{--transform-rotate:-180deg}.xxl\:hover\:-rotate-90:hover{--transform-rotate:-90deg}.xxl\:hover\:-rotate-45:hover{--transform-rotate:-45deg}.xxl\:hover\:-rotate-12:hover{--transform-rotate:-12deg}.xxl\:hover\:-rotate-6:hover{--transform-rotate:-6deg}.xxl\:hover\:-rotate-3:hover{--transform-rotate:-3deg}.xxl\:hover\:-rotate-2:hover{--transform-rotate:-2deg}.xxl\:hover\:-rotate-1:hover{--transform-rotate:-1deg}.xxl\:focus\:rotate-0:focus{--transform-rotate:0}.xxl\:focus\:rotate-1:focus{--transform-rotate:1deg}.xxl\:focus\:rotate-2:focus{--transform-rotate:2deg}.xxl\:focus\:rotate-3:focus{--transform-rotate:3deg}.xxl\:focus\:rotate-6:focus{--transform-rotate:6deg}.xxl\:focus\:rotate-12:focus{--transform-rotate:12deg}.xxl\:focus\:rotate-45:focus{--transform-rotate:45deg}.xxl\:focus\:rotate-90:focus{--transform-rotate:90deg}.xxl\:focus\:rotate-180:focus{--transform-rotate:180deg}.xxl\:focus\:-rotate-180:focus{--transform-rotate:-180deg}.xxl\:focus\:-rotate-90:focus{--transform-rotate:-90deg}.xxl\:focus\:-rotate-45:focus{--transform-rotate:-45deg}.xxl\:focus\:-rotate-12:focus{--transform-rotate:-12deg}.xxl\:focus\:-rotate-6:focus{--transform-rotate:-6deg}.xxl\:focus\:-rotate-3:focus{--transform-rotate:-3deg}.xxl\:focus\:-rotate-2:focus{--transform-rotate:-2deg}.xxl\:focus\:-rotate-1:focus{--transform-rotate:-1deg}.xxl\:translate-x-0{--transform-translate-x:0}.xxl\:translate-x-1{--transform-translate-x:0.25rem}.xxl\:translate-x-2{--transform-translate-x:0.5rem}.xxl\:translate-x-3{--transform-translate-x:0.75rem}.xxl\:translate-x-4{--transform-translate-x:1rem}.xxl\:translate-x-5{--transform-translate-x:1.25rem}.xxl\:translate-x-6{--transform-translate-x:1.5rem}.xxl\:translate-x-8{--transform-translate-x:2rem}.xxl\:translate-x-10{--transform-translate-x:2.5rem}.xxl\:translate-x-12{--transform-translate-x:3rem}.xxl\:translate-x-16{--transform-translate-x:4rem}.xxl\:translate-x-20{--transform-translate-x:5rem}.xxl\:translate-x-24{--transform-translate-x:6rem}.xxl\:translate-x-32{--transform-translate-x:8rem}.xxl\:translate-x-40{--transform-translate-x:10rem}.xxl\:translate-x-48{--transform-translate-x:12rem}.xxl\:translate-x-56{--transform-translate-x:14rem}.xxl\:translate-x-64{--transform-translate-x:16rem}.xxl\:translate-x-px{--transform-translate-x:1px}.xxl\:-translate-x-1{--transform-translate-x:-0.25rem}.xxl\:-translate-x-2{--transform-translate-x:-0.5rem}.xxl\:-translate-x-3{--transform-translate-x:-0.75rem}.xxl\:-translate-x-4{--transform-translate-x:-1rem}.xxl\:-translate-x-5{--transform-translate-x:-1.25rem}.xxl\:-translate-x-6{--transform-translate-x:-1.5rem}.xxl\:-translate-x-8{--transform-translate-x:-2rem}.xxl\:-translate-x-10{--transform-translate-x:-2.5rem}.xxl\:-translate-x-12{--transform-translate-x:-3rem}.xxl\:-translate-x-16{--transform-translate-x:-4rem}.xxl\:-translate-x-20{--transform-translate-x:-5rem}.xxl\:-translate-x-24{--transform-translate-x:-6rem}.xxl\:-translate-x-32{--transform-translate-x:-8rem}.xxl\:-translate-x-40{--transform-translate-x:-10rem}.xxl\:-translate-x-48{--transform-translate-x:-12rem}.xxl\:-translate-x-56{--transform-translate-x:-14rem}.xxl\:-translate-x-64{--transform-translate-x:-16rem}.xxl\:-translate-x-px{--transform-translate-x:-1px}.xxl\:-translate-x-full{--transform-translate-x:-100%}.xxl\:-translate-x-1\/2{--transform-translate-x:-50%}.xxl\:translate-x-1\/2{--transform-translate-x:50%}.xxl\:translate-x-full{--transform-translate-x:100%}.xxl\:translate-y-0{--transform-translate-y:0}.xxl\:translate-y-1{--transform-translate-y:0.25rem}.xxl\:translate-y-2{--transform-translate-y:0.5rem}.xxl\:translate-y-3{--transform-translate-y:0.75rem}.xxl\:translate-y-4{--transform-translate-y:1rem}.xxl\:translate-y-5{--transform-translate-y:1.25rem}.xxl\:translate-y-6{--transform-translate-y:1.5rem}.xxl\:translate-y-8{--transform-translate-y:2rem}.xxl\:translate-y-10{--transform-translate-y:2.5rem}.xxl\:translate-y-12{--transform-translate-y:3rem}.xxl\:translate-y-16{--transform-translate-y:4rem}.xxl\:translate-y-20{--transform-translate-y:5rem}.xxl\:translate-y-24{--transform-translate-y:6rem}.xxl\:translate-y-32{--transform-translate-y:8rem}.xxl\:translate-y-40{--transform-translate-y:10rem}.xxl\:translate-y-48{--transform-translate-y:12rem}.xxl\:translate-y-56{--transform-translate-y:14rem}.xxl\:translate-y-64{--transform-translate-y:16rem}.xxl\:translate-y-px{--transform-translate-y:1px}.xxl\:-translate-y-1{--transform-translate-y:-0.25rem}.xxl\:-translate-y-2{--transform-translate-y:-0.5rem}.xxl\:-translate-y-3{--transform-translate-y:-0.75rem}.xxl\:-translate-y-4{--transform-translate-y:-1rem}.xxl\:-translate-y-5{--transform-translate-y:-1.25rem}.xxl\:-translate-y-6{--transform-translate-y:-1.5rem}.xxl\:-translate-y-8{--transform-translate-y:-2rem}.xxl\:-translate-y-10{--transform-translate-y:-2.5rem}.xxl\:-translate-y-12{--transform-translate-y:-3rem}.xxl\:-translate-y-16{--transform-translate-y:-4rem}.xxl\:-translate-y-20{--transform-translate-y:-5rem}.xxl\:-translate-y-24{--transform-translate-y:-6rem}.xxl\:-translate-y-32{--transform-translate-y:-8rem}.xxl\:-translate-y-40{--transform-translate-y:-10rem}.xxl\:-translate-y-48{--transform-translate-y:-12rem}.xxl\:-translate-y-56{--transform-translate-y:-14rem}.xxl\:-translate-y-64{--transform-translate-y:-16rem}.xxl\:-translate-y-px{--transform-translate-y:-1px}.xxl\:-translate-y-full{--transform-translate-y:-100%}.xxl\:-translate-y-1\/2{--transform-translate-y:-50%}.xxl\:translate-y-1\/2{--transform-translate-y:50%}.xxl\:translate-y-full{--transform-translate-y:100%}.xxl\:hover\:translate-x-0:hover{--transform-translate-x:0}.xxl\:hover\:translate-x-1:hover{--transform-translate-x:0.25rem}.xxl\:hover\:translate-x-2:hover{--transform-translate-x:0.5rem}.xxl\:hover\:translate-x-3:hover{--transform-translate-x:0.75rem}.xxl\:hover\:translate-x-4:hover{--transform-translate-x:1rem}.xxl\:hover\:translate-x-5:hover{--transform-translate-x:1.25rem}.xxl\:hover\:translate-x-6:hover{--transform-translate-x:1.5rem}.xxl\:hover\:translate-x-8:hover{--transform-translate-x:2rem}.xxl\:hover\:translate-x-10:hover{--transform-translate-x:2.5rem}.xxl\:hover\:translate-x-12:hover{--transform-translate-x:3rem}.xxl\:hover\:translate-x-16:hover{--transform-translate-x:4rem}.xxl\:hover\:translate-x-20:hover{--transform-translate-x:5rem}.xxl\:hover\:translate-x-24:hover{--transform-translate-x:6rem}.xxl\:hover\:translate-x-32:hover{--transform-translate-x:8rem}.xxl\:hover\:translate-x-40:hover{--transform-translate-x:10rem}.xxl\:hover\:translate-x-48:hover{--transform-translate-x:12rem}.xxl\:hover\:translate-x-56:hover{--transform-translate-x:14rem}.xxl\:hover\:translate-x-64:hover{--transform-translate-x:16rem}.xxl\:hover\:translate-x-px:hover{--transform-translate-x:1px}.xxl\:hover\:-translate-x-1:hover{--transform-translate-x:-0.25rem}.xxl\:hover\:-translate-x-2:hover{--transform-translate-x:-0.5rem}.xxl\:hover\:-translate-x-3:hover{--transform-translate-x:-0.75rem}.xxl\:hover\:-translate-x-4:hover{--transform-translate-x:-1rem}.xxl\:hover\:-translate-x-5:hover{--transform-translate-x:-1.25rem}.xxl\:hover\:-translate-x-6:hover{--transform-translate-x:-1.5rem}.xxl\:hover\:-translate-x-8:hover{--transform-translate-x:-2rem}.xxl\:hover\:-translate-x-10:hover{--transform-translate-x:-2.5rem}.xxl\:hover\:-translate-x-12:hover{--transform-translate-x:-3rem}.xxl\:hover\:-translate-x-16:hover{--transform-translate-x:-4rem}.xxl\:hover\:-translate-x-20:hover{--transform-translate-x:-5rem}.xxl\:hover\:-translate-x-24:hover{--transform-translate-x:-6rem}.xxl\:hover\:-translate-x-32:hover{--transform-translate-x:-8rem}.xxl\:hover\:-translate-x-40:hover{--transform-translate-x:-10rem}.xxl\:hover\:-translate-x-48:hover{--transform-translate-x:-12rem}.xxl\:hover\:-translate-x-56:hover{--transform-translate-x:-14rem}.xxl\:hover\:-translate-x-64:hover{--transform-translate-x:-16rem}.xxl\:hover\:-translate-x-px:hover{--transform-translate-x:-1px}.xxl\:hover\:-translate-x-full:hover{--transform-translate-x:-100%}.xxl\:hover\:-translate-x-1\/2:hover{--transform-translate-x:-50%}.xxl\:hover\:translate-x-1\/2:hover{--transform-translate-x:50%}.xxl\:hover\:translate-x-full:hover{--transform-translate-x:100%}.xxl\:hover\:translate-y-0:hover{--transform-translate-y:0}.xxl\:hover\:translate-y-1:hover{--transform-translate-y:0.25rem}.xxl\:hover\:translate-y-2:hover{--transform-translate-y:0.5rem}.xxl\:hover\:translate-y-3:hover{--transform-translate-y:0.75rem}.xxl\:hover\:translate-y-4:hover{--transform-translate-y:1rem}.xxl\:hover\:translate-y-5:hover{--transform-translate-y:1.25rem}.xxl\:hover\:translate-y-6:hover{--transform-translate-y:1.5rem}.xxl\:hover\:translate-y-8:hover{--transform-translate-y:2rem}.xxl\:hover\:translate-y-10:hover{--transform-translate-y:2.5rem}.xxl\:hover\:translate-y-12:hover{--transform-translate-y:3rem}.xxl\:hover\:translate-y-16:hover{--transform-translate-y:4rem}.xxl\:hover\:translate-y-20:hover{--transform-translate-y:5rem}.xxl\:hover\:translate-y-24:hover{--transform-translate-y:6rem}.xxl\:hover\:translate-y-32:hover{--transform-translate-y:8rem}.xxl\:hover\:translate-y-40:hover{--transform-translate-y:10rem}.xxl\:hover\:translate-y-48:hover{--transform-translate-y:12rem}.xxl\:hover\:translate-y-56:hover{--transform-translate-y:14rem}.xxl\:hover\:translate-y-64:hover{--transform-translate-y:16rem}.xxl\:hover\:translate-y-px:hover{--transform-translate-y:1px}.xxl\:hover\:-translate-y-1:hover{--transform-translate-y:-0.25rem}.xxl\:hover\:-translate-y-2:hover{--transform-translate-y:-0.5rem}.xxl\:hover\:-translate-y-3:hover{--transform-translate-y:-0.75rem}.xxl\:hover\:-translate-y-4:hover{--transform-translate-y:-1rem}.xxl\:hover\:-translate-y-5:hover{--transform-translate-y:-1.25rem}.xxl\:hover\:-translate-y-6:hover{--transform-translate-y:-1.5rem}.xxl\:hover\:-translate-y-8:hover{--transform-translate-y:-2rem}.xxl\:hover\:-translate-y-10:hover{--transform-translate-y:-2.5rem}.xxl\:hover\:-translate-y-12:hover{--transform-translate-y:-3rem}.xxl\:hover\:-translate-y-16:hover{--transform-translate-y:-4rem}.xxl\:hover\:-translate-y-20:hover{--transform-translate-y:-5rem}.xxl\:hover\:-translate-y-24:hover{--transform-translate-y:-6rem}.xxl\:hover\:-translate-y-32:hover{--transform-translate-y:-8rem}.xxl\:hover\:-translate-y-40:hover{--transform-translate-y:-10rem}.xxl\:hover\:-translate-y-48:hover{--transform-translate-y:-12rem}.xxl\:hover\:-translate-y-56:hover{--transform-translate-y:-14rem}.xxl\:hover\:-translate-y-64:hover{--transform-translate-y:-16rem}.xxl\:hover\:-translate-y-px:hover{--transform-translate-y:-1px}.xxl\:hover\:-translate-y-full:hover{--transform-translate-y:-100%}.xxl\:hover\:-translate-y-1\/2:hover{--transform-translate-y:-50%}.xxl\:hover\:translate-y-1\/2:hover{--transform-translate-y:50%}.xxl\:hover\:translate-y-full:hover{--transform-translate-y:100%}.xxl\:focus\:translate-x-0:focus{--transform-translate-x:0}.xxl\:focus\:translate-x-1:focus{--transform-translate-x:0.25rem}.xxl\:focus\:translate-x-2:focus{--transform-translate-x:0.5rem}.xxl\:focus\:translate-x-3:focus{--transform-translate-x:0.75rem}.xxl\:focus\:translate-x-4:focus{--transform-translate-x:1rem}.xxl\:focus\:translate-x-5:focus{--transform-translate-x:1.25rem}.xxl\:focus\:translate-x-6:focus{--transform-translate-x:1.5rem}.xxl\:focus\:translate-x-8:focus{--transform-translate-x:2rem}.xxl\:focus\:translate-x-10:focus{--transform-translate-x:2.5rem}.xxl\:focus\:translate-x-12:focus{--transform-translate-x:3rem}.xxl\:focus\:translate-x-16:focus{--transform-translate-x:4rem}.xxl\:focus\:translate-x-20:focus{--transform-translate-x:5rem}.xxl\:focus\:translate-x-24:focus{--transform-translate-x:6rem}.xxl\:focus\:translate-x-32:focus{--transform-translate-x:8rem}.xxl\:focus\:translate-x-40:focus{--transform-translate-x:10rem}.xxl\:focus\:translate-x-48:focus{--transform-translate-x:12rem}.xxl\:focus\:translate-x-56:focus{--transform-translate-x:14rem}.xxl\:focus\:translate-x-64:focus{--transform-translate-x:16rem}.xxl\:focus\:translate-x-px:focus{--transform-translate-x:1px}.xxl\:focus\:-translate-x-1:focus{--transform-translate-x:-0.25rem}.xxl\:focus\:-translate-x-2:focus{--transform-translate-x:-0.5rem}.xxl\:focus\:-translate-x-3:focus{--transform-translate-x:-0.75rem}.xxl\:focus\:-translate-x-4:focus{--transform-translate-x:-1rem}.xxl\:focus\:-translate-x-5:focus{--transform-translate-x:-1.25rem}.xxl\:focus\:-translate-x-6:focus{--transform-translate-x:-1.5rem}.xxl\:focus\:-translate-x-8:focus{--transform-translate-x:-2rem}.xxl\:focus\:-translate-x-10:focus{--transform-translate-x:-2.5rem}.xxl\:focus\:-translate-x-12:focus{--transform-translate-x:-3rem}.xxl\:focus\:-translate-x-16:focus{--transform-translate-x:-4rem}.xxl\:focus\:-translate-x-20:focus{--transform-translate-x:-5rem}.xxl\:focus\:-translate-x-24:focus{--transform-translate-x:-6rem}.xxl\:focus\:-translate-x-32:focus{--transform-translate-x:-8rem}.xxl\:focus\:-translate-x-40:focus{--transform-translate-x:-10rem}.xxl\:focus\:-translate-x-48:focus{--transform-translate-x:-12rem}.xxl\:focus\:-translate-x-56:focus{--transform-translate-x:-14rem}.xxl\:focus\:-translate-x-64:focus{--transform-translate-x:-16rem}.xxl\:focus\:-translate-x-px:focus{--transform-translate-x:-1px}.xxl\:focus\:-translate-x-full:focus{--transform-translate-x:-100%}.xxl\:focus\:-translate-x-1\/2:focus{--transform-translate-x:-50%}.xxl\:focus\:translate-x-1\/2:focus{--transform-translate-x:50%}.xxl\:focus\:translate-x-full:focus{--transform-translate-x:100%}.xxl\:focus\:translate-y-0:focus{--transform-translate-y:0}.xxl\:focus\:translate-y-1:focus{--transform-translate-y:0.25rem}.xxl\:focus\:translate-y-2:focus{--transform-translate-y:0.5rem}.xxl\:focus\:translate-y-3:focus{--transform-translate-y:0.75rem}.xxl\:focus\:translate-y-4:focus{--transform-translate-y:1rem}.xxl\:focus\:translate-y-5:focus{--transform-translate-y:1.25rem}.xxl\:focus\:translate-y-6:focus{--transform-translate-y:1.5rem}.xxl\:focus\:translate-y-8:focus{--transform-translate-y:2rem}.xxl\:focus\:translate-y-10:focus{--transform-translate-y:2.5rem}.xxl\:focus\:translate-y-12:focus{--transform-translate-y:3rem}.xxl\:focus\:translate-y-16:focus{--transform-translate-y:4rem}.xxl\:focus\:translate-y-20:focus{--transform-translate-y:5rem}.xxl\:focus\:translate-y-24:focus{--transform-translate-y:6rem}.xxl\:focus\:translate-y-32:focus{--transform-translate-y:8rem}.xxl\:focus\:translate-y-40:focus{--transform-translate-y:10rem}.xxl\:focus\:translate-y-48:focus{--transform-translate-y:12rem}.xxl\:focus\:translate-y-56:focus{--transform-translate-y:14rem}.xxl\:focus\:translate-y-64:focus{--transform-translate-y:16rem}.xxl\:focus\:translate-y-px:focus{--transform-translate-y:1px}.xxl\:focus\:-translate-y-1:focus{--transform-translate-y:-0.25rem}.xxl\:focus\:-translate-y-2:focus{--transform-translate-y:-0.5rem}.xxl\:focus\:-translate-y-3:focus{--transform-translate-y:-0.75rem}.xxl\:focus\:-translate-y-4:focus{--transform-translate-y:-1rem}.xxl\:focus\:-translate-y-5:focus{--transform-translate-y:-1.25rem}.xxl\:focus\:-translate-y-6:focus{--transform-translate-y:-1.5rem}.xxl\:focus\:-translate-y-8:focus{--transform-translate-y:-2rem}.xxl\:focus\:-translate-y-10:focus{--transform-translate-y:-2.5rem}.xxl\:focus\:-translate-y-12:focus{--transform-translate-y:-3rem}.xxl\:focus\:-translate-y-16:focus{--transform-translate-y:-4rem}.xxl\:focus\:-translate-y-20:focus{--transform-translate-y:-5rem}.xxl\:focus\:-translate-y-24:focus{--transform-translate-y:-6rem}.xxl\:focus\:-translate-y-32:focus{--transform-translate-y:-8rem}.xxl\:focus\:-translate-y-40:focus{--transform-translate-y:-10rem}.xxl\:focus\:-translate-y-48:focus{--transform-translate-y:-12rem}.xxl\:focus\:-translate-y-56:focus{--transform-translate-y:-14rem}.xxl\:focus\:-translate-y-64:focus{--transform-translate-y:-16rem}.xxl\:focus\:-translate-y-px:focus{--transform-translate-y:-1px}.xxl\:focus\:-translate-y-full:focus{--transform-translate-y:-100%}.xxl\:focus\:-translate-y-1\/2:focus{--transform-translate-y:-50%}.xxl\:focus\:translate-y-1\/2:focus{--transform-translate-y:50%}.xxl\:focus\:translate-y-full:focus{--transform-translate-y:100%}.xxl\:skew-x-0{--transform-skew-x:0}.xxl\:skew-x-1{--transform-skew-x:1deg}.xxl\:skew-x-2{--transform-skew-x:2deg}.xxl\:skew-x-3{--transform-skew-x:3deg}.xxl\:skew-x-6{--transform-skew-x:6deg}.xxl\:skew-x-12{--transform-skew-x:12deg}.xxl\:-skew-x-12{--transform-skew-x:-12deg}.xxl\:-skew-x-6{--transform-skew-x:-6deg}.xxl\:-skew-x-3{--transform-skew-x:-3deg}.xxl\:-skew-x-2{--transform-skew-x:-2deg}.xxl\:-skew-x-1{--transform-skew-x:-1deg}.xxl\:skew-y-0{--transform-skew-y:0}.xxl\:skew-y-1{--transform-skew-y:1deg}.xxl\:skew-y-2{--transform-skew-y:2deg}.xxl\:skew-y-3{--transform-skew-y:3deg}.xxl\:skew-y-6{--transform-skew-y:6deg}.xxl\:skew-y-12{--transform-skew-y:12deg}.xxl\:-skew-y-12{--transform-skew-y:-12deg}.xxl\:-skew-y-6{--transform-skew-y:-6deg}.xxl\:-skew-y-3{--transform-skew-y:-3deg}.xxl\:-skew-y-2{--transform-skew-y:-2deg}.xxl\:-skew-y-1{--transform-skew-y:-1deg}.xxl\:hover\:skew-x-0:hover{--transform-skew-x:0}.xxl\:hover\:skew-x-1:hover{--transform-skew-x:1deg}.xxl\:hover\:skew-x-2:hover{--transform-skew-x:2deg}.xxl\:hover\:skew-x-3:hover{--transform-skew-x:3deg}.xxl\:hover\:skew-x-6:hover{--transform-skew-x:6deg}.xxl\:hover\:skew-x-12:hover{--transform-skew-x:12deg}.xxl\:hover\:-skew-x-12:hover{--transform-skew-x:-12deg}.xxl\:hover\:-skew-x-6:hover{--transform-skew-x:-6deg}.xxl\:hover\:-skew-x-3:hover{--transform-skew-x:-3deg}.xxl\:hover\:-skew-x-2:hover{--transform-skew-x:-2deg}.xxl\:hover\:-skew-x-1:hover{--transform-skew-x:-1deg}.xxl\:hover\:skew-y-0:hover{--transform-skew-y:0}.xxl\:hover\:skew-y-1:hover{--transform-skew-y:1deg}.xxl\:hover\:skew-y-2:hover{--transform-skew-y:2deg}.xxl\:hover\:skew-y-3:hover{--transform-skew-y:3deg}.xxl\:hover\:skew-y-6:hover{--transform-skew-y:6deg}.xxl\:hover\:skew-y-12:hover{--transform-skew-y:12deg}.xxl\:hover\:-skew-y-12:hover{--transform-skew-y:-12deg}.xxl\:hover\:-skew-y-6:hover{--transform-skew-y:-6deg}.xxl\:hover\:-skew-y-3:hover{--transform-skew-y:-3deg}.xxl\:hover\:-skew-y-2:hover{--transform-skew-y:-2deg}.xxl\:hover\:-skew-y-1:hover{--transform-skew-y:-1deg}.xxl\:focus\:skew-x-0:focus{--transform-skew-x:0}.xxl\:focus\:skew-x-1:focus{--transform-skew-x:1deg}.xxl\:focus\:skew-x-2:focus{--transform-skew-x:2deg}.xxl\:focus\:skew-x-3:focus{--transform-skew-x:3deg}.xxl\:focus\:skew-x-6:focus{--transform-skew-x:6deg}.xxl\:focus\:skew-x-12:focus{--transform-skew-x:12deg}.xxl\:focus\:-skew-x-12:focus{--transform-skew-x:-12deg}.xxl\:focus\:-skew-x-6:focus{--transform-skew-x:-6deg}.xxl\:focus\:-skew-x-3:focus{--transform-skew-x:-3deg}.xxl\:focus\:-skew-x-2:focus{--transform-skew-x:-2deg}.xxl\:focus\:-skew-x-1:focus{--transform-skew-x:-1deg}.xxl\:focus\:skew-y-0:focus{--transform-skew-y:0}.xxl\:focus\:skew-y-1:focus{--transform-skew-y:1deg}.xxl\:focus\:skew-y-2:focus{--transform-skew-y:2deg}.xxl\:focus\:skew-y-3:focus{--transform-skew-y:3deg}.xxl\:focus\:skew-y-6:focus{--transform-skew-y:6deg}.xxl\:focus\:skew-y-12:focus{--transform-skew-y:12deg}.xxl\:focus\:-skew-y-12:focus{--transform-skew-y:-12deg}.xxl\:focus\:-skew-y-6:focus{--transform-skew-y:-6deg}.xxl\:focus\:-skew-y-3:focus{--transform-skew-y:-3deg}.xxl\:focus\:-skew-y-2:focus{--transform-skew-y:-2deg}.xxl\:focus\:-skew-y-1:focus{--transform-skew-y:-1deg}.xxl\:transition-none{transition-property:none}.xxl\:transition-all{transition-property:all}.xxl\:transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.xxl\:transition-colors{transition-property:background-color,border-color,color,fill,stroke}.xxl\:transition-opacity{transition-property:opacity}.xxl\:transition-shadow{transition-property:box-shadow}.xxl\:transition-transform{transition-property:transform}.xxl\:ease-linear{transition-timing-function:linear}.xxl\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.xxl\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.xxl\:ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.xxl\:duration-75{transition-duration:75ms}.xxl\:duration-100{transition-duration:.1s}.xxl\:duration-150{transition-duration:.15s}.xxl\:duration-200{transition-duration:.2s}.xxl\:duration-300{transition-duration:.3s}.xxl\:duration-500{transition-duration:.5s}.xxl\:duration-700{transition-duration:.7s}.xxl\:duration-1000{transition-duration:1s}.xxl\:delay-75{transition-delay:75ms}.xxl\:delay-100{transition-delay:.1s}.xxl\:delay-150{transition-delay:.15s}.xxl\:delay-200{transition-delay:.2s}.xxl\:delay-300{transition-delay:.3s}.xxl\:delay-500{transition-delay:.5s}.xxl\:delay-700{transition-delay:.7s}.xxl\:delay-1000{transition-delay:1s}.xxl\:animate-none{animation:none}.xxl\:animate-spin{animation:spin 1s linear infinite}.xxl\:animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.xxl\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.xxl\:animate-bounce{animation:bounce 1s infinite}}#nprogress{pointer-events:none}#nprogress .bar{background:#00d1ff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #00d1ff,0 0 5px #00d1ff;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#00d1ff transparent transparent #00d1ff;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}html{scroll-behavior:smooth}.go-to-top[data-v-5fd4ef0c]{cursor:pointer;position:fixed;bottom:2rem;right:2.5rem;width:2rem;color:#00d1ff;z-index:1}.go-to-top[data-v-5fd4ef0c]:hover{color:#4ddfff}@media (max-width:959px){.go-to-top[data-v-5fd4ef0c]{display:none}}.fade-enter-active[data-v-5fd4ef0c],.fade-leave-active[data-v-5fd4ef0c]{transition:opacity .3s}.fade-enter[data-v-5fd4ef0c],.fade-leave-to[data-v-5fd4ef0c]{opacity:0}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.blog-home[data-v-23ea4d9e]{padding:4.6rem 2rem 0;max-width:820px;margin:0 auto}h1[data-v-23ea4d9e]{font-size:3rem;margin:1.8rem auto;text-align:center}ul[data-v-23ea4d9e]{list-style-type:none}.hero-home{background:radial-gradient(70% 70% at 50% 100%,#e8e8e8 0,#fafafa 100%)}.content{padding-top:5rem;padding-bottom:2rem;margin:0 4rem}.smalltext{color:#999;font-size:1rem;letter-spacing:.1rem;font-weight:500}@media (max-width:719px){.content{padding-top:4rem;margin:0 .5rem}}@media (max-width:419px){.content{padding-top:4rem;margin:0 .5rem}}.text-blue{color:#cfe1e6}.bg-orange:hover{background-color:#ffd278}.hero-button:hover{background-color:#e077ff;color:#fff}.product .hero{text-align:center}.product .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.product .hero h1{font-size:3rem}.product .hero .action,.product .hero .description,.product .hero h1{margin:1.8rem auto}.product .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.product .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#00d1ff;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #00bce6}.product .hero .action-button:hover{background-color:#1ad6ff}.blog-home[data-v-f5824a9c]{padding:4.6rem 2rem 0;max-width:820px;margin:0 auto}h1[data-v-f5824a9c]{font-size:3rem;margin:1.8rem auto;text-align:center}ul[data-v-f5824a9c]{list-style-type:none}.jobs-diagram[data-v-64a1ff08]{height:370px;min-width:900px}polygon[data-v-64a1ff08],text[data-v-64a1ff08]{cursor:pointer}.job .hero{text-align:center}.job .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.job .hero h1{font-size:3rem}.job .hero .action,.job .hero .description,.job .hero h1{margin:1.8rem auto}.job .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.job .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#00d1ff;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #00bce6}.job .hero .action-button:hover{background-color:#1ad6ff}.job p{margin:50px 0}.job h2{margin:60px 0 50px}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#00d1ff}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#00d1ff}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#2c3e50}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#00d1ff}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:1rem 1.5rem .45rem 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#00d1ff}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #00d1ff;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#00d1ff}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #14d5ff}}.navbaricon{filter:invert(10%) sepia(66%) saturate(12%) hue-rotate(28deg) brightness(91%) contrast(93%)}.navbaricon:hover{filter:invert(55%) sepia(9%) saturate(3922%) hue-rotate(329deg) brightness(97%) contrast(85%)}.navbar{padding:.7rem 1.5rem;line-height:3.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:3.2rem;min-width:3.2rem;margin-right:.8rem;vertical-align:top;position:relative;z-index:10}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:13.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#767676}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}ul[data-v-08abc9d6]{list-style-type:none;padding-left:0}li>a[data-v-08abc9d6]:hover{font-weight:600}.page{padding-bottom:2rem;display:block}.hor-line{max-width:740px}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#00d1ff;border-left-color:#00d1ff}.sidebar-heading.clickable:hover{color:#00d1ff}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#00d1ff}a.sidebar-link.active{font-weight:600;color:#00d1ff;border-left-color:#00d1ff}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}li[data-v-69abe1b0]{list-style:none}.footer-bg[data-v-69abe1b0]{background-color:#00d1ff;border-top:1px solid #cfe1e6}li>a[data-v-69abe1b0]{color:#000;font-weight:700;font-size:1rem}li>a[data-v-69abe1b0]:hover{color:#fff}.footer-title[data-v-69abe1b0]{color:#000;font-size:1.1rem;font-weight:700}.footer-items[data-v-69abe1b0]{margin-left:8em}.footer-logo[data-v-69abe1b0]{margin-left:2.5em}.bottom-padding[data-v-69abe1b0]{padding-bottom:1em}.jobs-diagram[data-v-6fc3c561]{height:470px;min-width:1000px}polygon[data-v-6fc3c561],text[data-v-6fc3c561]{cursor:pointer}.gray-section{background-color:#eee}.inner-container{max-width:1200px;margin:0 auto}.inner-container h1{margin-bottom:16px}.inner-container p{font-size:16px;line-height:1.4}.usedby{max-width:900px}#video-section{background-image:url(/img/home/beam.svg);background-size:95% 42%;background-position:50%;background-repeat:no-repeat}.video{margin:auto;max-width:900px;width:100%}.video iframe{top:0;right:0;left:0;bottom:0;margin:auto;max-width:700px;height:400px}.container{margin-left:12px}.card-details{text-align:initial;margin-left:16px}.card-details p{font-size:16px;line-height:1.5;padding:0;margin:12px 0}hr{height:2px;color:#e077ff;background-color:#e077ff;border:none;width:160px}.tooling-card{min-width:14%;justify-content:center}.image-border,.tooling-card{display:flex;align-items:center}.image-border{padding:20px;border:2px solid #e47046;border-radius:50%;background:#eee;min-width:80px;min-height:80px}.image-border img{width:60px;height:60px}.image-border:hover{background-color:#fff}.orange-text{color:#e077ff}h2[data-v-c0ada04e]{width:100%;display:inline-block;border-bottom:none}h2[data-v-c0ada04e],h3[data-v-c0ada04e]{margin-top:-4.1rem;padding-top:5.6rem;margin-bottom:0}ul.timeline{list-style-type:none;position:relative;font-size:120%}ul.timeline:before{content:" ";background:#d4d9df;display:inline-block;position:absolute;left:29px;width:2px;height:100%;z-index:400}ul.timeline>li{margin:20px 0;padding-left:40px}ul.timeline>li:before{content:" ";background:#fff;display:inline-block;position:absolute;border-radius:50%;border:3px solid #000;left:20px;width:20px;height:20px;z-index:400}ul.timeline>li.done:before{background:green}ul.timeline>li.current:before{background:#ff0}.fluer{padding-left:1rem}.flex{justify-content:space-around}.team-core-font[data-v-036cb118]{text-transform:uppercase;font-size:.84em;font-weight:500}.list[data-v-036cb118],ul[data-v-036cb118]{list-style-type:none}div.language-mermaid{background-color:inherit}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770],.badge[data-v-15b7b770]{background-color:#42b983}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px}.theme-code-group__nav[data-v-deefee04]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-deefee04]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-deefee04]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-deefee04]{border-bottom:1px solid #42b983}.pre-blank[data-v-deefee04]{color:#42b983}.theme-code-block[data-v-759a7d02]{display:none}.theme-code-block__active[data-v-759a7d02]{display:block}.theme-code-block>pre[data-v-759a7d02]{background-color:orange} \ No newline at end of file diff --git a/assets/js/10.f7c1e786.js b/assets/js/10.0e8811e8.js similarity index 99% rename from assets/js/10.f7c1e786.js rename to assets/js/10.0e8811e8.js index 658662a03..d01e634e0 100644 --- a/assets/js/10.f7c1e786.js +++ b/assets/js/10.0e8811e8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{419:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos1.92f0c35b.png"},420:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos2.d04a929b.png"},421:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos3.41defd34.png"},422:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos4.8d95dae7.png"},423:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos5.aa82e072.png"},424:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos6.9e89ebcb.png"},573:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"context"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),o("p",[e._v("Causa Natura is a non-profit organization based in Mexico. It supports public policies to allow management of natural resources respecting human rights, equity, efficiency and sustainability. This project, “Pescando Datos” seeks to advocate for improved public policies for more than just subsidies allocation, through the collection of, analysis, and visualization of data around subsidies available to fishing communities in Mexico.")]),e._v(" "),o("p",[e._v("After an extended period of analysis a web platform is being built in order to explore data and visualize it with launch due for later in 2017. Following a meeting at csv,conf after a presentation by Adrià Mercader on "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=Gk2F4hncAgY&index=35&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN",target:"_blank",rel:"noopener noreferrer"}},[e._v("‘Continuous Data Validation for Everybody’"),o("OutboundLink")],1),e._v(" we have piloted with Causa Natura to explore how our goodtables service can support the project. We spoke to Eduardo Rolón, Executive Director of Causa Natura and Gabriela Rodriguez who is working on the platform.")]),e._v(" "),o("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),o("p",[e._v("Causa Natura are making a lot of freedom of Information requests in Mexico on information to do with fishers in order to understand how policies are impacting people. The data is needed to support a range of stakeholders from the many co-op fisher communities to advocacy organisations.")]),e._v(" "),o("blockquote",[o("p",[e._v("Eduardo Rolón: Advocacy organizations, either from CSOs or from the fisheries sector may be more interested in data that evaluates and supports policy recommendations. Fisher communities have more immediate needs, such as how to obtain better governmental services and support.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: The data is important to us because Campaigns and decisions will be made based on the analysis on the data Causa Natura collected. To be able to do the required analysis we need good data.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: Currently, there is a tedious process of cleaning to give us data that can be worked on. Much of the data Causa Natura was using came as PDFs and needed to be processed. We process a lot of PDFs and Excel files and there are a lot of problems getting the OCR to capture the information correctly to csv. For example, names are not consistent and this causes us a lot of problems.")])]),e._v(" "),o("h2",{attrs:{id:"the-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),o("h3",{attrs:{id:"software"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),o("p",[e._v("goodtables was an existing Python library and web application developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema as described above. We introduced goodtables in a "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog post"),o("OutboundLink")],1),e._v(" earlier this year.")]),e._v(" "),o("p",[e._v("On top of that, Open Knowledge International has developed "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(", a web service for a continuous data validation that connects to different data sources to generate structure and content reports.")]),e._v(" "),o("h3",{attrs:{id:"what-did-we-do"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),o("p",[e._v("Let’s see how "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" has helped to identify source and structural errors in the Causa Natura pilot dataset:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(419),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("After we’ve signed in, we synchronize our GitHub repositories and activate the repository we want to validate ("),o("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-causanatura",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/pilot-causanatura"),o("OutboundLink")],1),e._v("):")]),e._v(" "),o("p",[o("img",{attrs:{src:a(420),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("Once the repository is activated, every time there is an update on the data hosted on GitHub, the service will generate a validation report. This is how one of these reports looks like:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(421),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("Here, we see that there are 59 valid tables, but the report has identified source and structural errors in 41 of the other tables hosted on the repository, including:")]),e._v(" "),o("ul",[o("li",[e._v("duplicate rows")]),e._v(" "),o("li",[e._v("duplicate headers")]),e._v(" "),o("li",[e._v("blank rows")]),e._v(" "),o("li",[e._v("missing values")])]),e._v(" "),o("p",[e._v("The full list of checks exercised by "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" can be found in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Quality Spec"),o("OutboundLink")],1),e._v(". And the full report can be found "),o("a",{attrs:{href:"http://goodtables.io/github/frictionlessdata/pilot-causanatura/jobs/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("After identifying errors we went back do a manual cleanup of the data. As we mentioned, there is no need to run "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" validation manually - it happens on any GitHub push for all activated repositories:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(422),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("If we need to customize a validation process we can put a goodtables.yml configuration file on the repository root, allowing us to tweak settings like the actual checks to perform, limit of rows to check, etc:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(423),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("And instant feedback is available via GitHub commit statuses and a "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" badge that can be included in the README file:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(424),alt:"ADBio"}})]),e._v(" "),o("h2",{attrs:{id:"review"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: Right now I have not been using it extensively yet but I have a lot of faith that it could get incorporated in the process of importing data into the Github repository. It should be easy to introduce into our workflow. I really like the process of hooks after git-push as I’m trying to get the organization to use Github for new data. I really like the validation part and that a report is generated each time data is pushed. This is very important and very useful. This makes it easier for the people who are doing the cleaning of data who may not have experience with GitHub.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: The web interface needs a lot of usability work. But the idea is awesome. There are problems and it is kind of hard to use at the moment as it takes a long time to sync repositories and the process is not clear, but i think it has a huge potential to make a difference to the work we are doing, mostly if people use Github to store data then it could make a difference.")])]),e._v(" "),o("h2",{attrs:{id:"next-steps"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),o("h3",{attrs:{id:"areas-for-further-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: With continuous integration it would be very helpful to be notified with messages about the problems in the data. Perhaps emails notifications would be a good way to go, or integrations with other programs - Slack for example - would be fantastic.")])]),e._v(" "),o("p",[e._v("One thing to note is that all the errors shown following the analysis refer to the structure of the data files (missing headers, duplicate rows, etc). Including schema validation against some of the files would be a very logical next step in testing whether the contents of the data are what is expected). We are now planning to work with Causa Natura to take the steps to identify a subset of the data and create a base schema/data package that will be easily expandable and extendable.")]),e._v(" "),o("h3",{attrs:{id:"find-out-more"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[e._v("#")]),e._v(" Find Out More")]),e._v(" "),o("p",[e._v("To explore for the yourself and collaborate, see the Pescando Datos project on "),o("a",{attrs:{href:"https://github.com/pescandodatos/datos",target:"_blank",rel:"noopener noreferrer"}},[e._v("github"),o("OutboundLink")],1),e._v(" and our goodtables "),o("a",{attrs:{href:"http://goodtables.io/github/frictionlessdata/pilot-causanatura",target:"_blank",rel:"noopener noreferrer"}},[e._v("reports"),o("OutboundLink")],1),e._v(" from the project.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{419:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos1.92f0c35b.png"},420:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos2.d04a929b.png"},421:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos3.41defd34.png"},422:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos4.8d95dae7.png"},423:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos5.aa82e072.png"},424:function(e,t,a){e.exports=a.p+"assets/img/pescandodatos6.9e89ebcb.png"},572:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"context"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),o("p",[e._v("Causa Natura is a non-profit organization based in Mexico. It supports public policies to allow management of natural resources respecting human rights, equity, efficiency and sustainability. This project, “Pescando Datos” seeks to advocate for improved public policies for more than just subsidies allocation, through the collection of, analysis, and visualization of data around subsidies available to fishing communities in Mexico.")]),e._v(" "),o("p",[e._v("After an extended period of analysis a web platform is being built in order to explore data and visualize it with launch due for later in 2017. Following a meeting at csv,conf after a presentation by Adrià Mercader on "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=Gk2F4hncAgY&index=35&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN",target:"_blank",rel:"noopener noreferrer"}},[e._v("‘Continuous Data Validation for Everybody’"),o("OutboundLink")],1),e._v(" we have piloted with Causa Natura to explore how our goodtables service can support the project. We spoke to Eduardo Rolón, Executive Director of Causa Natura and Gabriela Rodriguez who is working on the platform.")]),e._v(" "),o("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),o("p",[e._v("Causa Natura are making a lot of freedom of Information requests in Mexico on information to do with fishers in order to understand how policies are impacting people. The data is needed to support a range of stakeholders from the many co-op fisher communities to advocacy organisations.")]),e._v(" "),o("blockquote",[o("p",[e._v("Eduardo Rolón: Advocacy organizations, either from CSOs or from the fisheries sector may be more interested in data that evaluates and supports policy recommendations. Fisher communities have more immediate needs, such as how to obtain better governmental services and support.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: The data is important to us because Campaigns and decisions will be made based on the analysis on the data Causa Natura collected. To be able to do the required analysis we need good data.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: Currently, there is a tedious process of cleaning to give us data that can be worked on. Much of the data Causa Natura was using came as PDFs and needed to be processed. We process a lot of PDFs and Excel files and there are a lot of problems getting the OCR to capture the information correctly to csv. For example, names are not consistent and this causes us a lot of problems.")])]),e._v(" "),o("h2",{attrs:{id:"the-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),o("h3",{attrs:{id:"software"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),o("p",[e._v("goodtables was an existing Python library and web application developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema as described above. We introduced goodtables in a "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog post"),o("OutboundLink")],1),e._v(" earlier this year.")]),e._v(" "),o("p",[e._v("On top of that, Open Knowledge International has developed "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(", a web service for a continuous data validation that connects to different data sources to generate structure and content reports.")]),e._v(" "),o("h3",{attrs:{id:"what-did-we-do"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),o("p",[e._v("Let’s see how "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" has helped to identify source and structural errors in the Causa Natura pilot dataset:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(419),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("After we’ve signed in, we synchronize our GitHub repositories and activate the repository we want to validate ("),o("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-causanatura",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/pilot-causanatura"),o("OutboundLink")],1),e._v("):")]),e._v(" "),o("p",[o("img",{attrs:{src:a(420),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("Once the repository is activated, every time there is an update on the data hosted on GitHub, the service will generate a validation report. This is how one of these reports looks like:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(421),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("Here, we see that there are 59 valid tables, but the report has identified source and structural errors in 41 of the other tables hosted on the repository, including:")]),e._v(" "),o("ul",[o("li",[e._v("duplicate rows")]),e._v(" "),o("li",[e._v("duplicate headers")]),e._v(" "),o("li",[e._v("blank rows")]),e._v(" "),o("li",[e._v("missing values")])]),e._v(" "),o("p",[e._v("The full list of checks exercised by "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" can be found in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Quality Spec"),o("OutboundLink")],1),e._v(". And the full report can be found "),o("a",{attrs:{href:"http://goodtables.io/github/frictionlessdata/pilot-causanatura/jobs/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("After identifying errors we went back do a manual cleanup of the data. As we mentioned, there is no need to run "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" validation manually - it happens on any GitHub push for all activated repositories:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(422),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("If we need to customize a validation process we can put a goodtables.yml configuration file on the repository root, allowing us to tweak settings like the actual checks to perform, limit of rows to check, etc:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(423),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("And instant feedback is available via GitHub commit statuses and a "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" badge that can be included in the README file:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(424),alt:"ADBio"}})]),e._v(" "),o("h2",{attrs:{id:"review"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: Right now I have not been using it extensively yet but I have a lot of faith that it could get incorporated in the process of importing data into the Github repository. It should be easy to introduce into our workflow. I really like the process of hooks after git-push as I’m trying to get the organization to use Github for new data. I really like the validation part and that a report is generated each time data is pushed. This is very important and very useful. This makes it easier for the people who are doing the cleaning of data who may not have experience with GitHub.")])]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: The web interface needs a lot of usability work. But the idea is awesome. There are problems and it is kind of hard to use at the moment as it takes a long time to sync repositories and the process is not clear, but i think it has a huge potential to make a difference to the work we are doing, mostly if people use Github to store data then it could make a difference.")])]),e._v(" "),o("h2",{attrs:{id:"next-steps"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),o("h3",{attrs:{id:"areas-for-further-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),o("blockquote",[o("p",[e._v("Gabriela Rodriguez: With continuous integration it would be very helpful to be notified with messages about the problems in the data. Perhaps emails notifications would be a good way to go, or integrations with other programs - Slack for example - would be fantastic.")])]),e._v(" "),o("p",[e._v("One thing to note is that all the errors shown following the analysis refer to the structure of the data files (missing headers, duplicate rows, etc). Including schema validation against some of the files would be a very logical next step in testing whether the contents of the data are what is expected). We are now planning to work with Causa Natura to take the steps to identify a subset of the data and create a base schema/data package that will be easily expandable and extendable.")]),e._v(" "),o("h3",{attrs:{id:"find-out-more"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[e._v("#")]),e._v(" Find Out More")]),e._v(" "),o("p",[e._v("To explore for the yourself and collaborate, see the Pescando Datos project on "),o("a",{attrs:{href:"https://github.com/pescandodatos/datos",target:"_blank",rel:"noopener noreferrer"}},[e._v("github"),o("OutboundLink")],1),e._v(" and our goodtables "),o("a",{attrs:{href:"http://goodtables.io/github/frictionlessdata/pilot-causanatura",target:"_blank",rel:"noopener noreferrer"}},[e._v("reports"),o("OutboundLink")],1),e._v(" from the project.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/101.2d12633f.js b/assets/js/101.7e1d6df4.js similarity index 98% rename from assets/js/101.2d12633f.js rename to assets/js/101.7e1d6df4.js index 6c7f96271..e2ae18b4b 100644 --- a/assets/js/101.2d12633f.js +++ b/assets/js/101.7e1d6df4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{635:function(e,t,a){"use strict";a.r(t);var n=a(29),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Nikhil Vats for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-nikhil-vats"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-nikhil-vats"}},[e._v("#")]),e._v(" Meet Nikhil Vats")]),e._v(" "),a("p",[e._v("I am an undergraduate student pursuing BE Computer Science and MSc Economics from BITS Pilani, India. My open-source journey started as a Google Summer of Code student with "),a("a",{attrs:{href:"https://www.open-bio.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Bioinformatics Foundation"),a("OutboundLink")],1),e._v(" in 2019 and currently, I am a mentor at "),a("a",{attrs:{href:"http://intermine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("InterMine"),a("OutboundLink")],1),e._v(" for Outreachy. I’ve been working part-time as a full-stack web developer for the last two years. The latest project that I worked on was "),a("a",{attrs:{href:"https://daancorona.tech/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DaanCorona"),a("OutboundLink")],1),e._v(" (daan is a Hindi word which means donation) - a non-profit initiative to help small businesses affected by Coronavirus in India. Through the Frictionless Data Tool Fund, I would like to give back to the open-source community by adding data package specifications to InterMine’s im-tables. Also, I love animals, music and cinema!")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I first heard about Frictionless Data from my mentor Yo Yehudi. She had sent an email to the InterMine community explaining the Frictionless Data initiative. The introductory video of Frictionless Data by Rufus Pollock inspired me deeply. I researched about Frictionless Data Specifications, Data Packages, and other tools and was amazed by how useful they can be while working with data. I wanted to contribute to Frictionless Data because I loved its design philosophy and the plethora of potential tools that can go a long way in changing how we produce, consume, and reuse data in research.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("InterMine is an open-source biological data warehouse. Over thirty different InterMine instances exist and can be viewed using InterMine’s web interface "),a("a",{attrs:{href:"https://github.com/intermine/im-tables-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("im-tables"),a("OutboundLink")],1),e._v(", a Javascript-based query results table data displayer. The export functionality of the im-tables supports common formats like CSV, TSV, and JSON. Whilst this is standardized across different instances of InterMine, exported data doesn’t conform to any specific standards, resulting in friction in data especially while integrating with other tools. Adding data package specifications and integrating with frictionless data specifications will ensure seamless integration, reusability, and sharing of data among individuals and apps, and will affect a broad number of InterMines based in research institutes around the world. In the long run, I would also like to develop and add a specification for InterMine’s data to the Frictionless Data registry.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("I will be working on the "),a("a",{attrs:{href:"https://github.com/intermine/im-tables-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("im-tables"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/intermine/intermine",target:"_blank",rel:"noopener noreferrer"}},[e._v("intermine"),a("OutboundLink")],1),e._v(" GitHub repository, writing blogs every month to share my progress. I also plan to write documentation, tutorials, and contributing guidelines to help new contributors get started easily. I want to encourage and welcome anyone who wants to contribute or get started with open-source to work on this project. I’ll be happy to help you get familiar with InterMine and this project. You can get in touch "),a("a",{attrs:{href:"http://chat.intermine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://discord.com/invite/2UgfM2k",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Lastly, I welcome everyone to try out and use the features added during this project to make data frictionless, usable, and open!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{633:function(e,t,a){"use strict";a.r(t);var n=a(29),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Nikhil Vats for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-nikhil-vats"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-nikhil-vats"}},[e._v("#")]),e._v(" Meet Nikhil Vats")]),e._v(" "),a("p",[e._v("I am an undergraduate student pursuing BE Computer Science and MSc Economics from BITS Pilani, India. My open-source journey started as a Google Summer of Code student with "),a("a",{attrs:{href:"https://www.open-bio.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Bioinformatics Foundation"),a("OutboundLink")],1),e._v(" in 2019 and currently, I am a mentor at "),a("a",{attrs:{href:"http://intermine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("InterMine"),a("OutboundLink")],1),e._v(" for Outreachy. I’ve been working part-time as a full-stack web developer for the last two years. The latest project that I worked on was "),a("a",{attrs:{href:"https://daancorona.tech/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DaanCorona"),a("OutboundLink")],1),e._v(" (daan is a Hindi word which means donation) - a non-profit initiative to help small businesses affected by Coronavirus in India. Through the Frictionless Data Tool Fund, I would like to give back to the open-source community by adding data package specifications to InterMine’s im-tables. Also, I love animals, music and cinema!")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I first heard about Frictionless Data from my mentor Yo Yehudi. She had sent an email to the InterMine community explaining the Frictionless Data initiative. The introductory video of Frictionless Data by Rufus Pollock inspired me deeply. I researched about Frictionless Data Specifications, Data Packages, and other tools and was amazed by how useful they can be while working with data. I wanted to contribute to Frictionless Data because I loved its design philosophy and the plethora of potential tools that can go a long way in changing how we produce, consume, and reuse data in research.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("InterMine is an open-source biological data warehouse. Over thirty different InterMine instances exist and can be viewed using InterMine’s web interface "),a("a",{attrs:{href:"https://github.com/intermine/im-tables-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("im-tables"),a("OutboundLink")],1),e._v(", a Javascript-based query results table data displayer. The export functionality of the im-tables supports common formats like CSV, TSV, and JSON. Whilst this is standardized across different instances of InterMine, exported data doesn’t conform to any specific standards, resulting in friction in data especially while integrating with other tools. Adding data package specifications and integrating with frictionless data specifications will ensure seamless integration, reusability, and sharing of data among individuals and apps, and will affect a broad number of InterMines based in research institutes around the world. In the long run, I would also like to develop and add a specification for InterMine’s data to the Frictionless Data registry.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("I will be working on the "),a("a",{attrs:{href:"https://github.com/intermine/im-tables-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("im-tables"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/intermine/intermine",target:"_blank",rel:"noopener noreferrer"}},[e._v("intermine"),a("OutboundLink")],1),e._v(" GitHub repository, writing blogs every month to share my progress. I also plan to write documentation, tutorials, and contributing guidelines to help new contributors get started easily. I want to encourage and welcome anyone who wants to contribute or get started with open-source to work on this project. I’ll be happy to help you get familiar with InterMine and this project. You can get in touch "),a("a",{attrs:{href:"http://chat.intermine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://discord.com/invite/2UgfM2k",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Lastly, I welcome everyone to try out and use the features added during this project to make data frictionless, usable, and open!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/102.869d7cbc.js b/assets/js/102.0e0446fa.js similarity index 98% rename from assets/js/102.869d7cbc.js rename to assets/js/102.0e0446fa.js index cb2ec0b61..77d67c76a 100644 --- a/assets/js/102.869d7cbc.js +++ b/assets/js/102.0e0446fa.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{633:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Carles Pina Estany for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-carles-pina-estany"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-carles-pina-estany"}},[e._v("#")]),e._v(" Meet Carles Pina Estany")]),e._v(" "),a("p",[e._v("I’m Carles and I’m currently working part-time for the "),a("a",{attrs:{href:"https://swisspolar.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Swiss Polar Institute"),a("OutboundLink")],1),e._v(" as a software engineer. I’m not a scientist but I like working with scientists, for science institutions, in research, education and with free/open source software. You can read more about me on my website: "),a("a",{attrs:{href:"https://carles.pina.cat/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://carles.pina.cat/"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("One of the tasks in the institute is to publish data and encourage researchers to provide detailed metadata. Often this metadata is written by researchers together with a data manager and without a tool in place to do this, it can become tricky to keep track of versions and progress. Frictionless Data schemas provide a model on which the metadata can be written to ensure it is machine-readable and standardised but completing the metadata in JSON files is not very user-friendly. My Tool Fund project, "),a("code",[e._v("schema-collaboration")]),e._v(", will help data managers and researchers collaborate easily to document data following the already-existing Frictionless Data schemas datapackage and tableschema.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("We have had Frictionless Data on our radar for about a year. "),a("a",{attrs:{href:"https://fosdem.org/2020/schedule/event/open_research_frictionless_data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lilly Winfree’s talk at FOSDEM 2020"),a("OutboundLink")],1),e._v(" gave us a good insight into how it could be used and we realised that it was a good fit. Recently we have been improving the way that we describe data for a collaborating organisation: Frictionless Data was a natural way to go and we started using it to describe all datasets. "),a("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("create.frictionlessdata.io"),a("OutboundLink")],1),e._v(" was a good start for creating a first draft of the tableschema and datapackage but we missed a tool to collaborate with the researchers when describing a data set.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("Collaboration between data managers and researchers needs to be as easy as possible for both sides. Currently there is no tool to collaboratively document tabular data and data packages easily. Using this tool the researcher will be able to enter the information in a controlled manner and the data manager will be able to give feedback on what’s missing or what needs to be changed through a common platform.")]),e._v(" "),a("p",[e._v("Hopefully this will lead to more productive use of time for both sides and having the data described with machine-readable Frictionless Data schemas will make it easier to validate, reuse and have consistent documentation. The tool will be based on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-ui",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-ui"),a("OutboundLink")],1),e._v(" for the frontend, allowing all those involved to collaborate on the metadata through a user-friendly UI. Django will be used for the backend and Docker will be used for installation and deployments.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("This project will be based on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-ui",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-ui"),a("OutboundLink")],1),e._v(" so using this tool and opening and fixing issues would be useful contributions to the project.")]),e._v(" "),a("p",[e._v("Feel free to submit issues, ideas and PR on the Github repository "),a("a",{attrs:{href:"https://github.com/frictionlessdata/schema-collaboration",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema-collaboration"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" and test the project on the staging deployment when available.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{634:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Carles Pina Estany for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-carles-pina-estany"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-carles-pina-estany"}},[e._v("#")]),e._v(" Meet Carles Pina Estany")]),e._v(" "),a("p",[e._v("I’m Carles and I’m currently working part-time for the "),a("a",{attrs:{href:"https://swisspolar.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Swiss Polar Institute"),a("OutboundLink")],1),e._v(" as a software engineer. I’m not a scientist but I like working with scientists, for science institutions, in research, education and with free/open source software. You can read more about me on my website: "),a("a",{attrs:{href:"https://carles.pina.cat/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://carles.pina.cat/"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("One of the tasks in the institute is to publish data and encourage researchers to provide detailed metadata. Often this metadata is written by researchers together with a data manager and without a tool in place to do this, it can become tricky to keep track of versions and progress. Frictionless Data schemas provide a model on which the metadata can be written to ensure it is machine-readable and standardised but completing the metadata in JSON files is not very user-friendly. My Tool Fund project, "),a("code",[e._v("schema-collaboration")]),e._v(", will help data managers and researchers collaborate easily to document data following the already-existing Frictionless Data schemas datapackage and tableschema.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("We have had Frictionless Data on our radar for about a year. "),a("a",{attrs:{href:"https://fosdem.org/2020/schedule/event/open_research_frictionless_data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lilly Winfree’s talk at FOSDEM 2020"),a("OutboundLink")],1),e._v(" gave us a good insight into how it could be used and we realised that it was a good fit. Recently we have been improving the way that we describe data for a collaborating organisation: Frictionless Data was a natural way to go and we started using it to describe all datasets. "),a("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("create.frictionlessdata.io"),a("OutboundLink")],1),e._v(" was a good start for creating a first draft of the tableschema and datapackage but we missed a tool to collaborate with the researchers when describing a data set.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("Collaboration between data managers and researchers needs to be as easy as possible for both sides. Currently there is no tool to collaboratively document tabular data and data packages easily. Using this tool the researcher will be able to enter the information in a controlled manner and the data manager will be able to give feedback on what’s missing or what needs to be changed through a common platform.")]),e._v(" "),a("p",[e._v("Hopefully this will lead to more productive use of time for both sides and having the data described with machine-readable Frictionless Data schemas will make it easier to validate, reuse and have consistent documentation. The tool will be based on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-ui",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-ui"),a("OutboundLink")],1),e._v(" for the frontend, allowing all those involved to collaborate on the metadata through a user-friendly UI. Django will be used for the backend and Docker will be used for installation and deployments.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("This project will be based on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-ui",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-ui"),a("OutboundLink")],1),e._v(" so using this tool and opening and fixing issues would be useful contributions to the project.")]),e._v(" "),a("p",[e._v("Feel free to submit issues, ideas and PR on the Github repository "),a("a",{attrs:{href:"https://github.com/frictionlessdata/schema-collaboration",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema-collaboration"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" and test the project on the staging deployment when available.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/103.cd533066.js b/assets/js/103.3bcdbc40.js similarity index 98% rename from assets/js/103.cd533066.js rename to assets/js/103.3bcdbc40.js index c48f38dd5..56fb5db1b 100644 --- a/assets/js/103.cd533066.js +++ b/assets/js/103.3bcdbc40.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{634:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("As part of the Frictionless Data for Reproducible Research project, funded by the Sloan Foundation, we have started a Pilot collaboration with the Data Readiness Group at the Department of Engineering Science of the University of Oxford; the group will be represented by Dr. Philippe Rocca-Serra, an Associate Member of Faculty. This Pilot will focus on removing the friction in reported scientific experimental results by applying the Data Package specifications.")])]),e._v(" "),a("p",[e._v("Publishing of scientific experimental results is frequently done in ad-hoc ways that are seldom consistent. For example, results are often deposited as idiosyncratic sets of Excel files or tabular files that contain very little structure or description, making them difficult to use, understand and integrate. Interpreting such tables requires human expertise, which is both costly and slow, and leads to low reuse. Ambiguous tables of results can lead researchers to rerun analysis or computation over the raw data before they understand the published tables. This current approach is broken, does not fit users’ data mining workflows, and limits meta-analysis. A better procedure for organizing and structuring information would reduce unnecessary use of computational resources, which is where the Frictionless Data project comes into play. This Pilot collaboration aims to help researchers publish their results in a more structured, reusable way.")]),e._v(" "),a("p",[e._v("In this Pilot, we will use (and possibly extend) Frictionless "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("tabular data packages"),a("OutboundLink")],1),e._v(" to devise both generic and specialized templates. These templates can be used to unambiguously report experimental results. Our short term goal from this work is to develop a set of Frictionless Data Packages for targeted use cases where impact is high. We will first focus first on creating templates for statistical comparison results, such as differential analysis, enrichment analysis, high-throughput screens, and univariate comparisons, in genomics research by using the "),a("a",{attrs:{href:"http://stato-ontology.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("STATO ontology"),a("OutboundLink")],1),e._v(" within tabular data packages.")]),e._v(" "),a("p",[e._v("Our longer term goals are that these templates will be incorporated into publishing systems to allow for more clear reporting of results, more knowledge extraction, and more reproducible science. For instance, we anticipate that this work will allow for increased consistency of table structure in publications, as well as increased data reuse owing to predictable syntax and layout. We also hope this work will ease creation of linked data graphs from table of results due to clarified semantics.")]),e._v(" "),a("p",[e._v("An additional goal is to create code that is compatible with R’s "),a("a",{attrs:{href:"https://ggplot2.tidyverse.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ggplot2 library"),a("OutboundLink")],1),e._v(", which would allow for easy generation of data analysis plots. To this end, we plan on working with R developers in the future to create a package that will generate Frictionless Data compliant data packages.")]),e._v(" "),a("p",[e._v("This work has recently begun, and will continue throughout the year. We have already met with some challenges, such as working on ways to transform, or normalize, data and ways to incorporate RDF linked data (you can read our related "),a("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/18",target:"_blank",rel:"noopener noreferrer"}},[e._v("conversations in GitHub"),a("OutboundLink")],1),e._v("). We are also working on how to define a ‘generic’ table layout definition, which is broad enough to be reused in as wide a range of situation as possible.")]),e._v(" "),a("p",[e._v("If you are interested in staying up to date on this work, we encourage you to check out these GitHub repositories: "),a("a",{attrs:{href:"https://gitlab.com/datascriptor/datascriptor-fldatapackages",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://gitlab.com/datascriptor/datascriptor-fldatapackages"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/ISA-tools/frictionless-collab",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/ISA-tools/frictionless-collab"),a("OutboundLink")],1),e._v(". Additionally, we will (virtually) be at the eLife Sprint in September to work on closely related work, which you can read about here: "),a("a",{attrs:{href:"https://sprint.elifesciences.org/data-paper-skeleton-tools-for-life-sciences/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://sprint.elifesciences.org/data-paper-skeleton-tools-for-life-sciences/"),a("OutboundLink")],1),e._v(". Throughout this Pilot, we are planning on reaching out to the community to test these ideas and get feedback. Please contact us on GitHub or in "),a("a",{attrs:{href:"https://discord.gg/2UgfM2k",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" if you are interested in contributing.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{635:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("As part of the Frictionless Data for Reproducible Research project, funded by the Sloan Foundation, we have started a Pilot collaboration with the Data Readiness Group at the Department of Engineering Science of the University of Oxford; the group will be represented by Dr. Philippe Rocca-Serra, an Associate Member of Faculty. This Pilot will focus on removing the friction in reported scientific experimental results by applying the Data Package specifications.")])]),e._v(" "),a("p",[e._v("Publishing of scientific experimental results is frequently done in ad-hoc ways that are seldom consistent. For example, results are often deposited as idiosyncratic sets of Excel files or tabular files that contain very little structure or description, making them difficult to use, understand and integrate. Interpreting such tables requires human expertise, which is both costly and slow, and leads to low reuse. Ambiguous tables of results can lead researchers to rerun analysis or computation over the raw data before they understand the published tables. This current approach is broken, does not fit users’ data mining workflows, and limits meta-analysis. A better procedure for organizing and structuring information would reduce unnecessary use of computational resources, which is where the Frictionless Data project comes into play. This Pilot collaboration aims to help researchers publish their results in a more structured, reusable way.")]),e._v(" "),a("p",[e._v("In this Pilot, we will use (and possibly extend) Frictionless "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("tabular data packages"),a("OutboundLink")],1),e._v(" to devise both generic and specialized templates. These templates can be used to unambiguously report experimental results. Our short term goal from this work is to develop a set of Frictionless Data Packages for targeted use cases where impact is high. We will first focus first on creating templates for statistical comparison results, such as differential analysis, enrichment analysis, high-throughput screens, and univariate comparisons, in genomics research by using the "),a("a",{attrs:{href:"http://stato-ontology.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("STATO ontology"),a("OutboundLink")],1),e._v(" within tabular data packages.")]),e._v(" "),a("p",[e._v("Our longer term goals are that these templates will be incorporated into publishing systems to allow for more clear reporting of results, more knowledge extraction, and more reproducible science. For instance, we anticipate that this work will allow for increased consistency of table structure in publications, as well as increased data reuse owing to predictable syntax and layout. We also hope this work will ease creation of linked data graphs from table of results due to clarified semantics.")]),e._v(" "),a("p",[e._v("An additional goal is to create code that is compatible with R’s "),a("a",{attrs:{href:"https://ggplot2.tidyverse.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ggplot2 library"),a("OutboundLink")],1),e._v(", which would allow for easy generation of data analysis plots. To this end, we plan on working with R developers in the future to create a package that will generate Frictionless Data compliant data packages.")]),e._v(" "),a("p",[e._v("This work has recently begun, and will continue throughout the year. We have already met with some challenges, such as working on ways to transform, or normalize, data and ways to incorporate RDF linked data (you can read our related "),a("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/18",target:"_blank",rel:"noopener noreferrer"}},[e._v("conversations in GitHub"),a("OutboundLink")],1),e._v("). We are also working on how to define a ‘generic’ table layout definition, which is broad enough to be reused in as wide a range of situation as possible.")]),e._v(" "),a("p",[e._v("If you are interested in staying up to date on this work, we encourage you to check out these GitHub repositories: "),a("a",{attrs:{href:"https://gitlab.com/datascriptor/datascriptor-fldatapackages",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://gitlab.com/datascriptor/datascriptor-fldatapackages"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/ISA-tools/frictionless-collab",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/ISA-tools/frictionless-collab"),a("OutboundLink")],1),e._v(". Additionally, we will (virtually) be at the eLife Sprint in September to work on closely related work, which you can read about here: "),a("a",{attrs:{href:"https://sprint.elifesciences.org/data-paper-skeleton-tools-for-life-sciences/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://sprint.elifesciences.org/data-paper-skeleton-tools-for-life-sciences/"),a("OutboundLink")],1),e._v(". Throughout this Pilot, we are planning on reaching out to the community to test these ideas and get feedback. Please contact us on GitHub or in "),a("a",{attrs:{href:"https://discord.gg/2UgfM2k",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" if you are interested in contributing.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/104.fe7e63b7.js b/assets/js/104.a3c278c0.js similarity index 98% rename from assets/js/104.fe7e63b7.js rename to assets/js/104.a3c278c0.js index 691dc4625..69f41b0d3 100644 --- a/assets/js/104.fe7e63b7.js +++ b/assets/js/104.a3c278c0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{636:function(e,t,a){"use strict";a.r(t);var o=a(29),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Stephen Eglen for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-stephen-eglen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-stephen-eglen"}},[e._v("#")]),e._v(" Meet Stephen Eglen")]),e._v(" "),a("p",[e._v("I am a Reader in Computational Neuroscience at the University of Cambridge. A large part of my work involves analysing neuronal recordings taken from high-throughput recording devices, such as multi-electrode arrays. Despite these arrays having been in use for many years, there are still no standard formats for exchanging data, and so we spend lots of time simply reformatting data as we pass it around different groups, or use different analysis "),a("a",{attrs:{href:"https://doi.org/10.1186/2047-217X-3-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://doi.org/10.1186/2047-217X-3-3"),a("OutboundLink")],1),e._v(") used HDF5; the aim of our current project is to evaluate the use of Frictionless Data as a common format for the analysis of our spontaneous activity recordings, both past and present. The bulk of the work this summer will be done by a talented Natural Science undergraduate at Cambridge, Alexander Shtyrov.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I had the good fortune to meet Dr Rufus Pollock in 2015 at a scientific meeting where I was presenting our work from 2014 and he was presenting an introduction to Frictionless Data. We then developed a case study (circa 2016) using a simpler data set (the spatial distribution of neurons in the retina). Skipping forward a few years, I saw the call for applications from Frictionless Data and decided it might be a good time to see how the project had developed. Rather than developing further tools, after discussions with the Frictionless Data team, we decided to make a case study for the application of these tools.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("Our goals are:")]),e._v(" "),a("ol",[a("li",[e._v("Convert our existing datasets (Eglen et al 2014) into Frictionless Data containers.")]),e._v(" "),a("li",[e._v("Compare the relative merits of the containers vs HDF5 for storing “medium-sized” (megabytes, rather than gigabytes) data files. Aspects to consider will include portability, efficiency and ease of access.")]),e._v(" "),a("li",[e._v("Develop a case study for analysing spontaneous activity patterns with a generative approach to model the underlying neuronal networks. This code has been developed by colleagues at Cambridge in Matlab, but has yet to be tested on our spontaneous activity patterns.")]),e._v(" "),a("li",[e._v("Write up our findings for publication in a peer-reviewed journal.")])]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("We have a GitHub repository, but it is currently private (shared also with Frictionless Data) as it contains some recent datasets relating to human patients that are not yet ready to be shared. We hope to release it as soon as we can, where it will be linked to from my home page: "),a("a",{attrs:{href:"https://sje30.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://sje30.github.io"),a("OutboundLink")],1),e._v(". We aim to share all our findings from this project for the benefit of the community.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{638:function(e,t,a){"use strict";a.r(t);var o=a(29),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Stephen Eglen for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-stephen-eglen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-stephen-eglen"}},[e._v("#")]),e._v(" Meet Stephen Eglen")]),e._v(" "),a("p",[e._v("I am a Reader in Computational Neuroscience at the University of Cambridge. A large part of my work involves analysing neuronal recordings taken from high-throughput recording devices, such as multi-electrode arrays. Despite these arrays having been in use for many years, there are still no standard formats for exchanging data, and so we spend lots of time simply reformatting data as we pass it around different groups, or use different analysis "),a("a",{attrs:{href:"https://doi.org/10.1186/2047-217X-3-3",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://doi.org/10.1186/2047-217X-3-3"),a("OutboundLink")],1),e._v(") used HDF5; the aim of our current project is to evaluate the use of Frictionless Data as a common format for the analysis of our spontaneous activity recordings, both past and present. The bulk of the work this summer will be done by a talented Natural Science undergraduate at Cambridge, Alexander Shtyrov.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I had the good fortune to meet Dr Rufus Pollock in 2015 at a scientific meeting where I was presenting our work from 2014 and he was presenting an introduction to Frictionless Data. We then developed a case study (circa 2016) using a simpler data set (the spatial distribution of neurons in the retina). Skipping forward a few years, I saw the call for applications from Frictionless Data and decided it might be a good time to see how the project had developed. Rather than developing further tools, after discussions with the Frictionless Data team, we decided to make a case study for the application of these tools.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("Our goals are:")]),e._v(" "),a("ol",[a("li",[e._v("Convert our existing datasets (Eglen et al 2014) into Frictionless Data containers.")]),e._v(" "),a("li",[e._v("Compare the relative merits of the containers vs HDF5 for storing “medium-sized” (megabytes, rather than gigabytes) data files. Aspects to consider will include portability, efficiency and ease of access.")]),e._v(" "),a("li",[e._v("Develop a case study for analysing spontaneous activity patterns with a generative approach to model the underlying neuronal networks. This code has been developed by colleagues at Cambridge in Matlab, but has yet to be tested on our spontaneous activity patterns.")]),e._v(" "),a("li",[e._v("Write up our findings for publication in a peer-reviewed journal.")])]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("We have a GitHub repository, but it is currently private (shared also with Frictionless Data) as it contains some recent datasets relating to human patients that are not yet ready to be shared. We hope to release it as soon as we can, where it will be linked to from my home page: "),a("a",{attrs:{href:"https://sje30.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://sje30.github.io"),a("OutboundLink")],1),e._v(". We aim to share all our findings from this project for the benefit of the community.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/105.80399967.js b/assets/js/105.47d55397.js similarity index 99% rename from assets/js/105.80399967.js rename to assets/js/105.47d55397.js index 9ea025c94..e72caad44 100644 --- a/assets/js/105.80399967.js +++ b/assets/js/105.47d55397.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{637:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Simon Tyrrell, Xingdong Bian, and Robert Davey for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-the-grassroots-team"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-the-grassroots-team"}},[e._v("#")]),e._v(" Meet the Grassroots team")]),e._v(" "),a("p",[e._v("Hi I’m Simon Tyrrell and I’m a research software engineer having spent most of my career in academia. My first degree was in Maths and I did my PhD in Cheminformatics, both done at the University of Sheffield. After some postdoctoral fellowships in Computational Chemistry, I now happily reside in the field of Bioinformatics here at the Earlham Institute (EI) writing software to a diet of tea and loud guitars, both listened to and played.")]),e._v(" "),a("p",[e._v("Xingdong Bian is a member of the "),a("a",{attrs:{href:"http://www.earlham.ac.uk/davey-group",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Infrastructure group"),a("OutboundLink")],1),e._v(", he joined the Earlham Institute in January 2010 and was involved in the development of EI’s Laboratory Information Management System (MISO) and the TGAC Browser. He has worked on solutions for data visualisation, managing servers, genomic databases and bioinformatics tools. Xingdong is now working mainly on the Grassroots project as a research software engineer. He has a BSc in Computer Science from the University of Sheffield and a MSc in Software Engineering from the University of York.")]),e._v(" "),a("p",[e._v("Robert Davey leads the Data Infrastructure group at the Earlham Institute and is the PI for the Grassroots project. He has a PhD in Computer Science from the University of East Anglia, undertaken at the Roberts lab in the "),a("a",{attrs:{href:"http://www.ncyc.co.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("National Collection of Yeast Cultures"),a("OutboundLink")],1),e._v(". Rob leads a number of large computing infrastructure development and deployment projects, is a certified "),a("a",{attrs:{href:"https://software-carpentry.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Software Carpentry"),a("OutboundLink")],1),e._v(" Instructor and Trainer, an editorial board member for Nature Scientific Data, and a "),a("a",{attrs:{href:"https://www.software.ac.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Software Sustainability Institute"),a("OutboundLink")],1),e._v(" Fellow.")]),e._v(" "),a("p",[e._v("Together Xingdong and I work in Robert Davey’s team at the Earlham Institute developing Grassroots. This is a set of middleware tools for sharing bioinformatics data and services so that users and developers can do scientific analyses as easily as possible.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("We have always been big believers in the FAIR data principles and when we saw a tweet about the Frictionless Data tool fund, the more that we read about it, the more it seemed to be exactly what we were after! Even without the fund, it is likely to have been something that we would have looked to implement anyway.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("As part of the Designing Future Wheat (DFW) project, we currently have two different repositories: the "),a("a",{attrs:{href:"https://opendata.earlham.ac.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DFW data portal"),a("OutboundLink")],1),e._v(", using "),a("a",{attrs:{href:"https://irods.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("iRODS"),a("OutboundLink")],1),e._v(" with "),a("a",{attrs:{href:"https://github.com/billyfish/eirods-dav",target:"_blank",rel:"noopener noreferrer"}},[e._v("mod_eirods_dav"),a("OutboundLink")],1),e._v(", and a "),a("a",{attrs:{href:"https://ckan.grassroots.tools/",target:"_blank",rel:"noopener noreferrer"}},[e._v("digital repository"),a("OutboundLink")],1),e._v(" using "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(". Both of these contain a wide variety of heterogeneous data such as genetic sequences, field trial experiment results, images, spreadsheets, publications, etc., and we are trying to standardise how to expose these datasets and their associated metadata. This is where Frictionless Data comes in! The ability to have consistent methods of accessing this information should make it easier for other researchers and data scientists to access and do some great work with all of this data.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("We firmly believe in open source and open data and everything that we create is freely available. We plan to build a selection of Frictionless Data tools and make them available on our existing data portals so people can try them out and give any feedback. These will be rolled out incrementally so that progress is visible from early on. Our initial set of work will focus on extending the DFW data portal that uses one of our existing tools, eirods-dav ("),a("a",{attrs:{href:"https://github.com/billyfish/eirods-dav",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/billyfish/eirods-dav"),a("OutboundLink")],1),e._v(") which is a tool for exposing the data in an iRODS repository in a user-friendly way with rich APIs for developers and data scientists too. So if anyone has any feedback, ideas, suggestions, rants 😃, please raise an issue at the GitHub repo; the more, the merrier!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{636:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("This grantee profile features Simon Tyrrell, Xingdong Bian, and Robert Davey for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")])]),e._v(" "),a("h2",{attrs:{id:"meet-the-grassroots-team"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-the-grassroots-team"}},[e._v("#")]),e._v(" Meet the Grassroots team")]),e._v(" "),a("p",[e._v("Hi I’m Simon Tyrrell and I’m a research software engineer having spent most of my career in academia. My first degree was in Maths and I did my PhD in Cheminformatics, both done at the University of Sheffield. After some postdoctoral fellowships in Computational Chemistry, I now happily reside in the field of Bioinformatics here at the Earlham Institute (EI) writing software to a diet of tea and loud guitars, both listened to and played.")]),e._v(" "),a("p",[e._v("Xingdong Bian is a member of the "),a("a",{attrs:{href:"http://www.earlham.ac.uk/davey-group",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Infrastructure group"),a("OutboundLink")],1),e._v(", he joined the Earlham Institute in January 2010 and was involved in the development of EI’s Laboratory Information Management System (MISO) and the TGAC Browser. He has worked on solutions for data visualisation, managing servers, genomic databases and bioinformatics tools. Xingdong is now working mainly on the Grassroots project as a research software engineer. He has a BSc in Computer Science from the University of Sheffield and a MSc in Software Engineering from the University of York.")]),e._v(" "),a("p",[e._v("Robert Davey leads the Data Infrastructure group at the Earlham Institute and is the PI for the Grassroots project. He has a PhD in Computer Science from the University of East Anglia, undertaken at the Roberts lab in the "),a("a",{attrs:{href:"http://www.ncyc.co.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("National Collection of Yeast Cultures"),a("OutboundLink")],1),e._v(". Rob leads a number of large computing infrastructure development and deployment projects, is a certified "),a("a",{attrs:{href:"https://software-carpentry.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Software Carpentry"),a("OutboundLink")],1),e._v(" Instructor and Trainer, an editorial board member for Nature Scientific Data, and a "),a("a",{attrs:{href:"https://www.software.ac.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Software Sustainability Institute"),a("OutboundLink")],1),e._v(" Fellow.")]),e._v(" "),a("p",[e._v("Together Xingdong and I work in Robert Davey’s team at the Earlham Institute developing Grassroots. This is a set of middleware tools for sharing bioinformatics data and services so that users and developers can do scientific analyses as easily as possible.")]),e._v(" "),a("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("We have always been big believers in the FAIR data principles and when we saw a tweet about the Frictionless Data tool fund, the more that we read about it, the more it seemed to be exactly what we were after! Even without the fund, it is likely to have been something that we would have looked to implement anyway.")]),e._v(" "),a("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("As part of the Designing Future Wheat (DFW) project, we currently have two different repositories: the "),a("a",{attrs:{href:"https://opendata.earlham.ac.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DFW data portal"),a("OutboundLink")],1),e._v(", using "),a("a",{attrs:{href:"https://irods.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("iRODS"),a("OutboundLink")],1),e._v(" with "),a("a",{attrs:{href:"https://github.com/billyfish/eirods-dav",target:"_blank",rel:"noopener noreferrer"}},[e._v("mod_eirods_dav"),a("OutboundLink")],1),e._v(", and a "),a("a",{attrs:{href:"https://ckan.grassroots.tools/",target:"_blank",rel:"noopener noreferrer"}},[e._v("digital repository"),a("OutboundLink")],1),e._v(" using "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(". Both of these contain a wide variety of heterogeneous data such as genetic sequences, field trial experiment results, images, spreadsheets, publications, etc., and we are trying to standardise how to expose these datasets and their associated metadata. This is where Frictionless Data comes in! The ability to have consistent methods of accessing this information should make it easier for other researchers and data scientists to access and do some great work with all of this data.")]),e._v(" "),a("h2",{attrs:{id:"how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-or-open-science-communities-engage-with-the-work-you-are-doing"}},[e._v("#")]),e._v(" How can the open data, open source, or open science communities engage with the work you are doing?")]),e._v(" "),a("p",[e._v("We firmly believe in open source and open data and everything that we create is freely available. We plan to build a selection of Frictionless Data tools and make them available on our existing data portals so people can try them out and give any feedback. These will be rolled out incrementally so that progress is visible from early on. Our initial set of work will focus on extending the DFW data portal that uses one of our existing tools, eirods-dav ("),a("a",{attrs:{href:"https://github.com/billyfish/eirods-dav",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/billyfish/eirods-dav"),a("OutboundLink")],1),e._v(") which is a tool for exposing the data in an iRODS repository in a user-friendly way with rich APIs for developers and data scientists too. So if anyone has any feedback, ideas, suggestions, rants 😃, please raise an issue at the GitHub repo; the more, the merrier!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/106.71490774.js b/assets/js/106.b974b400.js similarity index 98% rename from assets/js/106.71490774.js rename to assets/js/106.b974b400.js index e532847d2..ed170a288 100644 --- a/assets/js/106.71490774.js +++ b/assets/js/106.b974b400.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{638:function(t,e,r){"use strict";r.r(e);var o=r(29),a=Object(o.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("p",[t._v("We are hosting a virtual community hangout to share recent developments in the Frictionless Data community and it’s also an avenue to connect with other community members. This will be a 1-hour meeting where community members come together to discuss key topics in the data community.")]),t._v(" "),r("p",[r("img",{attrs:{src:"/img/blog/community.jpg",alt:"Photo by Perry Grone on Unsplash"}})]),t._v(" "),r("p",[t._v("The hangout is scheduled to hold on "),r("strong",[t._v("27th August 2020 at 5 pm BST / 4 PM UTC")]),t._v(". If you would like to attend the hangout, "),r("a",{attrs:{href:"https://forms.gle/3wEGBy2q4Q6pdNfK8",target:"_blank",rel:"noopener noreferrer"}},[t._v("you can sign up for the event using this form"),r("OutboundLink")],1)]),t._v(" "),r("p",[t._v("Looking forward to seeing you there!")]),t._v(" "),r("h2",{attrs:{id:"community-hangout-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#community-hangout-recording"}},[t._v("#")]),t._v(" Community Hangout Recording")]),t._v(" "),r("p",[t._v("If you missed the community hangout and would like to catch up on what was discussed, here’s a recording of the hangout.")]),t._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/HezM-DPB2v4",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),t._v(" "),r("p",[t._v("Here is a short summary of what we were up to:")]),t._v(" "),r("ul",[r("li",[t._v("An RFC (request for comments) we are working on and other tools:\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/project/blob/master/rfcs/0006-software-structure.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("Restructuring Libraries to Drivers and Toolkits"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/tabulator-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tabulator-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/datopian/data.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("data.js"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/datopian/jsv",target:"_blank",rel:"noopener noreferrer"}},[t._v("jsv"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-swift"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-swift"),r("OutboundLink")],1)])])]),t._v(" "),r("li",[t._v("Discussion on Google Analytics vs alternatives, some of them being open-source.")])]),t._v(" "),r("h2",{attrs:{id:"technical-presentation-on-frictionless-py"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#technical-presentation-on-frictionless-py"}},[t._v("#")]),t._v(" Technical presentation on frictionless-py")]),t._v(" "),r("p",[t._v("We also made available a technical presentation of a new tool we are working on: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-py"),r("OutboundLink")],1),t._v(". If you would like to delve deeper into the nuts and bolts of it, here it is for your enjoyment!")]),t._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/VPnC8cc6ly0",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{637:function(t,e,r){"use strict";r.r(e);var o=r(29),a=Object(o.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("p",[t._v("We are hosting a virtual community hangout to share recent developments in the Frictionless Data community and it’s also an avenue to connect with other community members. This will be a 1-hour meeting where community members come together to discuss key topics in the data community.")]),t._v(" "),r("p",[r("img",{attrs:{src:"/img/blog/community.jpg",alt:"Photo by Perry Grone on Unsplash"}})]),t._v(" "),r("p",[t._v("The hangout is scheduled to hold on "),r("strong",[t._v("27th August 2020 at 5 pm BST / 4 PM UTC")]),t._v(". If you would like to attend the hangout, "),r("a",{attrs:{href:"https://forms.gle/3wEGBy2q4Q6pdNfK8",target:"_blank",rel:"noopener noreferrer"}},[t._v("you can sign up for the event using this form"),r("OutboundLink")],1)]),t._v(" "),r("p",[t._v("Looking forward to seeing you there!")]),t._v(" "),r("h2",{attrs:{id:"community-hangout-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#community-hangout-recording"}},[t._v("#")]),t._v(" Community Hangout Recording")]),t._v(" "),r("p",[t._v("If you missed the community hangout and would like to catch up on what was discussed, here’s a recording of the hangout.")]),t._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/HezM-DPB2v4",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),t._v(" "),r("p",[t._v("Here is a short summary of what we were up to:")]),t._v(" "),r("ul",[r("li",[t._v("An RFC (request for comments) we are working on and other tools:\n"),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/project/blob/master/rfcs/0006-software-structure.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("Restructuring Libraries to Drivers and Toolkits"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/tabulator-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tabulator-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/datopian/data.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("data.js"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/datopian/jsv",target:"_blank",rel:"noopener noreferrer"}},[t._v("jsv"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-py"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-swift"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-swift"),r("OutboundLink")],1)])])]),t._v(" "),r("li",[t._v("Discussion on Google Analytics vs alternatives, some of them being open-source.")])]),t._v(" "),r("h2",{attrs:{id:"technical-presentation-on-frictionless-py"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#technical-presentation-on-frictionless-py"}},[t._v("#")]),t._v(" Technical presentation on frictionless-py")]),t._v(" "),r("p",[t._v("We also made available a technical presentation of a new tool we are working on: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-py"),r("OutboundLink")],1),t._v(". If you would like to delve deeper into the nuts and bolts of it, here it is for your enjoyment!")]),t._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/VPnC8cc6ly0",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/112.b9d7b395.js b/assets/js/112.d1d4b6fc.js similarity index 96% rename from assets/js/112.b9d7b395.js rename to assets/js/112.d1d4b6fc.js index eb7c6aaaa..b70888d42 100644 --- a/assets/js/112.b9d7b395.js +++ b/assets/js/112.d1d4b6fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{648:function(t,e,o){"use strict";o.r(e);var a=o(29),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[o("em",[t._v("By Tracy Teal; originally posted in the Dryad blog: "),o("a",{attrs:{href:"https://blog.datadryad.org/2020/11/18/frictionless-data/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://blog.datadryad.org/2020/11/18/frictionless-data/"),o("OutboundLink")],1)])]),t._v(" "),o("p",[t._v("Guided by our commitment to make research data publishing more seamless and also re-usable, we are thrilled to partner with Open Knowledge Foundation and the Frictionless Data team to enhance our submission processes. Integrating the Frictionless Data toolkit, Dryad will be able to directly provide feedback to authors on the structure of tabular files uploaded. This will also allow for automated file level metadata to be created at upload and available for download for published datasets.")]),t._v(" "),o("p",[t._v("We are excited to get moving on this project and with support from the Sloan Foundation, Open Knowledge Foundation has just announced a job opening to contribute to this work. Please check out the posting and circulate it to any developers who may be interested in building out this functionality with us: "),o("a",{attrs:{href:"https://okfn.org/about/jobs/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://okfn.org/about/jobs/"),o("OutboundLink")],1)]),t._v(" "),o("p",[o("em",[t._v("Stay tuned for a project update in July 2021!")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{645:function(t,e,o){"use strict";o.r(e);var a=o(29),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[o("em",[t._v("By Tracy Teal; originally posted in the Dryad blog: "),o("a",{attrs:{href:"https://blog.datadryad.org/2020/11/18/frictionless-data/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://blog.datadryad.org/2020/11/18/frictionless-data/"),o("OutboundLink")],1)])]),t._v(" "),o("p",[t._v("Guided by our commitment to make research data publishing more seamless and also re-usable, we are thrilled to partner with Open Knowledge Foundation and the Frictionless Data team to enhance our submission processes. Integrating the Frictionless Data toolkit, Dryad will be able to directly provide feedback to authors on the structure of tabular files uploaded. This will also allow for automated file level metadata to be created at upload and available for download for published datasets.")]),t._v(" "),o("p",[t._v("We are excited to get moving on this project and with support from the Sloan Foundation, Open Knowledge Foundation has just announced a job opening to contribute to this work. Please check out the posting and circulate it to any developers who may be interested in building out this functionality with us: "),o("a",{attrs:{href:"https://okfn.org/about/jobs/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://okfn.org/about/jobs/"),o("OutboundLink")],1)]),t._v(" "),o("p",[o("em",[t._v("Stay tuned for a project update in July 2021!")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/113.115ad30f.js b/assets/js/113.2e34c2f6.js similarity index 98% rename from assets/js/113.115ad30f.js rename to assets/js/113.2e34c2f6.js index f3e555fe8..d438dd2ed 100644 --- a/assets/js/113.115ad30f.js +++ b/assets/js/113.2e34c2f6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{645:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"a-recap-from-our-november-community-call"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-november-community-call"}},[e._v("#")]),e._v(" A recap from our November community call")]),e._v(" "),r("p",[e._v("This time around, we were offered a fantastic presentation by Costas Simatos, the team leader of the "),r("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISA"),r("sup",[e._v("2")]),e._v(" Interoperability Test Bed Action"),r("OutboundLink")],1),e._v(" at the European Commission! He revealed some powerful tools to validate data against specifications, including the following:")]),e._v(" "),r("ul",[r("li",[e._v("A "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/json/tableschema/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema validator"),r("OutboundLink")],1),e._v(", sharing a "),r("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/table-schema-validator",target:"_blank",rel:"noopener noreferrer"}},[e._v("news article"),r("OutboundLink")],1),e._v(" about it;")]),e._v(" "),r("li",[e._v("More validators to work with "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingXML/",target:"_blank",rel:"noopener noreferrer"}},[e._v("XML"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/",target:"_blank",rel:"noopener noreferrer"}},[e._v("RDF"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingJSON/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingCSV/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV"),r("OutboundLink")],1),e._v(" (based on a fork of "),r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-java"),r("OutboundLink")],1),e._v(") as well as a "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/kohesio/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("custom CSV validator"),r("OutboundLink")],1),e._v(" built for "),r("a",{attrs:{href:"https://kohesio.eu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kohesio"),r("OutboundLink")],1),e._v(", the "),r("em",[e._v("“Project Information Portal for Cohesion Policy”")]),e._v(";")]),e._v(" "),r("li",[e._v("A feature-rich "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/itb/",target:"_blank",rel:"noopener noreferrer"}},[e._v("conformance testing platform"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("p",[e._v("If you would like to dive deeper and watch Costas’ presentation, here it is:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/pJFsJW96fuA",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("ul",[r("li",[e._v("We are hiring a community manager as well as a software developer! The full details are here: "),r("a",{attrs:{href:"https://okfn.org/about/jobs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://okfn.org/about/jobs/"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("Interested in giving your feedback on "),r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/issues/536",target:"_blank",rel:"noopener noreferrer"}},[e._v("an issue about raster geoinformation"),r("OutboundLink")],1),e._v("?")])]),e._v(" "),r("h2",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on December 17. You can "),r("a",{attrs:{href:"https://forms.gle/5HeMrt2MDCYSYWxT8",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up here"),r("OutboundLink")],1),e._v(". We’ll discuss using Frictionless data package for the web archive data package (WACZ format) and give some space to talk about geospatial data standards, coping with Covid and showing a member’s platform dedicated to open data hackathons!")]),e._v(" "),r("p",[e._v("As always, there will be time for your updates too. Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h2",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/ovdGnNYk7cQ",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{646:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"a-recap-from-our-november-community-call"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-november-community-call"}},[e._v("#")]),e._v(" A recap from our November community call")]),e._v(" "),r("p",[e._v("This time around, we were offered a fantastic presentation by Costas Simatos, the team leader of the "),r("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISA"),r("sup",[e._v("2")]),e._v(" Interoperability Test Bed Action"),r("OutboundLink")],1),e._v(" at the European Commission! He revealed some powerful tools to validate data against specifications, including the following:")]),e._v(" "),r("ul",[r("li",[e._v("A "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/json/tableschema/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema validator"),r("OutboundLink")],1),e._v(", sharing a "),r("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/table-schema-validator",target:"_blank",rel:"noopener noreferrer"}},[e._v("news article"),r("OutboundLink")],1),e._v(" about it;")]),e._v(" "),r("li",[e._v("More validators to work with "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingXML/",target:"_blank",rel:"noopener noreferrer"}},[e._v("XML"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/",target:"_blank",rel:"noopener noreferrer"}},[e._v("RDF"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingJSON/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON"),r("OutboundLink")],1),e._v(" and "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingCSV/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV"),r("OutboundLink")],1),e._v(" (based on a fork of "),r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-java"),r("OutboundLink")],1),e._v(") as well as a "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/kohesio/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("custom CSV validator"),r("OutboundLink")],1),e._v(" built for "),r("a",{attrs:{href:"https://kohesio.eu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kohesio"),r("OutboundLink")],1),e._v(", the "),r("em",[e._v("“Project Information Portal for Cohesion Policy”")]),e._v(";")]),e._v(" "),r("li",[e._v("A feature-rich "),r("a",{attrs:{href:"https://www.itb.ec.europa.eu/itb/",target:"_blank",rel:"noopener noreferrer"}},[e._v("conformance testing platform"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("p",[e._v("If you would like to dive deeper and watch Costas’ presentation, here it is:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/pJFsJW96fuA",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("ul",[r("li",[e._v("We are hiring a community manager as well as a software developer! The full details are here: "),r("a",{attrs:{href:"https://okfn.org/about/jobs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://okfn.org/about/jobs/"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("Interested in giving your feedback on "),r("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/issues/536",target:"_blank",rel:"noopener noreferrer"}},[e._v("an issue about raster geoinformation"),r("OutboundLink")],1),e._v("?")])]),e._v(" "),r("h2",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on December 17. You can "),r("a",{attrs:{href:"https://forms.gle/5HeMrt2MDCYSYWxT8",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up here"),r("OutboundLink")],1),e._v(". We’ll discuss using Frictionless data package for the web archive data package (WACZ format) and give some space to talk about geospatial data standards, coping with Covid and showing a member’s platform dedicated to open data hackathons!")]),e._v(" "),r("p",[e._v("As always, there will be time for your updates too. Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h2",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/ovdGnNYk7cQ",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/114.8f9f4c29.js b/assets/js/114.7a312779.js similarity index 99% rename from assets/js/114.8f9f4c29.js rename to assets/js/114.7a312779.js index a77638f68..378254045 100644 --- a/assets/js/114.8f9f4c29.js +++ b/assets/js/114.7a312779.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{646:function(a,e,t){"use strict";t.r(e);var o=t(29),r=Object(o.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("p",[a._v("Have you ever been looking at a dataset and had no idea what the data values mean? What units are being used? What does that acronym in the first column mean? What is the license for this data?")]),a._v(" "),t("p",[a._v("These are all very common issues that make data hard to understand and use. At Frictionless Data, we work to solve these issues by packaging data with its metadata - aka the description of the data. To help you package your data, we have "),t("a",{attrs:{href:"https://frictionlessdata.io/software/",target:"_blank",rel:"noopener noreferrer"}},[a._v("code in several languages"),t("OutboundLink")],1),a._v(" and a browser tool, called "),t("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Creator"),t("OutboundLink")],1),a._v(".")]),a._v(" "),t("p",[a._v("Our Reproducible Research Fellows recently learned all about packaging their data by using the Data Package Creator. To help others learn how they too can package their data, the Fellows wrote about packaging their data in blogs that you can read below!")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-is-valid-by-ouso-daniel-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-is-valid-by-ouso-daniel-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ouso-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package is Valid! By Ouso Daniel"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“To quality-check the integrity of your data package creation, you must validate it before downloading it for sharing, among many things. The best you can get from that process is “Data package is valid!”. What about before then?”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"combating-other-people-s-data-by-monica-granados-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#combating-other-people-s-data-by-monica-granados-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/monica-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Combating other people’s data by Monica Granados"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“Follow the #otherpeoplesdata on Twitter and in it you will find a trove of data users trying to make sense of data they did not collect. While the data may be open, having no metadata or information about what variables mean, doesn’t make it very accessible….Without definitions and an explanation of the data, taking the data out of the context of my experiment and adding it to something like a meta-analysis is difficult. Enter Data packages. “")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-blog-by-lily-zhao-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-blog-by-lily-zhao-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lily-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Blog by Lily Zhao"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v('"When I started graduate school, I was shocked to learn that seafood is actually the most internationally traded food commodity in the world….However, for many developing countries being connected to the global seafood market can be a double-edged sword….Over the course of my master’s degree, I developed a passion for studying these issues, which is why I am excited to share with you my experience turning some of the data my collaborators into a packaged dataset using the Open Knowledge Foundation’s Datapackage tool.”')]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"¿como-empaquetamos-datos-y-por-que-es-importante-organizar-la-bolsa-del-supermercado-by-sele-yang-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#¿como-empaquetamos-datos-y-por-que-es-importante-organizar-la-bolsa-del-supermercado-by-sele-yang-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sele-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("¿Cómo empaquetamos datos y por qué es importante organizar la bolsa del supermercado? By Sele Yang"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“Empaquetando datos sobre aborto desde OpenStreetMap Esta es una publicación para compartirles sobre el proceso y pasos para crear datapackages. ¿Qué es esto? Un datapackage es básicamente un empaquetado que agiliza la forma en que compartimos y replicamos los datos. Es como un contenedor de datos listo para ser transportado por la autopista del conocimiento (geeky, right).”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"so-you-want-to-get-your-data-package-validated-by-katerina-drakoulaki-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#so-you-want-to-get-your-data-package-validated-by-katerina-drakoulaki-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("So you want to get your data package validated? By Katerina Drakoulaki"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“Have you ever found any kind of dataset, (or been given one by your PI/collaborator) and had no idea what the data were about? During my PhD I’ve had my fair share of not knowing how code works, or how stimuli were supposed to be presented, or how data were supposed to be analysed….The datapackage tool tries to solve one of these issues, more specifically creating packages in which data make sense, and have all the explanations (metadata) necessary to understand and manipulate them.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"constructing-a-basic-data-package-in-python-by-jacqueline-maasch-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructing-a-basic-data-package-in-python-by-jacqueline-maasch-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Constructing a basic data package in Python by Jacqueline Maasch"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“As a machine learning researcher, I am constantly scraping, merging, reshaping, exploring, modeling, and generating data. Because I do most of my data management and analysis in Python, I find it convenient to package my data in Python as well. The screenshots below are a walk-through of basic data package construction in Python.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"sharing-data-from-your-own-scientific-publication-by-dani-alcala-lopez-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sharing-data-from-your-own-scientific-publication-by-dani-alcala-lopez-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/dani-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Sharing data from your own scientific publication by Dani Alcalá-López"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“What better way to start working with open data than by sharing a Data Package from one of my own publications? In this tutorial, I will explain how to use the Frictionless Data tools to share tabular data from a scientific publication openly. This will make easier for anyone to reuse this data.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-blog-by-sam-wilairat-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-blog-by-sam-wilairat-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sam-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Blog by Sam Wilairat"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“As a library science student with an interest in pursuing data librarianship, learning how to create, manage, and share frictionless data is important. These past few months I’ve been learning about Frictionless Data and how to use Frictionless Data Tools to support reproducible research….To learn how to use the Frictionless Data Tools, I decided to pursue an independent project and am working on creating a comprehensive dataset of OER (open educational resources) health science materials that can be filtered by material type, media format, topic, and more.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"let-s-talk-data-packaging-by-evelyn-night-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#let-s-talk-data-packaging-by-evelyn-night-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Let’s Talk Data Packaging by Evelyn Night"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“A few weeks ago I met data packages for the first time and I was intrigued since I had spent too much time in the past wrangling missing and inconsistent values. Packaging data therefore taught me that arranging and preserving data does not have to be tedious anymore. Here, I show how I packaged a bit of my data (unpublished) into a neat json document using the Data Package creator . I am excited to show you just how much I have come from knowing nothing to being able to package and extract the json output.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-packaging-human-rights-with-the-universal-periodic-review-by-anne-lee-steele-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-packaging-human-rights-with-the-universal-periodic-review-by-anne-lee-steele-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("[Data]packaging human rights with the Universal Periodic Review by Anne Lee Steele"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“All of the records for the Universal Periodic Review have been uploaded online, and are available for the public. However, it’s not likely that the everyday user would be able to make heads or tails of what it actually means….The way I think about it, the Data Package is a way of explaining the categories used within the data itself, in case someone besides an expert is using them. While sections like “Recommendation” and “Recommending State” may be somewhat self-explanatory, I can imagine that this will get way more complicated with purely numerical data.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"creating-a-datapackage-for-microbial-community-data-and-a-phyloseq-object-by-kate-bowie-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-datapackage-for-microbial-community-data-and-a-phyloseq-object-by-kate-bowie-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kate-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Creating a datapackage for microbial community data (and a phyloseq object) by Kate Bowie"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“I study bacteria, and lucky for me, bacteria are everywhere….My lab often tries many different ways to handle the mock [bacteria] community, so it’s important that the analysis be documented and reproducible. To address this, I decided to generate a data package using a tool created by the Open Knowledge Foundation. Here is my experience creating a data package of our data, the metadata, and associated software.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"using-weather-and-rainfall-data-to-validate-by-ritwik-agarwal-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-weather-and-rainfall-data-to-validate-by-ritwik-agarwal-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ritwik-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Using Weather and Rainfall Data to Validate by Ritwik Agarwal"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“I am using a data resource from Telangana Open Data…it is an open source data repository commissioned by the state government here in India and basically it archives and stores Weather, Topological, Agriculture and Infrastructure data which then can be used by research students and stakeholders keen to study and make reports in it….CSV files are very versatile, but cannot handle the metadata with all the necessary context. We need to make sure that people can find our data and the information they need to understand our data. That’s where the Data Package comes in! ”")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{647:function(a,e,t){"use strict";t.r(e);var o=t(29),r=Object(o.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("p",[a._v("Have you ever been looking at a dataset and had no idea what the data values mean? What units are being used? What does that acronym in the first column mean? What is the license for this data?")]),a._v(" "),t("p",[a._v("These are all very common issues that make data hard to understand and use. At Frictionless Data, we work to solve these issues by packaging data with its metadata - aka the description of the data. To help you package your data, we have "),t("a",{attrs:{href:"https://frictionlessdata.io/software/",target:"_blank",rel:"noopener noreferrer"}},[a._v("code in several languages"),t("OutboundLink")],1),a._v(" and a browser tool, called "),t("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Creator"),t("OutboundLink")],1),a._v(".")]),a._v(" "),t("p",[a._v("Our Reproducible Research Fellows recently learned all about packaging their data by using the Data Package Creator. To help others learn how they too can package their data, the Fellows wrote about packaging their data in blogs that you can read below!")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-is-valid-by-ouso-daniel-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-is-valid-by-ouso-daniel-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ouso-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package is Valid! By Ouso Daniel"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“To quality-check the integrity of your data package creation, you must validate it before downloading it for sharing, among many things. The best you can get from that process is “Data package is valid!”. What about before then?”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"combating-other-people-s-data-by-monica-granados-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#combating-other-people-s-data-by-monica-granados-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/monica-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Combating other people’s data by Monica Granados"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“Follow the #otherpeoplesdata on Twitter and in it you will find a trove of data users trying to make sense of data they did not collect. While the data may be open, having no metadata or information about what variables mean, doesn’t make it very accessible….Without definitions and an explanation of the data, taking the data out of the context of my experiment and adding it to something like a meta-analysis is difficult. Enter Data packages. “")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-blog-by-lily-zhao-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-blog-by-lily-zhao-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lily-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Blog by Lily Zhao"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v('"When I started graduate school, I was shocked to learn that seafood is actually the most internationally traded food commodity in the world….However, for many developing countries being connected to the global seafood market can be a double-edged sword….Over the course of my master’s degree, I developed a passion for studying these issues, which is why I am excited to share with you my experience turning some of the data my collaborators into a packaged dataset using the Open Knowledge Foundation’s Datapackage tool.”')]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"¿como-empaquetamos-datos-y-por-que-es-importante-organizar-la-bolsa-del-supermercado-by-sele-yang-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#¿como-empaquetamos-datos-y-por-que-es-importante-organizar-la-bolsa-del-supermercado-by-sele-yang-cohort-1"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sele-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("¿Cómo empaquetamos datos y por qué es importante organizar la bolsa del supermercado? By Sele Yang"),t("OutboundLink")],1),a._v(" (Cohort 1)")]),a._v(" "),t("p",[a._v("“Empaquetando datos sobre aborto desde OpenStreetMap Esta es una publicación para compartirles sobre el proceso y pasos para crear datapackages. ¿Qué es esto? Un datapackage es básicamente un empaquetado que agiliza la forma en que compartimos y replicamos los datos. Es como un contenedor de datos listo para ser transportado por la autopista del conocimiento (geeky, right).”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"so-you-want-to-get-your-data-package-validated-by-katerina-drakoulaki-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#so-you-want-to-get-your-data-package-validated-by-katerina-drakoulaki-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("So you want to get your data package validated? By Katerina Drakoulaki"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“Have you ever found any kind of dataset, (or been given one by your PI/collaborator) and had no idea what the data were about? During my PhD I’ve had my fair share of not knowing how code works, or how stimuli were supposed to be presented, or how data were supposed to be analysed….The datapackage tool tries to solve one of these issues, more specifically creating packages in which data make sense, and have all the explanations (metadata) necessary to understand and manipulate them.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"constructing-a-basic-data-package-in-python-by-jacqueline-maasch-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructing-a-basic-data-package-in-python-by-jacqueline-maasch-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Constructing a basic data package in Python by Jacqueline Maasch"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“As a machine learning researcher, I am constantly scraping, merging, reshaping, exploring, modeling, and generating data. Because I do most of my data management and analysis in Python, I find it convenient to package my data in Python as well. The screenshots below are a walk-through of basic data package construction in Python.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"sharing-data-from-your-own-scientific-publication-by-dani-alcala-lopez-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sharing-data-from-your-own-scientific-publication-by-dani-alcala-lopez-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/dani-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Sharing data from your own scientific publication by Dani Alcalá-López"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“What better way to start working with open data than by sharing a Data Package from one of my own publications? In this tutorial, I will explain how to use the Frictionless Data tools to share tabular data from a scientific publication openly. This will make easier for anyone to reuse this data.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-package-blog-by-sam-wilairat-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-package-blog-by-sam-wilairat-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sam-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package Blog by Sam Wilairat"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“As a library science student with an interest in pursuing data librarianship, learning how to create, manage, and share frictionless data is important. These past few months I’ve been learning about Frictionless Data and how to use Frictionless Data Tools to support reproducible research….To learn how to use the Frictionless Data Tools, I decided to pursue an independent project and am working on creating a comprehensive dataset of OER (open educational resources) health science materials that can be filtered by material type, media format, topic, and more.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"let-s-talk-data-packaging-by-evelyn-night-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#let-s-talk-data-packaging-by-evelyn-night-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Let’s Talk Data Packaging by Evelyn Night"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“A few weeks ago I met data packages for the first time and I was intrigued since I had spent too much time in the past wrangling missing and inconsistent values. Packaging data therefore taught me that arranging and preserving data does not have to be tedious anymore. Here, I show how I packaged a bit of my data (unpublished) into a neat json document using the Data Package creator . I am excited to show you just how much I have come from knowing nothing to being able to package and extract the json output.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"data-packaging-human-rights-with-the-universal-periodic-review-by-anne-lee-steele-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-packaging-human-rights-with-the-universal-periodic-review-by-anne-lee-steele-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("[Data]packaging human rights with the Universal Periodic Review by Anne Lee Steele"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“All of the records for the Universal Periodic Review have been uploaded online, and are available for the public. However, it’s not likely that the everyday user would be able to make heads or tails of what it actually means….The way I think about it, the Data Package is a way of explaining the categories used within the data itself, in case someone besides an expert is using them. While sections like “Recommendation” and “Recommending State” may be somewhat self-explanatory, I can imagine that this will get way more complicated with purely numerical data.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"creating-a-datapackage-for-microbial-community-data-and-a-phyloseq-object-by-kate-bowie-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-datapackage-for-microbial-community-data-and-a-phyloseq-object-by-kate-bowie-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kate-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Creating a datapackage for microbial community data (and a phyloseq object) by Kate Bowie"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“I study bacteria, and lucky for me, bacteria are everywhere….My lab often tries many different ways to handle the mock [bacteria] community, so it’s important that the analysis be documented and reproducible. To address this, I decided to generate a data package using a tool created by the Open Knowledge Foundation. Here is my experience creating a data package of our data, the metadata, and associated software.”")]),a._v(" "),t("hr"),a._v(" "),t("h3",{attrs:{id:"using-weather-and-rainfall-data-to-validate-by-ritwik-agarwal-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-weather-and-rainfall-data-to-validate-by-ritwik-agarwal-cohort-2"}},[a._v("#")]),a._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ritwik-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Using Weather and Rainfall Data to Validate by Ritwik Agarwal"),t("OutboundLink")],1),a._v(" (Cohort 2)")]),a._v(" "),t("p",[a._v("“I am using a data resource from Telangana Open Data…it is an open source data repository commissioned by the state government here in India and basically it archives and stores Weather, Topological, Agriculture and Infrastructure data which then can be used by research students and stakeholders keen to study and make reports in it….CSV files are very versatile, but cannot handle the metadata with all the necessary context. We need to make sure that people can find our data and the information they need to understand our data. That’s where the Data Package comes in! ”")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/115.24c7eaf7.js b/assets/js/115.6bee2741.js similarity index 98% rename from assets/js/115.24c7eaf7.js rename to assets/js/115.6bee2741.js index fef48f9a8..f41eb489d 100644 --- a/assets/js/115.24c7eaf7.js +++ b/assets/js/115.6bee2741.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{647:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h2",{attrs:{id:"a-recap-from-our-december-community-call"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-december-community-call"}},[e._v("#")]),e._v(" A recap from our December community call")]),e._v(" "),a("p",[e._v("We had a presentation about “using frictionless data package for web archive data package (WACZ format)”. More details in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/69",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub issue"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you would like to dive deeper and watch Ilya’s presentation, you can find it here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/2aeRcEMmmSs",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("ul",[a("li",[e._v("People are interested in tools dealing with tools dealing with “small” data.")]),e._v(" "),a("li",[e._v("What are we up to for 2021? What’s the roadmap for Frictionless?\n"),a("ul",[a("li",[e._v("Specs are stable.")]),e._v(" "),a("li",[e._v("Always bet on JavaScript! We will keep focusing on working with tools for JavaScript. Its versatility is required for desktop apps, using dynamic frameworks like React, etc.\n"),a("ul",[a("li",[e._v("We will keep working on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-js"),a("OutboundLink")],1)])])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/datopian/data-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/datopian/data-cli"),a("OutboundLink")],1),e._v(" Command line tool for working with data, Data Packages and the DataHub")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/datopian/datapub",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/datopian/datapub"),a("OutboundLink")],1),e._v(" React-based framework for building data publishing workflows (esp for CKAN)")])]),e._v(" "),a("h2",{attrs:{id:"join-us-next-time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-time"}},[e._v("#")]),e._v(" Join us next time!")]),e._v(" "),a("p",[e._v("Our next meeting will be announced in January 2021! You can "),a("a",{attrs:{href:"https://forms.gle/5HeMrt2MDCYSYWxT8",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up here"),a("OutboundLink")],1),e._v(" to be notified when the hangout will be scheduled. We’ll give some space to talk about geospatial data standards, coping with Covid and showing a member’s platform dedicated to open data hackathons!")]),e._v(" "),a("p",[e._v("As always, there will be time for your updates too. Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h2",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/lquzoKn9Flo",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{648:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h2",{attrs:{id:"a-recap-from-our-december-community-call"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-december-community-call"}},[e._v("#")]),e._v(" A recap from our December community call")]),e._v(" "),a("p",[e._v("We had a presentation about “using frictionless data package for web archive data package (WACZ format)”. More details in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/69",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub issue"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you would like to dive deeper and watch Ilya’s presentation, you can find it here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/2aeRcEMmmSs",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("ul",[a("li",[e._v("People are interested in tools dealing with tools dealing with “small” data.")]),e._v(" "),a("li",[e._v("What are we up to for 2021? What’s the roadmap for Frictionless?\n"),a("ul",[a("li",[e._v("Specs are stable.")]),e._v(" "),a("li",[e._v("Always bet on JavaScript! We will keep focusing on working with tools for JavaScript. Its versatility is required for desktop apps, using dynamic frameworks like React, etc.\n"),a("ul",[a("li",[e._v("We will keep working on "),a("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-js"),a("OutboundLink")],1)])])])])]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/datopian/data-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/datopian/data-cli"),a("OutboundLink")],1),e._v(" Command line tool for working with data, Data Packages and the DataHub")]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/datopian/datapub",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/datopian/datapub"),a("OutboundLink")],1),e._v(" React-based framework for building data publishing workflows (esp for CKAN)")])]),e._v(" "),a("h2",{attrs:{id:"join-us-next-time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-time"}},[e._v("#")]),e._v(" Join us next time!")]),e._v(" "),a("p",[e._v("Our next meeting will be announced in January 2021! You can "),a("a",{attrs:{href:"https://forms.gle/5HeMrt2MDCYSYWxT8",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up here"),a("OutboundLink")],1),e._v(" to be notified when the hangout will be scheduled. We’ll give some space to talk about geospatial data standards, coping with Covid and showing a member’s platform dedicated to open data hackathons!")]),e._v(" "),a("p",[e._v("As always, there will be time for your updates too. Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h2",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/lquzoKn9Flo",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/118.dfd2fa17.js b/assets/js/118.b068e983.js similarity index 98% rename from assets/js/118.dfd2fa17.js rename to assets/js/118.b068e983.js index 5ca339b75..d7b217ba7 100644 --- a/assets/js/118.dfd2fa17.js +++ b/assets/js/118.b068e983.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{651:function(e,t,o){"use strict";o.r(t);var n=o(29),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Hi everyone,")]),e._v(" "),o("p",[e._v("I am Sara Petti, the new "),o("a",{attrs:{href:"https://frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data"),o("OutboundLink")],1),e._v(" Community Manager. After a very happy decade in Brussels, I moved to Hamburg, Germany last year in February, just in time to live the global pandemic from a brand-new place. With social life put to a stop, I finally decided to start something I had wanted to do for quite some time: learn to code in order to do data visualisation. Right now I am learning Python slowly but surely and when I am not going bananas over cleaning data I draw comics or experiment fermentation with items in my kitchen (mostly vegetables). So if you are also a passionate breeder of lactobacillus bacteria, we should definitely get in touch!")]),e._v(" "),o("p",[e._v("Back in Brussels I worked with public libraries, developing projects with them, but also advocating for them to be on the EU agenda. Talking with some of the most innovative librarians, I became well aware of the importance of granting free access to information and knowledge to everyone in order to empower citizens and foster democracy. I started to take an interest in the whole open movement, monitoring projects and policy development, and quickly became passionate about it.")]),e._v(" "),o("p",[e._v("I think the real turning point for me was when I got to know an amazing project on opening air quality data developed by some public libraries in Colombia and tried to replicate it in Europe. At that point, I really understood the implications of the open movement: by opening data, citizens are able to gain ownership on compelling subjects for them and to advocate for policy improvement. Sadly more often than not, when data is made available, it is not directly reusable.")]),e._v(" "),o("p",[e._v("Frictionless Data provides tools that improve the quality of open data, making it more useful to society and reusable by a wide range of people. I think that this idea of serving society with a free and open service that people can use to empower themselves is what attracted me at first. Providing those kinds of services with no barriers to entry (and no friction, if you will) should be the purpose of any institution. This is why I am very excited to join the "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(" team working on this amazing project, doing what I think I can do best: interact with people and create links between them. My plan for the upcoming months is to build a proactive community around this project and engage with them. So if you are interested in knowing more about Frictionless Data, or you are already using our tools and would like to connect, email me: "),o("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(" or connect with the project on "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(" or "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{652:function(e,t,o){"use strict";o.r(t);var n=o(29),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Hi everyone,")]),e._v(" "),o("p",[e._v("I am Sara Petti, the new "),o("a",{attrs:{href:"https://frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data"),o("OutboundLink")],1),e._v(" Community Manager. After a very happy decade in Brussels, I moved to Hamburg, Germany last year in February, just in time to live the global pandemic from a brand-new place. With social life put to a stop, I finally decided to start something I had wanted to do for quite some time: learn to code in order to do data visualisation. Right now I am learning Python slowly but surely and when I am not going bananas over cleaning data I draw comics or experiment fermentation with items in my kitchen (mostly vegetables). So if you are also a passionate breeder of lactobacillus bacteria, we should definitely get in touch!")]),e._v(" "),o("p",[e._v("Back in Brussels I worked with public libraries, developing projects with them, but also advocating for them to be on the EU agenda. Talking with some of the most innovative librarians, I became well aware of the importance of granting free access to information and knowledge to everyone in order to empower citizens and foster democracy. I started to take an interest in the whole open movement, monitoring projects and policy development, and quickly became passionate about it.")]),e._v(" "),o("p",[e._v("I think the real turning point for me was when I got to know an amazing project on opening air quality data developed by some public libraries in Colombia and tried to replicate it in Europe. At that point, I really understood the implications of the open movement: by opening data, citizens are able to gain ownership on compelling subjects for them and to advocate for policy improvement. Sadly more often than not, when data is made available, it is not directly reusable.")]),e._v(" "),o("p",[e._v("Frictionless Data provides tools that improve the quality of open data, making it more useful to society and reusable by a wide range of people. I think that this idea of serving society with a free and open service that people can use to empower themselves is what attracted me at first. Providing those kinds of services with no barriers to entry (and no friction, if you will) should be the purpose of any institution. This is why I am very excited to join the "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(" team working on this amazing project, doing what I think I can do best: interact with people and create links between them. My plan for the upcoming months is to build a proactive community around this project and engage with them. So if you are interested in knowing more about Frictionless Data, or you are already using our tools and would like to connect, email me: "),o("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(" or connect with the project on "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(" or "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/119.4464f1f2.js b/assets/js/119.fb8a4883.js similarity index 99% rename from assets/js/119.4464f1f2.js rename to assets/js/119.fb8a4883.js index d4e50592c..0a6ee3035 100644 --- a/assets/js/119.4464f1f2.js +++ b/assets/js/119.fb8a4883.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{652:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Have you ever heard a data horror story about Excel automatically changing all numbers into dates without so much as a warning? Have you ever accidentally entered a wrong data value into a spreadsheet, or accidentally deleted a cell? What if there was an easy way to detect errors in data types and content? Well there is! That is the main goal of Goodtables, the Frictionless data validation service, and also the "),t("code",[e._v("Frictionless-py")]),e._v(" "),t("code",[e._v("validate")]),e._v(" function. Interested in learning more about how you can validate your data? Read on to see how the Frictionless Fellows validated their research data and learn their tips and tricks!")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("Click on the links below to read the whole blog.")])]),e._v(" "),t("h3",{attrs:{id:"don-t-you-wish-your-table-was-as-clean-as-mine-by-monica-granados-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#don-t-you-wish-your-table-was-as-clean-as-mine-by-monica-granados-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/monica-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Don’t you wish your table was as clean as mine? By Monica Granados"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“How many times have you gotten a data frame from a colleague or downloaded data that had missing values? Or it’s missing a column name? Do you wish you were never that person? Well introducing Goodtables – your solution to counteracting bad data frames! As part of the inaugural Frictionless Data Fellows, I took Goodtables out for a spin.”")]),e._v(" "),t("h3",{attrs:{id:"validando-datos-un-paquete-a-la-vez-by-sele-yang-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validando-datos-un-paquete-a-la-vez-by-sele-yang-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sele-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validando datos un paquete a la vez by Sele Yang"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“Yo trabajé con la base de datos que vengo utilizando para el programa que se encuentra en mi repositorio de Github. Es una base de datos geográficos sobre clínicas de aborto descargada desde OpenStreetMap a través de OverpassTurbo….Goodtables es una herramienta muy poderosa, que nos permite contar contar con la posibilidad de validación constante y de forma simple para mantener nuestras bases de datos en condiciones óptimas, no sólo para nuestro trabajo, sino también para la reproducción y uso de los mismos por otras personas.”")]),e._v(" "),t("h3",{attrs:{id:"tabular-data-before-you-use-the-data-by-ouso-daniel-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tabular-data-before-you-use-the-data-by-ouso-daniel-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ouso-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular data: Before you use the data by Ouso Daniel"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“I want to talk about goodtables, a Frictionless data (FD) tool for validating tabular data sets. As hinted by the name, you only want to work on/with tabular data in good condition; the tool highlights errors in your tabular dataset, with the precision of the exact location of your error. Again, the beautiful thing about FD tools is that they don’t discriminate on your preferences, it encompasses the Linux-based CLI, Python, GUI folks, among other languages.”")]),e._v(" "),t("h3",{attrs:{id:"data-validation-of-my-interview-dataset-using-goodtables-by-lily-zhao-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-validation-of-my-interview-dataset-using-goodtables-by-lily-zhao-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lily-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Validation Of My Interview Dataset Using Goodtables by Lily Zhao"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“I used goodtables to validate the interview data we gathered as part of the first chapter of my PhD. These data were collected in Mo’orea, French Polynesia where we interviewed both residents and scientists regarding the future of research in Mo’orea….Amplifying local involvement and unifying the perspectives of researchers and coastal communities is critical not only in reducing inequity in science, but also in securing lasting coral reef health.”")]),e._v(" "),t("h3",{attrs:{id:"walking-through-the-frictionless-framework-by-jacqueline-maasch-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#walking-through-the-frictionless-framework-by-jacqueline-maasch-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Walking through the "),t("code",[e._v("frictionless")]),e._v(" framework by Jacqueline Maasch"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“While the GoodTables web server is a convenient tool for automated data validation, the frictionless framework allows for validation right within your Python scripts. We’ll demonstrate some key frictionless functionality, both in Python and command line syntax. As an illustrative point, we will use a CSV file that contains an invalid element – a remnant of careless file creation.”")]),e._v(" "),t("h3",{attrs:{id:"validating-your-data-before-sharing-with-the-community-by-dani-alcala-lopez-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validating-your-data-before-sharing-with-the-community-by-dani-alcala-lopez-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/dani-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validating your data before sharing with the community by Dani Alcalá-López"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Once we have decided to share our data with the rest of the world, it is important to make sure that other people will be able to reuse it. This means providing as much metadata as possible, but also checking that there are no errors in the data that might prevent others from benefiting from our data. Goodtables is a simple tool that you can use both on the web and in the command-line interface to carry out this verification process”")]),e._v(" "),t("h3",{attrs:{id:"goodtables-blog-by-sam-wilairat-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#goodtables-blog-by-sam-wilairat-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sam-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Goodtables blog by Sam Wilairat"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Now let’s try validating the same data using the Goodtables command line tool! ….Once the installation is complete, type “goodtables path/to/file.csv”. You will either receive a green message stating that the data is valid, or a red message, like the one I have shown below, showing that the data is not valid!”")]),e._v(" "),t("h3",{attrs:{id:"using-goodtables-to-validate-metadata-from-multiple-sequencing-runs-by-kate-bowie-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-goodtables-to-validate-metadata-from-multiple-sequencing-runs-by-kate-bowie-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kate-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Using goodtables to validate metadata from multiple sequencing runs by Kate Bowie"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Here, I will show you how I used a schema and GoodTables to make sure my metadata files could be combined, so I can use them for downstream microbial diversity analysis….It’s extremely helpful that GoodTables pointed this ### [error] out, because if I tried to combine these metadata files in R with non-matching case as it is here, then it would create TWO separate columns for the metadata….Now I will be able to combine these metadata files together and it will make my data analysis pipeline a lot smoother.”")]),e._v(" "),t("h3",{attrs:{id:"reflecting-on-datafication-data-prep-and-utf-8-with-goodtables-io-by-anne-lee-steele-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reflecting-on-datafication-data-prep-and-utf-8-with-goodtables-io-by-anne-lee-steele-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Reflecting on ‘datafication’, data prep, and UTF-8 with goodtables.io by Anne Lee Steele"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Before I knew it, it was 2021, and revisiting my data in the new year has made me realize just how much time and efforts goes into cleaning, structuring, and formatting datasets – and how much more goes into making them understandable for others (i.e. through Frictionless’ data-package). I’d always thought of these processes as a kind of black box, where ‘data analysis’ simply happens. But in reality, it’s the fact that we’ve been spending so much time on preparatory work that points to how important these processes actually are: and how much goes into making sure that data can be used before analyzing it in the first place.”")]),e._v(" "),t("h3",{attrs:{id:"validate-it-the-goodtables-way-by-evelyn-night-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validate-it-the-goodtables-way-by-evelyn-night-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validate it the GoodTables way! By Evelyn Night"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Errors may sometimes occur while describing data in a tabular format and these could be in the structure; such as missing headers and duplicated rows, or in the content for instance assigning the wrong character to a string. Some of these errors could be easily spotted by naked eyes and fixed during the data curation process while others may just go unnoticed and later impede some downstream analytical workflows. GoodTables are handy in flagging down common errors that come with tabular data handling as it recognises these discrepancies fast and efficiently to enable users debug their data easily. ”")]),e._v(" "),t("h3",{attrs:{id:"using-the-frictionless-framework-for-data-validation-by-katerina-drakoulaki-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-frictionless-framework-for-data-validation-by-katerina-drakoulaki-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Using the frictionless framework for data validation by Katerina Drakoulaki"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Thus, similar to what the data package creator and "),t("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),t("OutboundLink")],1),e._v(" does, frictionless detects your variables and their names, and infers the type of data. However, it detected some of my variables as strings, when they are in fact integers. Of course, goodtables did not detect this, as my data were generally -in terms of formatting- valid. Not inferring the right type of data can be a problem both for future me, but also for other people looking at my data.”")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{651:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Have you ever heard a data horror story about Excel automatically changing all numbers into dates without so much as a warning? Have you ever accidentally entered a wrong data value into a spreadsheet, or accidentally deleted a cell? What if there was an easy way to detect errors in data types and content? Well there is! That is the main goal of Goodtables, the Frictionless data validation service, and also the "),t("code",[e._v("Frictionless-py")]),e._v(" "),t("code",[e._v("validate")]),e._v(" function. Interested in learning more about how you can validate your data? Read on to see how the Frictionless Fellows validated their research data and learn their tips and tricks!")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("Click on the links below to read the whole blog.")])]),e._v(" "),t("h3",{attrs:{id:"don-t-you-wish-your-table-was-as-clean-as-mine-by-monica-granados-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#don-t-you-wish-your-table-was-as-clean-as-mine-by-monica-granados-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/monica-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Don’t you wish your table was as clean as mine? By Monica Granados"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“How many times have you gotten a data frame from a colleague or downloaded data that had missing values? Or it’s missing a column name? Do you wish you were never that person? Well introducing Goodtables – your solution to counteracting bad data frames! As part of the inaugural Frictionless Data Fellows, I took Goodtables out for a spin.”")]),e._v(" "),t("h3",{attrs:{id:"validando-datos-un-paquete-a-la-vez-by-sele-yang-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validando-datos-un-paquete-a-la-vez-by-sele-yang-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sele-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validando datos un paquete a la vez by Sele Yang"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“Yo trabajé con la base de datos que vengo utilizando para el programa que se encuentra en mi repositorio de Github. Es una base de datos geográficos sobre clínicas de aborto descargada desde OpenStreetMap a través de OverpassTurbo….Goodtables es una herramienta muy poderosa, que nos permite contar contar con la posibilidad de validación constante y de forma simple para mantener nuestras bases de datos en condiciones óptimas, no sólo para nuestro trabajo, sino también para la reproducción y uso de los mismos por otras personas.”")]),e._v(" "),t("h3",{attrs:{id:"tabular-data-before-you-use-the-data-by-ouso-daniel-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tabular-data-before-you-use-the-data-by-ouso-daniel-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/ouso-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular data: Before you use the data by Ouso Daniel"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“I want to talk about goodtables, a Frictionless data (FD) tool for validating tabular data sets. As hinted by the name, you only want to work on/with tabular data in good condition; the tool highlights errors in your tabular dataset, with the precision of the exact location of your error. Again, the beautiful thing about FD tools is that they don’t discriminate on your preferences, it encompasses the Linux-based CLI, Python, GUI folks, among other languages.”")]),e._v(" "),t("h3",{attrs:{id:"data-validation-of-my-interview-dataset-using-goodtables-by-lily-zhao-cohort-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#data-validation-of-my-interview-dataset-using-goodtables-by-lily-zhao-cohort-1"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lily-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Validation Of My Interview Dataset Using Goodtables by Lily Zhao"),t("OutboundLink")],1),e._v(" (Cohort 1)")]),e._v(" "),t("p",[e._v("“I used goodtables to validate the interview data we gathered as part of the first chapter of my PhD. These data were collected in Mo’orea, French Polynesia where we interviewed both residents and scientists regarding the future of research in Mo’orea….Amplifying local involvement and unifying the perspectives of researchers and coastal communities is critical not only in reducing inequity in science, but also in securing lasting coral reef health.”")]),e._v(" "),t("h3",{attrs:{id:"walking-through-the-frictionless-framework-by-jacqueline-maasch-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#walking-through-the-frictionless-framework-by-jacqueline-maasch-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Walking through the "),t("code",[e._v("frictionless")]),e._v(" framework by Jacqueline Maasch"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“While the GoodTables web server is a convenient tool for automated data validation, the frictionless framework allows for validation right within your Python scripts. We’ll demonstrate some key frictionless functionality, both in Python and command line syntax. As an illustrative point, we will use a CSV file that contains an invalid element – a remnant of careless file creation.”")]),e._v(" "),t("h3",{attrs:{id:"validating-your-data-before-sharing-with-the-community-by-dani-alcala-lopez-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validating-your-data-before-sharing-with-the-community-by-dani-alcala-lopez-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/dani-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validating your data before sharing with the community by Dani Alcalá-López"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Once we have decided to share our data with the rest of the world, it is important to make sure that other people will be able to reuse it. This means providing as much metadata as possible, but also checking that there are no errors in the data that might prevent others from benefiting from our data. Goodtables is a simple tool that you can use both on the web and in the command-line interface to carry out this verification process”")]),e._v(" "),t("h3",{attrs:{id:"goodtables-blog-by-sam-wilairat-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#goodtables-blog-by-sam-wilairat-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/sam-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Goodtables blog by Sam Wilairat"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Now let’s try validating the same data using the Goodtables command line tool! ….Once the installation is complete, type “goodtables path/to/file.csv”. You will either receive a green message stating that the data is valid, or a red message, like the one I have shown below, showing that the data is not valid!”")]),e._v(" "),t("h3",{attrs:{id:"using-goodtables-to-validate-metadata-from-multiple-sequencing-runs-by-kate-bowie-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-goodtables-to-validate-metadata-from-multiple-sequencing-runs-by-kate-bowie-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kate-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Using goodtables to validate metadata from multiple sequencing runs by Kate Bowie"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Here, I will show you how I used a schema and GoodTables to make sure my metadata files could be combined, so I can use them for downstream microbial diversity analysis….It’s extremely helpful that GoodTables pointed this ### [error] out, because if I tried to combine these metadata files in R with non-matching case as it is here, then it would create TWO separate columns for the metadata….Now I will be able to combine these metadata files together and it will make my data analysis pipeline a lot smoother.”")]),e._v(" "),t("h3",{attrs:{id:"reflecting-on-datafication-data-prep-and-utf-8-with-goodtables-io-by-anne-lee-steele-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reflecting-on-datafication-data-prep-and-utf-8-with-goodtables-io-by-anne-lee-steele-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Reflecting on ‘datafication’, data prep, and UTF-8 with goodtables.io by Anne Lee Steele"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Before I knew it, it was 2021, and revisiting my data in the new year has made me realize just how much time and efforts goes into cleaning, structuring, and formatting datasets – and how much more goes into making them understandable for others (i.e. through Frictionless’ data-package). I’d always thought of these processes as a kind of black box, where ‘data analysis’ simply happens. But in reality, it’s the fact that we’ve been spending so much time on preparatory work that points to how important these processes actually are: and how much goes into making sure that data can be used before analyzing it in the first place.”")]),e._v(" "),t("h3",{attrs:{id:"validate-it-the-goodtables-way-by-evelyn-night-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#validate-it-the-goodtables-way-by-evelyn-night-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validate it the GoodTables way! By Evelyn Night"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Errors may sometimes occur while describing data in a tabular format and these could be in the structure; such as missing headers and duplicated rows, or in the content for instance assigning the wrong character to a string. Some of these errors could be easily spotted by naked eyes and fixed during the data curation process while others may just go unnoticed and later impede some downstream analytical workflows. GoodTables are handy in flagging down common errors that come with tabular data handling as it recognises these discrepancies fast and efficiently to enable users debug their data easily. ”")]),e._v(" "),t("h3",{attrs:{id:"using-the-frictionless-framework-for-data-validation-by-katerina-drakoulaki-cohort-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-frictionless-framework-for-data-validation-by-katerina-drakoulaki-cohort-2"}},[e._v("#")]),e._v(" "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-goodtables-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Using the frictionless framework for data validation by Katerina Drakoulaki"),t("OutboundLink")],1),e._v(" (Cohort 2)")]),e._v(" "),t("p",[e._v("“Thus, similar to what the data package creator and "),t("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),t("OutboundLink")],1),e._v(" does, frictionless detects your variables and their names, and infers the type of data. However, it detected some of my variables as strings, when they are in fact integers. Of course, goodtables did not detect this, as my data were generally -in terms of formatting- valid. Not inferring the right type of data can be a problem both for future me, but also for other people looking at my data.”")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/12.d9fb47fc.js b/assets/js/12.83daa0b2.js similarity index 99% rename from assets/js/12.d9fb47fc.js rename to assets/js/12.83daa0b2.js index 48b4791c1..c5e7df76c 100644 --- a/assets/js/12.d9fb47fc.js +++ b/assets/js/12.83daa0b2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{452:function(t,a,e){t.exports=e.p+"assets/img/dp-creator.b5d3af77.png"},453:function(t,a,e){t.exports=e.p+"assets/img/dp-creator-filled.325fa9a7.png"},454:function(t,a,e){t.exports=e.p+"assets/img/try-goodtables.13d08c7b.png"},455:function(t,a){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApkAAADICAMAAACUPAobAAACjlBMVEX////u7u7MzMzl5eXg4ODq6uqqqqpERET19fXy8vL//v7x8fHw8PD09PT9/Pz9HA0UFBT+/f0aGhoXFxfy8fA2Njb5+flgYGAsLCzs7OxXV1f6+vr4+Pjp6elVVVXn5+fr6+tHR0etra0iIiIeHh79IBA5OTlQUFAyMjIvLy80NDQxMTH+OyMREREQEBA9PT3+Qyn+PSX9GAr7+vonJyf9LBnNzc3+bVdeXl7+XkT+QCfR0dHkVDz+TDDPz8+GhYT+RStRUVHe3t4gICDY2NjKysrT09NZWVnc3NxcXFxjY2NMTEz7+/vCwsLa2trW1tYlJSVJSUmwsLCQkJD9IxKLi4uTk5NxcXFPT08qKir+OCH9KBa5ubn9JRTIyMiEhIR4eHhFRUWIiIj+NR/j4+O9vb2goKD9MBykpKSWlpZ0dHRlZWX+Mx3ExMSGhobHx8fk5OSdnZ17e3tra2v39/dnZ2dtbW2zs7OBgYFubm63tra1tbV+fn6/v7+np6eYmJhpaWmNjY3m5uZ3d3fDLBr+9PPd3d2ZmZl9fX1mZmb45OKysrK7u7v9NiX77ez20c6srKztl492dnb8ZFU7Ozv9Ry7uNSDX19fxX0//+fn/4t/uv7v5gXJAQEDvRS8AAADv2NT/19T9w73yV0b+UzvbLx33albzTjz1SDfnMh7i4uLyraXnq6Xsg3nPXFH4Qi3nQizmOyb1Mx3OLhv22dbij4fhWEroTTbrKBi+KBbTIBL23dvinZbkdGbYbWTsaFf8ZE3MTD7DNynjLRv3KRf4s63+q6T8kYjziH3gfHH8dmj8VUPUNCPjzszfycbYs7DFraqzo6D1p5vMioD9W0/9TkD5VD39RjjxIhP1GAq7ZrOuAAATpUlEQVR42uzc2VNSURzA8d+PQqppGV9iThMXaqa3HqoZ6JatTkjQUJOCNqLlaKKVW1aYllkmlhSaOZDbOFqm2Wr7vu/7vv03HQguNNVUejVrfp8H77mHnz59h+UCwhAwAgn51kYYAkbEGxSERDPEj4C/b2lC9XBColUnVMPfZxiu1SjJP0/Tf9Kf0g6fB3+fQsuQ/OtY+5vWW51z+67zVuub9nAJTKuAv0+hQfKPY8pW36m2i3P642LbKV+rMtSmZkiUqUTyb2PtH9ouNnZ1zeyPrq7Gi20fQnebSiqT9B875us91DCrc65vQd/55nbOajjU6zvGqEwiD9bu622c5ZvWf75Zjb2+dkZlElmwrtOHOmeHVQWd9c/uk85Dp7sGvszlqqBF41ULYaRqApX5f2Lt/u7O6RIPcLHnTk6d3iedF/3tbODLFC1c/B+UaRTxD8SZ8FeWCeVIBhRrPf10aoQHmpub3VDbNrVvnp5uHYQyiyBg1IgRfSkzpUyGMofvSkAykBg70jY1NcIDjampviboSj1ztqrqcGrqmctnD1dV+XuCJ6l8edbPD5d7UlPP8h+hoYjpbUcYG6QyeZVfyzyascK8ZiJAhmqLXGWSv43p/KeyovAys7LOXIWGvNstbs+1Z1ndUHe+9uqNGx738Z6sZ8c97rqT/qz78DgrrwWehIeiHPHrBrvMMQuXb61RFfyszHk7zRklIj9mmNX2YbhWECrCa2Pp3lJ+lG7DpZvNmxKDZe4R46TdZcXi1jQX4uodFnVyJQbohEVY5jKVWhEXbxa3O3V8J263ef8yJPJgyp7peVE8cPLy5duxTVNP1zYd7IDjZ7oB3M3QNKojFq7766D5YCxcyHsCLXl+d9P08FBexKke5cCXGWCXytynqhjNBJUSUDvi+zJXi3bjZLOIuGGVMduSi7qUEhZeG80uq3VDgXSbcrtdsU0w8jKzzSulXW1NkiFG7UJWvMpoLc0Ml7lMyFUkiUzn2qzYa3HynYx8RUoBErnKvJuVE8UDAbU3c07AtTt3aqGtG8YuyKuFRzn1UH8TznlzWqElx+t2+y/AQWkoJ8J7dxDKVNfU1DilMu2qIMOPn2fGbOLHXSIqc6sRk5ICj+bS2igUIiqE6vD5XosGMXlPnKnQlI3SVFmNEnGHC+eZtXzaxEJllpuKcFia1moehlii5jsliJNTkMhWpj6aB5o7miH2vP4YBDV0wzm9vg4O6U9A/SOo1+u94NHr78OF8/BEGtJH5PAyB/nRPFPlNHDsx2Um2xGxXETUFMZkmoJlSmujwGeYuTB87tyKAXGC2rwNpan18/k60YVlglqtFoXqUJnDUtTJVoYx+xHxgLBaJyQgplGZ8pXZe++bMnmD+ga4yqOrb2hobDx1BOoCZXaHynToe6BWr58J9S1jvdKQPuJe76CXmatyAqzMHvnjR/M1oTKL1qbkFiYHy5TWxgksUGZ++Ny5OVRm2mTzcGlqV8HXMku2Lw5QhspEVphsKY0PlrlIGM53qEwZMd31e44ovEyHwwu1jodw/sqVkze8vEyHg5fp4GU2wLmqK4/hoMOR4z7XxA/hIUfEvceD/goIl0yyF6vWxf74FdDkTfy4XsRsUYOYGSxTWhsFBaJBWBo+L7Moecq5cSbUlSZLU3tqdIhJLt5xPKIxiYXKzI9B1FhKrOYixDI1ozLlxdjzS+lReJnp6V6AS1530/EW6HDwMtPT6+BIOi+TH6+2xMI7PncfoJUPhobSIy49H/yrRktTlizMRPhxmUWiXZFoEdEqlBRWTMiIx7XO1eG1USjNt7pWSbdp1+0wJE7I52VivhAX3q20JBkS15UiW1tsLN9QgRhTEnyeOSFxXqLJoNuwWZFtcSKVKTOmuWCL0gxPbbZ0N8y0vT/orn3gtX2EDputAz7aWuGhLetBs7vunY2bCbFefggNRbmgYUPsfXN+1WhnoYisQly3xrAuEfeJ68Nro5i2QbSvjty2bLd5+9erRriqWNqN2ykWpBUjxmeqLRUaxP0FgQ6Zs8bk2hO40iRucuqoTLkx3YtLU+Rz6YVuqJX5nT9907Laiojb7BhNyTskA4tpXn4aJ5dPLzX/0meNfq/MpRP2xK+0WDGKLltYjGRgMaZ5dVimMA+/0rD/r0zMLjVtj2EYZaWlgr5kNOAYqyy7/XlG/30+WVbJ6JPDRM40ja/fXr95a1bf3bp5/e1rYyWjb1sQWdPUVSaUp03uj7TyhEodY0hlEjkxHqcyQNcHod9kgS6HUJnztEj+A+wreX5XOxT+E0LRIrrTJN/SLKqEIaBynoKQaHFaIIQQQgghhBBCCCGEEEIIIYQQQgghhBBCyBf27u8nbSiKA/jtxJ4LapO+lEgLHbz4HzQkJCw1QoXKCDVIHwiIUaMSdSD4Y1OnW7K5uIdlL/sf9lfuUrg6YcvGIstg55PYY869t8T0a0pJaBFCCCGEEEIIITS+WjlHnADCQ/qXQ42gcda6TbfIBBCFPk9fKQSNscoSmQii0G/zX7gFCvpjtxNy0hOFAScEjTGRTAZRGDApf9p/alIOHyZz0kzK4cNkTppJOXyYzL+o9f7KPtpWya8oYP6sj8lEj28+C2ACtP1/kswg6EMnk+62f+M/IXTLNvNWc4X8DIVp8r20S37Icsj3kiYmczwU4UonU3XYJb8QoPSHyWT9YZIZjscdI2a1/b9Opj9b0ggm8z81DbU3rCxDza9DsBJcnr9xSyewRkilXTDPw4R1X8bd6xXv2X0idDh87AoA8p0+8a9a9nGK3M3mT/cbTGa1Pce2Qmb3l8lsnbGp/1oy5zsqHYdv5j2YzNFIwZVXM5DXIWLC8zac7UVZMvVC9HMWzokO0VoW4JWXzMNqtQlQ5mOpCDiznb58DPH1GiTuZv80mW/A8OpWdC6dzWXNAxY+/4ZprraIBMt79vEmT6bUjAvkvhluupltiVxtExKvE9I4ZsnkK8nzM7tUZsnc3HM/XwT5Hh8k03sg5jPKkpnLLlRnCPkYLGRTQycz3PFqg3n9IuzBZI7GCdx4tQRbOkuUvwLHcqDKkmmsfyI6WOwHFkkDrr1kEhI4gD2pN+adzb1+CrIKuYX1+9l9T5EWAz37Ucmrs5BP2MHKYfw8IO8186lsNbACZ0a6fhrwhJwi5FnlzZVgM52LbAcaewGhBv5AaZtCmK+ccZ+lY7Yb0ELFLzEzeLdHjxXr1vh5Yj+yE0jW6kkj+Dbgg5180ZUCwxF1z+XGRjGtd2EyR6MCR16NQ1rvRE+EbUIuWDKJb+cmwjo6ZAjJwUEvmTEICXzsPpmfoEHYL9b97D6i3BPLyF32xwQYspyG8JJNWS2sqPBSlp0PsieUyWRPWeXNQ9svy2VTNmxlv2RVtEJiDnS+MmYpsrzryuUQqxtBmfflDivmFW1nWpaLRdmAtCznYWq/MCP7t6g8HHHK86W44Uz1YDJHIww1nZXF7vtMQnZ4MhM1t+iw0Hnd/V4yWTf6hfCxgWRG7mf3EaWei4LqVT8YyZomSSsFo1wzTXMBdAWeS9LHD5InFHqRhpwk8aZ4zJo+EGgh3Xj9rJGwNT/ofOXqMzaYc6XGDatOUOJ9qcOKSZ6WcXlaKEpGVGWvaldm2uZqRZWGJG52OdfvNnswmSNyAGdPid6G1W6qLqCtyucsmbtwSXL9yQyb3rtHPsaSOXV/Nj+Bz3ezB87mas8ypL26D9Msmaqq2JVXmakO2oJFVf1YVz2hmKquRQSVN8Uj1vTBU/XtZenCKV021RmY4ivXqmww56q756w6QZX31Q7rk1eE9oft1HVRfRJlr6oVDFVJFSNBXR2O6OtaSvk4TOaITMcBTIC60E2VEoJ4FlgyL8G8WYDIw2RWwT44ONjiY6QNG9OdvnzEr4D47P4rIKVHe3s2w4qQPVAMSChKGr4mo7qiGEWNwqKilOuKJxRTlFmrqPDmvi0oyktTUy7f2uws/lZUZuEFXylaVFFeu8pJpxbjCu8rHZbolYuFOUU5LSopSLKxml5h7bnIiTIccXEAJnMU+CffVw2NdFNFfCX76pIlkzbtD0YIlh4kswkdr/kY2TL5p0bXln1skJ8nU+MWQ9nYoWjFpzQDspX9eFNrXZWMi8xaJ5maVq5rnlCMbXKQ4k0aX09uRRqalq9lNLpQe64JsMlXzrvVpBNxNcHcSMdCwbs9eqy1JPPiEE5Sa9EzPWUHD3OZZ1ou6qRj0YQ2HHF5ACbz75jN+wgpwzZ5XCK9E77O2u1dgdIn7sv4wmmY0hfnZmRthvphmdJynXoiMcqcZp7ypm/dtd77KZ0zq5Suhyidh698JU0c2UeHLqX5I7dZPqO877GgY5uuuZHVZChWqZ/EzaJAaSNSiDt0SOLzAZjMv8NXi17uRGpLI0hmv5RLH9nXHNvsVOnoiEsDMJl/SeXYdksp8sjEuUEpd+6RvYs6m5XIxdzoiPkBmMyxJvoHVVz/YysHC5mdGf/oiOl+mMzxJvpnJoKY6IfX5uPtVpidCGKyT2Iev6E21ipLrVlhAojGA8klmk8RNMY0Jz0h3+t9iCZO8E4I441Oxt1j+jn7E3HrEYQQQgghhBBCCCGEEEIIIYQQQgh9Y+/+XpMK4ziOf2zVV08lCJHMxVN20x8ghBA4JpubP4eNrV3ISklJw5VtLhe2MiEXeSHd7LL7/sqO52hhY2O76Zzz9HnBpudSvm88z4N6DhERERERERERERER0WV9TlzRyu2J+9dAXvZzTbNfv8amCnMgD0vkoJffYS4+BnnYFWgmFrttWVzU7qX9X7QbH8vUhHbjY5ma0G58LFMT2o2PZWpCu/GxTEfVZAPAsqh9WZq5A39S9v4cBCQyfmSZ9M+sSRrAkWzcuVCZYbnHMulfMFZlDmjII8Pvx5T53CpzemCVaT5esMxnSqnI0zwsb5RX58oynVWXb7hb3M6N40NiL6sq81aIZpktFX4P62D690lE1t/KA6Aipend/U6X2VtbWx+oE4zdrL3AXxp5eEEsNvgxxjKdkZAurkjFCs+XjXbb0piUWc4eliU/U+aKkic3h9KHoaK3zi6zBcA4fIkJz5Z5e5zmgGU6I7i0nRtI0w5PPgVyu89CdpmyjKoczJRpnc1vFaP+pBxbd5E+u0z0W0GV/H49qO7t1gFs1pE8Toc3/OgrVUNgKxMeuPsrIGaZZpoDns2dUpFUO7tvv2duS7kxsp8nJQ6EokXjVJnoSPO6DM9ZZw6CQX9JvQ6q/vWrZpnVVyHcTT/GQeVkJTNCsPEhZHQqy4mnPbiZtc4ccJ3pmKZsSAd2eDdqYZH0gl1mBjCK0dDpMvPS6xdvnbsDMrWMoBoCZpmBSAE7mWBuNA/U69bZ/Ev6DlBYDcHFuANy2H6xLEO7zPxmE8m0pCbrzDkk5BX+KnMOuJtVxS6ss/mZO6AvgXGUSatMdI6w1QIWUt96q3aZeRU2qXm4GMt0WlfKAUzWmdnOsRR9dpkS2d2W0myZbalcA3ZFqsD5OyBYUdr/So1cvAB/vzFKDewyq3vzY67+SifLdFpJ+oAdXqmdzR4+wuRsvvkw/cCYLbO6JOvAjhT9lynTp4Z7BnbCC0DPLnM54gNOPhpwMZbpPQXpwHaxMvE2fAQkVDVVixz78P0oYDzvnqwc1OBmLNNzRnFpXq7Md+oFYNTiX1uFdgnv4y/h64UztQW4Gcv0nIPIVoifm5NXaDc+lqkJ7cbHMjWh3fhYpia0G9/vMre0e2n/l4S7d9qXF6suWurrvBKCp73R7eoxU/7CZ5CX6XbFranH90BERERERERERES/2KVjlYahMAzDBxwCGQoOwbiUlkho7NAlQ1c5Q4V0yHpG78B7ELwA6VV4ldZByFia00WeB374+eYXAAAAAAAAAID/7I5sHu/IJgAAAAAAAAAAAAAAwBXK2QJkV66+ht0sw8dKm+RWvu/aYj1L0e6+A+R1v2wP+4dZ9od2GSCrclEth1M7y2l4qQJkVR6362q29SZA5jK7tpqt7QLkLvM5A2WSvcx6k0EdIHeZ2wyUSfYyUzdRN013jRQgc5l9PfEWFvUlmpjqqT7ALcssLizzMxTK5JbK45gmzmWm/imOMY7na/7+dNbEGPv0u/QxvoZTnybGwE87ddPSRhDHcfwXG9i6NEt2F6k1D63MYFVIvCxLYSGHjtINbrYjQhovaQMGkpaWYhQURMWD+AIET/teHR8OcxIhs/Hy/9yG+R2//InhMlmgyeAEy2jtfojf/yi+G8ketv7Vvp7KIFgb7c/PtaVaxF/iFEA90DAQkn+ZKO2jYqcuJj1US2EFJ4EMUey4qKvFpwJOazheoDJJjuxESM0GHDlAshB8xE85Rncb9racIJJtbO7JawzVAgerezE2pE6AEMNlcqa5gcMsfGcswg67xngHm4zJ5JAdo8vYGt6oxaXaxbhhOg5C8i8zui9z8FSmYKLyVpW5K9giamoRU5kkf3biCY0qU2SIhIhgiQN0l+Fm3h+Eoo1b4f1GRy1StUuxwoXGAyGmy+SaFTg8Q4vzFiz+WOZ8v4ILLkJcDV3U1SJVuwhn61xDZZJZlBmp9B7KHA+wdV4o/lI/i6P/pblv94tYvSYF9KhMkiM78b1nWOh7L+GDkFmWmVGZ5HXYSdl/hoW+/xJlEDLLMhUqk7wGO2mUDWiAENM30wS6mcR4mavNxtSa6yDEKNvplJtT80MQYpZb/Xux9HkqS0fD6h2MR7S77s5NUgAAAABJRU5ErkJggg=="},456:function(t,a,e){t.exports=e.p+"assets/img/datahub-dataset.aa0e87ca.png"},591:function(t,a,e){"use strict";e.r(a);var o=e(29),r=Object(o.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[t._v("In this section, we will walk through the process of publishing, using a dataset of the periodic table of elements as an example. We will define its metadata by creating a data package, describe the structure of the CSV using a Table Schema, validate it on Goodtables, and finally publish to a public CKAN instance. Let’s start.")]),t._v(" "),o("p",[t._v("First, let’s look at the data. It is available as a CSV file on "),o("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("this link"),o("OutboundLink")],1),t._v(". The first five rows look like:")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("atomic number")]),t._v(" "),o("th",[t._v("symbol")]),t._v(" "),o("th",[t._v("name")]),t._v(" "),o("th",[t._v("atomic mass")]),t._v(" "),o("th",[t._v("metal or nonmetal?")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("1")]),t._v(" "),o("td",[t._v("H")]),t._v(" "),o("td",[t._v("Hydrogen")]),t._v(" "),o("td",[t._v("1.00794")]),t._v(" "),o("td",[t._v("nonmetal")])]),t._v(" "),o("tr",[o("td",[t._v("2")]),t._v(" "),o("td",[t._v("He")]),t._v(" "),o("td",[t._v("Helium")]),t._v(" "),o("td",[t._v("4.002602")]),t._v(" "),o("td",[t._v("noble gas")])]),t._v(" "),o("tr",[o("td",[t._v("3")]),t._v(" "),o("td",[t._v("Li")]),t._v(" "),o("td",[t._v("Lithium")]),t._v(" "),o("td",[t._v("6.941")]),t._v(" "),o("td",[t._v("alkali metal")])]),t._v(" "),o("tr",[o("td",[t._v("4")]),t._v(" "),o("td",[t._v("Be")]),t._v(" "),o("td",[t._v("Beryllium")]),t._v(" "),o("td",[t._v("9.012182")]),t._v(" "),o("td",[t._v("alkaline earth metal")])]),t._v(" "),o("tr",[o("td",[t._v("5")]),t._v(" "),o("td",[t._v("B")]),t._v(" "),o("td",[t._v("Boron")]),t._v(" "),o("td",[t._v("10.811")]),t._v(" "),o("td",[t._v("metalloid")])])])]),t._v(" "),o("p",[t._v("As we can see, there are some numeric fields, both integers (atomic number) and floating point (atomic mass), and others are textual with strings. Our first objective is to describe the metadata by creating a Data Package, and its contents by creating a Table Schema.")]),t._v(" "),o("h2",{attrs:{id:"step-1-package-our-data-as-a-data-package"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-1-package-our-data-as-a-data-package"}},[t._v("#")]),t._v(" Step 1. Package our data as a Data Package")]),t._v(" "),o("p",[t._v("The easiest way to create a data package is using the "),o("a",{attrs:{href:"https://create.frictionlessdata.io/",title:"Data Package Creator",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package Creator"),o("OutboundLink")],1),t._v(". It provides a graphical interface to describe the data package’s metadata, add resources, and define the schema for tabular resources. This is what you should see when you first open it:")]),t._v(" "),o("p",[o("img",{attrs:{src:e(452),alt:"Data Package Creator"}}),o("br"),t._v(" "),o("em",[t._v("Data Package Creator")])]),t._v(" "),o("p",[t._v("The left side bar contains the metadata for the Data Package as a whole, and the main part on the right contains the metadata for each specific resource.")]),t._v(" "),o("p",[t._v("Let’s add our CSV resource. On the main section of the page, fill the inputs with:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Name")]),t._v(": periodic-table")]),t._v(" "),o("li",[o("strong",[t._v("Path")]),t._v(": "),o("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv"),o("OutboundLink")],1)])]),t._v(" "),o("p",[t._v("Resource and data package names must be unique, lowercase, can contain only letters, numbers, and the characters “.”, “-” and “_”.")]),t._v(" "),o("p",[t._v("And click on the "),o("em",[t._v("Load")]),t._v(" button. After a few seconds, a new box should appear with the text “Add all inferred fields (data has 5 extra column(s))”. Click on it, and the fields will be created, with their data types and formats inferred from the data. This saves us time, as we don’t need to start from scratch.")]),t._v(" "),o("p",[t._v("The Data Package Creator got almost all data types correctly, except the {atomic mass} column. It inferred the column as having integer values, but as we can see from the data, the numbers aren’t whole, they have floating points. Just change the type to "),o("strong",[t._v("number")]),t._v(", and that’s it.")]),t._v(" "),o("p",[t._v("You can view a sample of the data in each column by hovering the mouse below its name.")]),t._v(" "),o("p",[t._v("Usually, we would now add titles and descriptions to each field. However, as this is a simple dataset, the field names should be enough. In the end, the fields are:")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Data type")]),t._v(" "),o("th",[t._v("Data format")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("atomic number")]),t._v(" "),o("td",[t._v("integer")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("symbol")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("name")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("atomic mass")]),t._v(" "),o("td",[t._v("number")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("metal or nonmetal?")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])])])]),t._v(" "),o("p",[t._v("We can add more information about this resource by clicking on the gear icon to the left of the “Load” button. Add the following information:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Title")]),t._v(": Periodic table")]),t._v(" "),o("li",[o("strong",[t._v("Profile")]),t._v(": Tabular Data Resource")]),t._v(" "),o("li",[o("strong",[t._v("Format")]),t._v(": csv")]),t._v(" "),o("li",[o("strong",[t._v("Encoding")]),t._v(": (blank)")]),t._v(" "),o("li",[o("strong",[t._v("Description")]),t._v(": (blank)")])]),t._v(" "),o("p",[t._v("After this, we’re only missing metadata for the data package as a whole, available on the left side bar. Add:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Name")]),t._v(": periodic-table")]),t._v(" "),o("li",[o("strong",[t._v("Title")]),t._v(": Periodic table")]),t._v(" "),o("li",[o("strong",[t._v("Profile")]),t._v(": Tabular Data Package")]),t._v(" "),o("li",[o("strong",[t._v("Description")]),t._v(": Periodic table of chemical elements")]),t._v(" "),o("li",[o("strong",[t._v("Home Page")]),t._v(": "),o("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/tree/master/periodic-table",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/example-data-packages/tree/master/periodic-table"),o("OutboundLink")],1)]),t._v(" "),o("li",[o("strong",[t._v("Version")]),t._v(": 1.0.0")]),t._v(" "),o("li",[o("strong",[t._v("License")]),t._v(": CC0-1.0")]),t._v(" "),o("li",[o("strong",[t._v("Author")]),t._v(": (blank)")])]),t._v(" "),o("p",[o("img",{attrs:{src:e(453),alt:""}})]),t._v(" "),o("p",[t._v("Let’s validate the data package, to ensure we haven’t missed anything. Just click on the "),o("em",[t._v("Validate")]),t._v(" button on the bottom left, and you should see a green message “Data package is valid!”. This means that the data package is valid, but not necessarily its contents (we’ll check them in the next step).")]),t._v(" "),o("p",[t._v("Save the data package by clicking on the "),o("em",[t._v("Download")]),t._v(" button. This will download a “datapackage.json” file that contains everything we added here. Our next step is to use it to validate the data.")]),t._v(" "),o("h2",{attrs:{id:"step-2-validate-our-data-package-and-its-contents"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-2-validate-our-data-package-and-its-contents"}},[t._v("#")]),t._v(" Step 2. Validate our data package and its contents")]),t._v(" "),o("p",[t._v("We now have a data package with our CSV file, including with a table schema describing the contents and types of its columns. Our final step before publishing is validating the data, so we can avoid publishing data with errors. To do so, we’ll use goodtables.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Goodtables"),o("OutboundLink")],1),t._v(" is a tabular data validator that allows you to automatically check for errors such as blank headers, duplicate rows, data with the wrong type (e.g. should be a number but is a date), and others. As it supports data packages, we can simply load the one we created in the previous step. Let’s do it.")]),t._v(" "),o("ol",[o("li",[t._v("Go to "),o("a",{attrs:{href:"https://try.goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://try.goodtables.io"),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("On the "),o("em",[t._v("Source")]),t._v(" input, click on the "),o("em",[t._v("Upload File")]),t._v(" link.")]),t._v(" "),o("li",[t._v("Click on "),o("em",[t._v("Browse…")]),t._v(" and select the "),o("em",[t._v("datapackage.json")]),t._v(" file you downloaded in the previous step")]),t._v(" "),o("li",[t._v("Click on "),o("em",[t._v("Validate")])])]),t._v(" "),o("p",[t._v("After a few seconds, you should see:")]),t._v(" "),o("p",[o("img",{attrs:{src:e(454),alt:"try.goodtables"}}),o("br"),t._v(" "),o("em",[t._v("try.goodtables")])]),t._v(" "),o("p",[t._v("This means that:")]),t._v(" "),o("ul",[o("li",[t._v("The data package is valid")]),t._v(" "),o("li",[t._v("The CSV file is valid")]),t._v(" "),o("li",[t._v("There are no blank rows or headers, or duplicate rows")]),t._v(" "),o("li",[t._v("The data is valid according to the table schema we created (numbers are numbers, and so on)")])]),t._v(" "),o("p",[t._v("Although it can’t tell you if your data is correct, for example if the Aluminium"),o("br"),t._v("\natomic mass is 26.9815386, it does ensure you that all atomic mass values are"),o("br"),t._v("\nnumbers, among the other validations.")]),t._v(" "),o("p",[t._v("Now that we’ve created a data package, described our data with a table schema,"),o("br"),t._v("\nand validated it, we can finally publish it.")]),t._v(" "),o("h2",{attrs:{id:"step-3-publish-the-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-3-publish-the-data"}},[t._v("#")]),t._v(" Step 3. Publish the data")]),t._v(" "),o("p",[t._v("Our final step is to publish the dataset. The specifics instructions will vary depend on where you’re publishing to. In this example, we’ll see how to publish to a public "),o("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(" instance, the "),o("a",{attrs:{href:"https://old.datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Datahub"),o("OutboundLink")],1),t._v(". If you want to use it and don’t have an account yet, you can request one via "),o("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[t._v("our community page"),o("OutboundLink")],1),t._v(". "),o("em",[t._v("(Note: this example is now out of date. See the "),o("a",{attrs:{href:"https://docs.ckan.org/en/2.9/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN docs"),o("OutboundLink")],1),t._v(" for more updated information")]),t._v("). Let’s start.")]),t._v(" "),o("p",[t._v("After you’re logged in, go to the "),o("a",{attrs:{href:"https://old.datahub.io/dataset",target:"_blank",rel:"noopener noreferrer"}},[t._v("datasets list page"),o("OutboundLink")],1),t._v(" and click on the "),o("code",[t._v("Import Data Package")]),t._v(" button. On this form, click on “Upload”, select the "),o("code",[t._v("datapackage.json")]),t._v(" file we created in the previous step, and choose your organisation. We’ll keep the visibility as private for now, so we can review the dataset before it’s made public.")]),t._v(" "),o("p",[o("img",{attrs:{src:e(455),alt:"Importing a data packate to the DataHub"}}),o("br"),t._v(" "),o("em",[t._v("Importing a data packate to the DataHub")])]),t._v(" "),o("p",[t._v("If you don’t see the “Import Data Package” button in your CKAN instance, install the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-datapackager"),o("OutboundLink")],1),t._v(" extension to add support for importing and exporting your datasets as data packages.")]),t._v(" "),o("p",[t._v("You will be redirected to the newly created dataset on CKAN, with its metadata and resource extracted from the data package. Double check if everything seems fine, and when you’re finished, click on the “Manage” button and change the visibility to “Public”.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://datahub.ckan.io/dataset/period-table-9896953431",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:e(456),alt:"Data package in CKAN"}}),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("That’s it! CKAN supports data packages via the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-datapackager"),o("OutboundLink")],1),t._v(" extension, so importing (and exporting) data packages is trivial, as all the work on describing the dataset was done while creating the data package.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{452:function(t,a,e){t.exports=e.p+"assets/img/dp-creator.b5d3af77.png"},453:function(t,a,e){t.exports=e.p+"assets/img/dp-creator-filled.325fa9a7.png"},454:function(t,a,e){t.exports=e.p+"assets/img/try-goodtables.13d08c7b.png"},455:function(t,a){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApkAAADICAMAAACUPAobAAACjlBMVEX////u7u7MzMzl5eXg4ODq6uqqqqpERET19fXy8vL//v7x8fHw8PD09PT9/Pz9HA0UFBT+/f0aGhoXFxfy8fA2Njb5+flgYGAsLCzs7OxXV1f6+vr4+Pjp6elVVVXn5+fr6+tHR0etra0iIiIeHh79IBA5OTlQUFAyMjIvLy80NDQxMTH+OyMREREQEBA9PT3+Qyn+PSX9GAr7+vonJyf9LBnNzc3+bVdeXl7+XkT+QCfR0dHkVDz+TDDPz8+GhYT+RStRUVHe3t4gICDY2NjKysrT09NZWVnc3NxcXFxjY2NMTEz7+/vCwsLa2trW1tYlJSVJSUmwsLCQkJD9IxKLi4uTk5NxcXFPT08qKir+OCH9KBa5ubn9JRTIyMiEhIR4eHhFRUWIiIj+NR/j4+O9vb2goKD9MBykpKSWlpZ0dHRlZWX+Mx3ExMSGhobHx8fk5OSdnZ17e3tra2v39/dnZ2dtbW2zs7OBgYFubm63tra1tbV+fn6/v7+np6eYmJhpaWmNjY3m5uZ3d3fDLBr+9PPd3d2ZmZl9fX1mZmb45OKysrK7u7v9NiX77ez20c6srKztl492dnb8ZFU7Ozv9Ry7uNSDX19fxX0//+fn/4t/uv7v5gXJAQEDvRS8AAADv2NT/19T9w73yV0b+UzvbLx33albzTjz1SDfnMh7i4uLyraXnq6Xsg3nPXFH4Qi3nQizmOyb1Mx3OLhv22dbij4fhWEroTTbrKBi+KBbTIBL23dvinZbkdGbYbWTsaFf8ZE3MTD7DNynjLRv3KRf4s63+q6T8kYjziH3gfHH8dmj8VUPUNCPjzszfycbYs7DFraqzo6D1p5vMioD9W0/9TkD5VD39RjjxIhP1GAq7ZrOuAAATpUlEQVR42uzc2VNSURzA8d+PQqppGV9iThMXaqa3HqoZ6JatTkjQUJOCNqLlaKKVW1aYllkmlhSaOZDbOFqm2Wr7vu/7vv03HQguNNVUejVrfp8H77mHnz59h+UCwhAwAgn51kYYAkbEGxSERDPEj4C/b2lC9XBColUnVMPfZxiu1SjJP0/Tf9Kf0g6fB3+fQsuQ/OtY+5vWW51z+67zVuub9nAJTKuAv0+hQfKPY8pW36m2i3P642LbKV+rMtSmZkiUqUTyb2PtH9ouNnZ1zeyPrq7Gi20fQnebSiqT9B875us91DCrc65vQd/55nbOajjU6zvGqEwiD9bu622c5ZvWf75Zjb2+dkZlElmwrtOHOmeHVQWd9c/uk85Dp7sGvszlqqBF41ULYaRqApX5f2Lt/u7O6RIPcLHnTk6d3iedF/3tbODLFC1c/B+UaRTxD8SZ8FeWCeVIBhRrPf10aoQHmpub3VDbNrVvnp5uHYQyiyBg1IgRfSkzpUyGMofvSkAykBg70jY1NcIDjampviboSj1ztqrqcGrqmctnD1dV+XuCJ6l8edbPD5d7UlPP8h+hoYjpbUcYG6QyeZVfyzyascK8ZiJAhmqLXGWSv43p/KeyovAys7LOXIWGvNstbs+1Z1ndUHe+9uqNGx738Z6sZ8c97rqT/qz78DgrrwWehIeiHPHrBrvMMQuXb61RFfyszHk7zRklIj9mmNX2YbhWECrCa2Pp3lJ+lG7DpZvNmxKDZe4R46TdZcXi1jQX4uodFnVyJQbohEVY5jKVWhEXbxa3O3V8J263ef8yJPJgyp7peVE8cPLy5duxTVNP1zYd7IDjZ7oB3M3QNKojFq7766D5YCxcyHsCLXl+d9P08FBexKke5cCXGWCXytynqhjNBJUSUDvi+zJXi3bjZLOIuGGVMduSi7qUEhZeG80uq3VDgXSbcrtdsU0w8jKzzSulXW1NkiFG7UJWvMpoLc0Ml7lMyFUkiUzn2qzYa3HynYx8RUoBErnKvJuVE8UDAbU3c07AtTt3aqGtG8YuyKuFRzn1UH8TznlzWqElx+t2+y/AQWkoJ8J7dxDKVNfU1DilMu2qIMOPn2fGbOLHXSIqc6sRk5ICj+bS2igUIiqE6vD5XosGMXlPnKnQlI3SVFmNEnGHC+eZtXzaxEJllpuKcFia1moehlii5jsliJNTkMhWpj6aB5o7miH2vP4YBDV0wzm9vg4O6U9A/SOo1+u94NHr78OF8/BEGtJH5PAyB/nRPFPlNHDsx2Um2xGxXETUFMZkmoJlSmujwGeYuTB87tyKAXGC2rwNpan18/k60YVlglqtFoXqUJnDUtTJVoYx+xHxgLBaJyQgplGZ8pXZe++bMnmD+ga4yqOrb2hobDx1BOoCZXaHynToe6BWr58J9S1jvdKQPuJe76CXmatyAqzMHvnjR/M1oTKL1qbkFiYHy5TWxgksUGZ++Ny5OVRm2mTzcGlqV8HXMku2Lw5QhspEVphsKY0PlrlIGM53qEwZMd31e44ovEyHwwu1jodw/sqVkze8vEyHg5fp4GU2wLmqK4/hoMOR4z7XxA/hIUfEvceD/goIl0yyF6vWxf74FdDkTfy4XsRsUYOYGSxTWhsFBaJBWBo+L7Moecq5cSbUlSZLU3tqdIhJLt5xPKIxiYXKzI9B1FhKrOYixDI1ozLlxdjzS+lReJnp6V6AS1530/EW6HDwMtPT6+BIOi+TH6+2xMI7PncfoJUPhobSIy49H/yrRktTlizMRPhxmUWiXZFoEdEqlBRWTMiIx7XO1eG1USjNt7pWSbdp1+0wJE7I52VivhAX3q20JBkS15UiW1tsLN9QgRhTEnyeOSFxXqLJoNuwWZFtcSKVKTOmuWCL0gxPbbZ0N8y0vT/orn3gtX2EDputAz7aWuGhLetBs7vunY2bCbFefggNRbmgYUPsfXN+1WhnoYisQly3xrAuEfeJ68Nro5i2QbSvjty2bLd5+9erRriqWNqN2ykWpBUjxmeqLRUaxP0FgQ6Zs8bk2hO40iRucuqoTLkx3YtLU+Rz6YVuqJX5nT9907Laiojb7BhNyTskA4tpXn4aJ5dPLzX/0meNfq/MpRP2xK+0WDGKLltYjGRgMaZ5dVimMA+/0rD/r0zMLjVtj2EYZaWlgr5kNOAYqyy7/XlG/30+WVbJ6JPDRM40ja/fXr95a1bf3bp5/e1rYyWjb1sQWdPUVSaUp03uj7TyhEodY0hlEjkxHqcyQNcHod9kgS6HUJnztEj+A+wreX5XOxT+E0LRIrrTJN/SLKqEIaBynoKQaHFaIIQQQgghhBBCCCGEEEIIIYQQQgghhBBCyBf27u8nbSiKA/jtxJ4LapO+lEgLHbz4HzQkJCw1QoXKCDVIHwiIUaMSdSD4Y1OnW7K5uIdlL/sf9lfuUrg6YcvGIstg55PYY869t8T0a0pJaBFCCCGEEEIIITS+WjlHnADCQ/qXQ42gcda6TbfIBBCFPk9fKQSNscoSmQii0G/zX7gFCvpjtxNy0hOFAScEjTGRTAZRGDApf9p/alIOHyZz0kzK4cNkTppJOXyYzL+o9f7KPtpWya8oYP6sj8lEj28+C2ACtP1/kswg6EMnk+62f+M/IXTLNvNWc4X8DIVp8r20S37Icsj3kiYmczwU4UonU3XYJb8QoPSHyWT9YZIZjscdI2a1/b9Opj9b0ggm8z81DbU3rCxDza9DsBJcnr9xSyewRkilXTDPw4R1X8bd6xXv2X0idDh87AoA8p0+8a9a9nGK3M3mT/cbTGa1Pce2Qmb3l8lsnbGp/1oy5zsqHYdv5j2YzNFIwZVXM5DXIWLC8zac7UVZMvVC9HMWzokO0VoW4JWXzMNqtQlQ5mOpCDiznb58DPH1GiTuZv80mW/A8OpWdC6dzWXNAxY+/4ZprraIBMt79vEmT6bUjAvkvhluupltiVxtExKvE9I4ZsnkK8nzM7tUZsnc3HM/XwT5Hh8k03sg5jPKkpnLLlRnCPkYLGRTQycz3PFqg3n9IuzBZI7GCdx4tQRbOkuUvwLHcqDKkmmsfyI6WOwHFkkDrr1kEhI4gD2pN+adzb1+CrIKuYX1+9l9T5EWAz37Ucmrs5BP2MHKYfw8IO8186lsNbACZ0a6fhrwhJwi5FnlzZVgM52LbAcaewGhBv5AaZtCmK+ccZ+lY7Yb0ELFLzEzeLdHjxXr1vh5Yj+yE0jW6kkj+Dbgg5180ZUCwxF1z+XGRjGtd2EyR6MCR16NQ1rvRE+EbUIuWDKJb+cmwjo6ZAjJwUEvmTEICXzsPpmfoEHYL9b97D6i3BPLyF32xwQYspyG8JJNWS2sqPBSlp0PsieUyWRPWeXNQ9svy2VTNmxlv2RVtEJiDnS+MmYpsrzryuUQqxtBmfflDivmFW1nWpaLRdmAtCznYWq/MCP7t6g8HHHK86W44Uz1YDJHIww1nZXF7vtMQnZ4MhM1t+iw0Hnd/V4yWTf6hfCxgWRG7mf3EaWei4LqVT8YyZomSSsFo1wzTXMBdAWeS9LHD5InFHqRhpwk8aZ4zJo+EGgh3Xj9rJGwNT/ofOXqMzaYc6XGDatOUOJ9qcOKSZ6WcXlaKEpGVGWvaldm2uZqRZWGJG52OdfvNnswmSNyAGdPid6G1W6qLqCtyucsmbtwSXL9yQyb3rtHPsaSOXV/Nj+Bz3ezB87mas8ypL26D9Msmaqq2JVXmakO2oJFVf1YVz2hmKquRQSVN8Uj1vTBU/XtZenCKV021RmY4ivXqmww56q756w6QZX31Q7rk1eE9oft1HVRfRJlr6oVDFVJFSNBXR2O6OtaSvk4TOaITMcBTIC60E2VEoJ4FlgyL8G8WYDIw2RWwT44ONjiY6QNG9OdvnzEr4D47P4rIKVHe3s2w4qQPVAMSChKGr4mo7qiGEWNwqKilOuKJxRTlFmrqPDmvi0oyktTUy7f2uws/lZUZuEFXylaVFFeu8pJpxbjCu8rHZbolYuFOUU5LSopSLKxml5h7bnIiTIccXEAJnMU+CffVw2NdFNFfCX76pIlkzbtD0YIlh4kswkdr/kY2TL5p0bXln1skJ8nU+MWQ9nYoWjFpzQDspX9eFNrXZWMi8xaJ5maVq5rnlCMbXKQ4k0aX09uRRqalq9lNLpQe64JsMlXzrvVpBNxNcHcSMdCwbs9eqy1JPPiEE5Sa9EzPWUHD3OZZ1ou6qRj0YQ2HHF5ACbz75jN+wgpwzZ5XCK9E77O2u1dgdIn7sv4wmmY0hfnZmRthvphmdJynXoiMcqcZp7ypm/dtd77KZ0zq5Suhyidh698JU0c2UeHLqX5I7dZPqO877GgY5uuuZHVZChWqZ/EzaJAaSNSiDt0SOLzAZjMv8NXi17uRGpLI0hmv5RLH9nXHNvsVOnoiEsDMJl/SeXYdksp8sjEuUEpd+6RvYs6m5XIxdzoiPkBmMyxJvoHVVz/YysHC5mdGf/oiOl+mMzxJvpnJoKY6IfX5uPtVpidCGKyT2Iev6E21ipLrVlhAojGA8klmk8RNMY0Jz0h3+t9iCZO8E4I441Oxt1j+jn7E3HrEYQQQgghhBBCCCGEEEIIIYQQQgh9Y+/+XpMK4ziOf2zVV08lCJHMxVN20x8ghBA4JpubP4eNrV3ISklJw5VtLhe2MiEXeSHd7LL7/sqO52hhY2O76Zzz9HnBpudSvm88z4N6DhERERERERERERER0WV9TlzRyu2J+9dAXvZzTbNfv8amCnMgD0vkoJffYS4+BnnYFWgmFrttWVzU7qX9X7QbH8vUhHbjY5ma0G58LFMT2o2PZWpCu/GxTEfVZAPAsqh9WZq5A39S9v4cBCQyfmSZ9M+sSRrAkWzcuVCZYbnHMulfMFZlDmjII8Pvx5T53CpzemCVaT5esMxnSqnI0zwsb5RX58oynVWXb7hb3M6N40NiL6sq81aIZpktFX4P62D690lE1t/KA6Aipend/U6X2VtbWx+oE4zdrL3AXxp5eEEsNvgxxjKdkZAurkjFCs+XjXbb0piUWc4eliU/U+aKkic3h9KHoaK3zi6zBcA4fIkJz5Z5e5zmgGU6I7i0nRtI0w5PPgVyu89CdpmyjKoczJRpnc1vFaP+pBxbd5E+u0z0W0GV/H49qO7t1gFs1pE8Toc3/OgrVUNgKxMeuPsrIGaZZpoDns2dUpFUO7tvv2duS7kxsp8nJQ6EokXjVJnoSPO6DM9ZZw6CQX9JvQ6q/vWrZpnVVyHcTT/GQeVkJTNCsPEhZHQqy4mnPbiZtc4ccJ3pmKZsSAd2eDdqYZH0gl1mBjCK0dDpMvPS6xdvnbsDMrWMoBoCZpmBSAE7mWBuNA/U69bZ/Ev6DlBYDcHFuANy2H6xLEO7zPxmE8m0pCbrzDkk5BX+KnMOuJtVxS6ss/mZO6AvgXGUSatMdI6w1QIWUt96q3aZeRU2qXm4GMt0WlfKAUzWmdnOsRR9dpkS2d2W0myZbalcA3ZFqsD5OyBYUdr/So1cvAB/vzFKDewyq3vzY67+SifLdFpJ+oAdXqmdzR4+wuRsvvkw/cCYLbO6JOvAjhT9lynTp4Z7BnbCC0DPLnM54gNOPhpwMZbpPQXpwHaxMvE2fAQkVDVVixz78P0oYDzvnqwc1OBmLNNzRnFpXq7Md+oFYNTiX1uFdgnv4y/h64UztQW4Gcv0nIPIVoifm5NXaDc+lqkJ7cbHMjWh3fhYpia0G9/vMre0e2n/l4S7d9qXF6suWurrvBKCp73R7eoxU/7CZ5CX6XbFranH90BERERERERERES/2KVjlYahMAzDBxwCGQoOwbiUlkho7NAlQ1c5Q4V0yHpG78B7ELwA6VV4ldZByFia00WeB374+eYXAAAAAAAAAID/7I5sHu/IJgAAAAAAAAAAAAAAwBXK2QJkV66+ht0sw8dKm+RWvu/aYj1L0e6+A+R1v2wP+4dZ9od2GSCrclEth1M7y2l4qQJkVR6362q29SZA5jK7tpqt7QLkLvM5A2WSvcx6k0EdIHeZ2wyUSfYyUzdRN013jRQgc5l9PfEWFvUlmpjqqT7ALcssLizzMxTK5JbK45gmzmWm/imOMY7na/7+dNbEGPv0u/QxvoZTnybGwE87ddPSRhDHcfwXG9i6NEt2F6k1D63MYFVIvCxLYSGHjtINbrYjQhovaQMGkpaWYhQURMWD+AIET/teHR8OcxIhs/Hy/9yG+R2//InhMlmgyeAEy2jtfojf/yi+G8ketv7Vvp7KIFgb7c/PtaVaxF/iFEA90DAQkn+ZKO2jYqcuJj1US2EFJ4EMUey4qKvFpwJOazheoDJJjuxESM0GHDlAshB8xE85Rncb9racIJJtbO7JawzVAgerezE2pE6AEMNlcqa5gcMsfGcswg67xngHm4zJ5JAdo8vYGt6oxaXaxbhhOg5C8i8zui9z8FSmYKLyVpW5K9giamoRU5kkf3biCY0qU2SIhIhgiQN0l+Fm3h+Eoo1b4f1GRy1StUuxwoXGAyGmy+SaFTg8Q4vzFiz+WOZ8v4ILLkJcDV3U1SJVuwhn61xDZZJZlBmp9B7KHA+wdV4o/lI/i6P/pblv94tYvSYF9KhMkiM78b1nWOh7L+GDkFmWmVGZ5HXYSdl/hoW+/xJlEDLLMhUqk7wGO2mUDWiAENM30wS6mcR4mavNxtSa6yDEKNvplJtT80MQYpZb/Xux9HkqS0fD6h2MR7S77s5NUgAAAABJRU5ErkJggg=="},456:function(t,a,e){t.exports=e.p+"assets/img/datahub-dataset.aa0e87ca.png"},593:function(t,a,e){"use strict";e.r(a);var o=e(29),r=Object(o.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[t._v("In this section, we will walk through the process of publishing, using a dataset of the periodic table of elements as an example. We will define its metadata by creating a data package, describe the structure of the CSV using a Table Schema, validate it on Goodtables, and finally publish to a public CKAN instance. Let’s start.")]),t._v(" "),o("p",[t._v("First, let’s look at the data. It is available as a CSV file on "),o("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("this link"),o("OutboundLink")],1),t._v(". The first five rows look like:")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("atomic number")]),t._v(" "),o("th",[t._v("symbol")]),t._v(" "),o("th",[t._v("name")]),t._v(" "),o("th",[t._v("atomic mass")]),t._v(" "),o("th",[t._v("metal or nonmetal?")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("1")]),t._v(" "),o("td",[t._v("H")]),t._v(" "),o("td",[t._v("Hydrogen")]),t._v(" "),o("td",[t._v("1.00794")]),t._v(" "),o("td",[t._v("nonmetal")])]),t._v(" "),o("tr",[o("td",[t._v("2")]),t._v(" "),o("td",[t._v("He")]),t._v(" "),o("td",[t._v("Helium")]),t._v(" "),o("td",[t._v("4.002602")]),t._v(" "),o("td",[t._v("noble gas")])]),t._v(" "),o("tr",[o("td",[t._v("3")]),t._v(" "),o("td",[t._v("Li")]),t._v(" "),o("td",[t._v("Lithium")]),t._v(" "),o("td",[t._v("6.941")]),t._v(" "),o("td",[t._v("alkali metal")])]),t._v(" "),o("tr",[o("td",[t._v("4")]),t._v(" "),o("td",[t._v("Be")]),t._v(" "),o("td",[t._v("Beryllium")]),t._v(" "),o("td",[t._v("9.012182")]),t._v(" "),o("td",[t._v("alkaline earth metal")])]),t._v(" "),o("tr",[o("td",[t._v("5")]),t._v(" "),o("td",[t._v("B")]),t._v(" "),o("td",[t._v("Boron")]),t._v(" "),o("td",[t._v("10.811")]),t._v(" "),o("td",[t._v("metalloid")])])])]),t._v(" "),o("p",[t._v("As we can see, there are some numeric fields, both integers (atomic number) and floating point (atomic mass), and others are textual with strings. Our first objective is to describe the metadata by creating a Data Package, and its contents by creating a Table Schema.")]),t._v(" "),o("h2",{attrs:{id:"step-1-package-our-data-as-a-data-package"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-1-package-our-data-as-a-data-package"}},[t._v("#")]),t._v(" Step 1. Package our data as a Data Package")]),t._v(" "),o("p",[t._v("The easiest way to create a data package is using the "),o("a",{attrs:{href:"https://create.frictionlessdata.io/",title:"Data Package Creator",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package Creator"),o("OutboundLink")],1),t._v(". It provides a graphical interface to describe the data package’s metadata, add resources, and define the schema for tabular resources. This is what you should see when you first open it:")]),t._v(" "),o("p",[o("img",{attrs:{src:e(452),alt:"Data Package Creator"}}),o("br"),t._v(" "),o("em",[t._v("Data Package Creator")])]),t._v(" "),o("p",[t._v("The left side bar contains the metadata for the Data Package as a whole, and the main part on the right contains the metadata for each specific resource.")]),t._v(" "),o("p",[t._v("Let’s add our CSV resource. On the main section of the page, fill the inputs with:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Name")]),t._v(": periodic-table")]),t._v(" "),o("li",[o("strong",[t._v("Path")]),t._v(": "),o("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://raw.githubusercontent.com/frictionlessdata/example-data-packages/d2b96aaed6ab12db41d73022a2988eeb292116e9/periodic-table/data.csv"),o("OutboundLink")],1)])]),t._v(" "),o("p",[t._v("Resource and data package names must be unique, lowercase, can contain only letters, numbers, and the characters “.”, “-” and “_”.")]),t._v(" "),o("p",[t._v("And click on the "),o("em",[t._v("Load")]),t._v(" button. After a few seconds, a new box should appear with the text “Add all inferred fields (data has 5 extra column(s))”. Click on it, and the fields will be created, with their data types and formats inferred from the data. This saves us time, as we don’t need to start from scratch.")]),t._v(" "),o("p",[t._v("The Data Package Creator got almost all data types correctly, except the {atomic mass} column. It inferred the column as having integer values, but as we can see from the data, the numbers aren’t whole, they have floating points. Just change the type to "),o("strong",[t._v("number")]),t._v(", and that’s it.")]),t._v(" "),o("p",[t._v("You can view a sample of the data in each column by hovering the mouse below its name.")]),t._v(" "),o("p",[t._v("Usually, we would now add titles and descriptions to each field. However, as this is a simple dataset, the field names should be enough. In the end, the fields are:")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Data type")]),t._v(" "),o("th",[t._v("Data format")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("atomic number")]),t._v(" "),o("td",[t._v("integer")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("symbol")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("name")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("atomic mass")]),t._v(" "),o("td",[t._v("number")]),t._v(" "),o("td",[t._v("default")])]),t._v(" "),o("tr",[o("td",[t._v("metal or nonmetal?")]),t._v(" "),o("td",[t._v("string")]),t._v(" "),o("td",[t._v("default")])])])]),t._v(" "),o("p",[t._v("We can add more information about this resource by clicking on the gear icon to the left of the “Load” button. Add the following information:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Title")]),t._v(": Periodic table")]),t._v(" "),o("li",[o("strong",[t._v("Profile")]),t._v(": Tabular Data Resource")]),t._v(" "),o("li",[o("strong",[t._v("Format")]),t._v(": csv")]),t._v(" "),o("li",[o("strong",[t._v("Encoding")]),t._v(": (blank)")]),t._v(" "),o("li",[o("strong",[t._v("Description")]),t._v(": (blank)")])]),t._v(" "),o("p",[t._v("After this, we’re only missing metadata for the data package as a whole, available on the left side bar. Add:")]),t._v(" "),o("ul",[o("li",[o("strong",[t._v("Name")]),t._v(": periodic-table")]),t._v(" "),o("li",[o("strong",[t._v("Title")]),t._v(": Periodic table")]),t._v(" "),o("li",[o("strong",[t._v("Profile")]),t._v(": Tabular Data Package")]),t._v(" "),o("li",[o("strong",[t._v("Description")]),t._v(": Periodic table of chemical elements")]),t._v(" "),o("li",[o("strong",[t._v("Home Page")]),t._v(": "),o("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/tree/master/periodic-table",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/example-data-packages/tree/master/periodic-table"),o("OutboundLink")],1)]),t._v(" "),o("li",[o("strong",[t._v("Version")]),t._v(": 1.0.0")]),t._v(" "),o("li",[o("strong",[t._v("License")]),t._v(": CC0-1.0")]),t._v(" "),o("li",[o("strong",[t._v("Author")]),t._v(": (blank)")])]),t._v(" "),o("p",[o("img",{attrs:{src:e(453),alt:""}})]),t._v(" "),o("p",[t._v("Let’s validate the data package, to ensure we haven’t missed anything. Just click on the "),o("em",[t._v("Validate")]),t._v(" button on the bottom left, and you should see a green message “Data package is valid!”. This means that the data package is valid, but not necessarily its contents (we’ll check them in the next step).")]),t._v(" "),o("p",[t._v("Save the data package by clicking on the "),o("em",[t._v("Download")]),t._v(" button. This will download a “datapackage.json” file that contains everything we added here. Our next step is to use it to validate the data.")]),t._v(" "),o("h2",{attrs:{id:"step-2-validate-our-data-package-and-its-contents"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-2-validate-our-data-package-and-its-contents"}},[t._v("#")]),t._v(" Step 2. Validate our data package and its contents")]),t._v(" "),o("p",[t._v("We now have a data package with our CSV file, including with a table schema describing the contents and types of its columns. Our final step before publishing is validating the data, so we can avoid publishing data with errors. To do so, we’ll use goodtables.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Goodtables"),o("OutboundLink")],1),t._v(" is a tabular data validator that allows you to automatically check for errors such as blank headers, duplicate rows, data with the wrong type (e.g. should be a number but is a date), and others. As it supports data packages, we can simply load the one we created in the previous step. Let’s do it.")]),t._v(" "),o("ol",[o("li",[t._v("Go to "),o("a",{attrs:{href:"https://try.goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://try.goodtables.io"),o("OutboundLink")],1)]),t._v(" "),o("li",[t._v("On the "),o("em",[t._v("Source")]),t._v(" input, click on the "),o("em",[t._v("Upload File")]),t._v(" link.")]),t._v(" "),o("li",[t._v("Click on "),o("em",[t._v("Browse…")]),t._v(" and select the "),o("em",[t._v("datapackage.json")]),t._v(" file you downloaded in the previous step")]),t._v(" "),o("li",[t._v("Click on "),o("em",[t._v("Validate")])])]),t._v(" "),o("p",[t._v("After a few seconds, you should see:")]),t._v(" "),o("p",[o("img",{attrs:{src:e(454),alt:"try.goodtables"}}),o("br"),t._v(" "),o("em",[t._v("try.goodtables")])]),t._v(" "),o("p",[t._v("This means that:")]),t._v(" "),o("ul",[o("li",[t._v("The data package is valid")]),t._v(" "),o("li",[t._v("The CSV file is valid")]),t._v(" "),o("li",[t._v("There are no blank rows or headers, or duplicate rows")]),t._v(" "),o("li",[t._v("The data is valid according to the table schema we created (numbers are numbers, and so on)")])]),t._v(" "),o("p",[t._v("Although it can’t tell you if your data is correct, for example if the Aluminium"),o("br"),t._v("\natomic mass is 26.9815386, it does ensure you that all atomic mass values are"),o("br"),t._v("\nnumbers, among the other validations.")]),t._v(" "),o("p",[t._v("Now that we’ve created a data package, described our data with a table schema,"),o("br"),t._v("\nand validated it, we can finally publish it.")]),t._v(" "),o("h2",{attrs:{id:"step-3-publish-the-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#step-3-publish-the-data"}},[t._v("#")]),t._v(" Step 3. Publish the data")]),t._v(" "),o("p",[t._v("Our final step is to publish the dataset. The specifics instructions will vary depend on where you’re publishing to. In this example, we’ll see how to publish to a public "),o("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(" instance, the "),o("a",{attrs:{href:"https://old.datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Datahub"),o("OutboundLink")],1),t._v(". If you want to use it and don’t have an account yet, you can request one via "),o("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[t._v("our community page"),o("OutboundLink")],1),t._v(". "),o("em",[t._v("(Note: this example is now out of date. See the "),o("a",{attrs:{href:"https://docs.ckan.org/en/2.9/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN docs"),o("OutboundLink")],1),t._v(" for more updated information")]),t._v("). Let’s start.")]),t._v(" "),o("p",[t._v("After you’re logged in, go to the "),o("a",{attrs:{href:"https://old.datahub.io/dataset",target:"_blank",rel:"noopener noreferrer"}},[t._v("datasets list page"),o("OutboundLink")],1),t._v(" and click on the "),o("code",[t._v("Import Data Package")]),t._v(" button. On this form, click on “Upload”, select the "),o("code",[t._v("datapackage.json")]),t._v(" file we created in the previous step, and choose your organisation. We’ll keep the visibility as private for now, so we can review the dataset before it’s made public.")]),t._v(" "),o("p",[o("img",{attrs:{src:e(455),alt:"Importing a data packate to the DataHub"}}),o("br"),t._v(" "),o("em",[t._v("Importing a data packate to the DataHub")])]),t._v(" "),o("p",[t._v("If you don’t see the “Import Data Package” button in your CKAN instance, install the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-datapackager"),o("OutboundLink")],1),t._v(" extension to add support for importing and exporting your datasets as data packages.")]),t._v(" "),o("p",[t._v("You will be redirected to the newly created dataset on CKAN, with its metadata and resource extracted from the data package. Double check if everything seems fine, and when you’re finished, click on the “Manage” button and change the visibility to “Public”.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://datahub.ckan.io/dataset/period-table-9896953431",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:e(456),alt:"Data package in CKAN"}}),o("OutboundLink")],1)]),t._v(" "),o("p",[t._v("That’s it! CKAN supports data packages via the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-datapackager"),o("OutboundLink")],1),t._v(" extension, so importing (and exporting) data packages is trivial, as all the work on describing the dataset was done while creating the data package.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/121.20a5c074.js b/assets/js/121.1bb95626.js similarity index 97% rename from assets/js/121.20a5c074.js rename to assets/js/121.1bb95626.js index eb77df33f..b0c398aab 100644 --- a/assets/js/121.20a5c074.js +++ b/assets/js/121.1bb95626.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{656:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("HuBMAP ("),a("a",{attrs:{href:"https://portal.hubmapconsortium.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Human BioMolecular Atlas Program"),a("OutboundLink")],1),e._v(") is creating an open, global atlas of the human body at the cellular level. To do this, we’re incorporating data from dozens of different assay types, and as many institutions. Each assay type has its own metadata requirements, and Frictionless Table Schemas are an important part of our validation framework, to ensure that the metadata supplied by the labs is good.")]),e._v(" "),a("p",[e._v("That system has worked well, as far as it goes, but when there are errors, it’s a pain for the labs to read the error message, find the original TSV, scroll to the appropriate row and column, re-enter, re-save, re-upload… and hopefully not repeat! To simplify that process, we’ve made "),a("a",{attrs:{href:"https://pypi.org/project/tableschema-to-template/#description",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-to-template"),a("OutboundLink")],1),e._v(": it takes a Table Schema as input, and returns an Excel template with embedded documentation and some basic validations.")]),e._v(" "),a("p",[a("code",[e._v("pip install tableschema-to-template")])]),e._v(" "),a("p",[a("code",[e._v("ts2xl.py schema.yaml new-template.xlsx")])]),e._v(" "),a("p",[e._v("It can be used either as a command-line tool, or as a python library. Right now the generated Excel files offer pull-downs for enum constraints, and also check that floats, integers, and booleans are the correct format, and that numbers are in bounds. Adding support for regex pattern constraints is a high priority for us… What features are important to you? Issues and PRs are welcome at the "),a("a",{attrs:{href:"https://github.com/hubmapconsortium/tableschema-to-template",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{654:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("HuBMAP ("),a("a",{attrs:{href:"https://portal.hubmapconsortium.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Human BioMolecular Atlas Program"),a("OutboundLink")],1),e._v(") is creating an open, global atlas of the human body at the cellular level. To do this, we’re incorporating data from dozens of different assay types, and as many institutions. Each assay type has its own metadata requirements, and Frictionless Table Schemas are an important part of our validation framework, to ensure that the metadata supplied by the labs is good.")]),e._v(" "),a("p",[e._v("That system has worked well, as far as it goes, but when there are errors, it’s a pain for the labs to read the error message, find the original TSV, scroll to the appropriate row and column, re-enter, re-save, re-upload… and hopefully not repeat! To simplify that process, we’ve made "),a("a",{attrs:{href:"https://pypi.org/project/tableschema-to-template/#description",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-to-template"),a("OutboundLink")],1),e._v(": it takes a Table Schema as input, and returns an Excel template with embedded documentation and some basic validations.")]),e._v(" "),a("p",[a("code",[e._v("pip install tableschema-to-template")])]),e._v(" "),a("p",[a("code",[e._v("ts2xl.py schema.yaml new-template.xlsx")])]),e._v(" "),a("p",[e._v("It can be used either as a command-line tool, or as a python library. Right now the generated Excel files offer pull-downs for enum constraints, and also check that floats, integers, and booleans are the correct format, and that numbers are in bounds. Adding support for regex pattern constraints is a high priority for us… What features are important to you? Issues and PRs are welcome at the "),a("a",{attrs:{href:"https://github.com/hubmapconsortium/tableschema-to-template",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/123.1505aef8.js b/assets/js/123.3cc6b810.js similarity index 98% rename from assets/js/123.1505aef8.js rename to assets/js/123.3cc6b810.js index 9301b5992..0b0afaff7 100644 --- a/assets/js/123.1505aef8.js +++ b/assets/js/123.3cc6b810.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{654:function(e,r,t){"use strict";t.r(r);var o=t(29),a=Object(o.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"a-recap-from-our-february-community-call"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-february-community-call"}},[e._v("#")]),e._v(" A recap from our February community call")]),e._v(" "),t("p",[e._v("On this February Community Call we had a top notch code demonstration of the new "),t("a",{attrs:{href:"http://frictionless.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("frictionless.py"),t("OutboundLink")],1),e._v(" framework by our Frictionless Data senior developer Evgeny Karev. We had been looking very much forward to presenting the new framework to you all and we were very pleased that so many of you joined us. If you would like to know more about it, you can explore the new Frictionless Python framework through the "),t("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation portal"),t("OutboundLink")],1),e._v(" or on "),t("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("If you couldn’t make it to the call, or you are just curious and would like to go over the presentation again, here it is:")]),e._v(" "),t("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/WX4NbYmvu9M",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),t("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://opendataday.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Day"),t("OutboundLink")],1),e._v(" is fast approaching with over 200 events organised online on March 6"),t("sup",[e._v("th")]),e._v(". Together with the "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Fellows"),t("OutboundLink")],1),e._v(" we will be celebrating open research data. Join us online from 3pm UTC. "),t("a",{attrs:{href:"https://us02web.zoom.us/meeting/register/tZUvdeuspjMoGtK-rR8wV4IrnfEW_5-KdLkG",target:"_blank",rel:"noopener noreferrer"}},[e._v("RSVP here"),t("OutboundLink")],1),e._v(" for the link to join this virtual event. This event is open to everyone.")]),e._v(" "),t("h2",{attrs:{id:"join-us-next-month"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),t("p",[e._v("Our next meeting will be on 25"),t("sup",[e._v("th")]),e._v(" March. We will hear about Hackathons to facilitate the creation of web tools to create field-specific FAIR archive files from Oleg Lavrovsky and Giuseppe Peronato.")]),e._v(" "),t("p",[e._v("You can sign up "),t("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),t("h2",{attrs:{id:"call-recording"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),t("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),t("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/W0EHL6SSPcE",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),t("p",[e._v("As usual, you can join us on "),t("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),t("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{656:function(e,r,t){"use strict";t.r(r);var o=t(29),a=Object(o.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"a-recap-from-our-february-community-call"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#a-recap-from-our-february-community-call"}},[e._v("#")]),e._v(" A recap from our February community call")]),e._v(" "),t("p",[e._v("On this February Community Call we had a top notch code demonstration of the new "),t("a",{attrs:{href:"http://frictionless.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("frictionless.py"),t("OutboundLink")],1),e._v(" framework by our Frictionless Data senior developer Evgeny Karev. We had been looking very much forward to presenting the new framework to you all and we were very pleased that so many of you joined us. If you would like to know more about it, you can explore the new Frictionless Python framework through the "),t("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation portal"),t("OutboundLink")],1),e._v(" or on "),t("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("If you couldn’t make it to the call, or you are just curious and would like to go over the presentation again, here it is:")]),e._v(" "),t("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/WX4NbYmvu9M",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),t("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://opendataday.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Day"),t("OutboundLink")],1),e._v(" is fast approaching with over 200 events organised online on March 6"),t("sup",[e._v("th")]),e._v(". Together with the "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Fellows"),t("OutboundLink")],1),e._v(" we will be celebrating open research data. Join us online from 3pm UTC. "),t("a",{attrs:{href:"https://us02web.zoom.us/meeting/register/tZUvdeuspjMoGtK-rR8wV4IrnfEW_5-KdLkG",target:"_blank",rel:"noopener noreferrer"}},[e._v("RSVP here"),t("OutboundLink")],1),e._v(" for the link to join this virtual event. This event is open to everyone.")]),e._v(" "),t("h2",{attrs:{id:"join-us-next-month"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),t("p",[e._v("Our next meeting will be on 25"),t("sup",[e._v("th")]),e._v(" March. We will hear about Hackathons to facilitate the creation of web tools to create field-specific FAIR archive files from Oleg Lavrovsky and Giuseppe Peronato.")]),e._v(" "),t("p",[e._v("You can sign up "),t("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),t("h2",{attrs:{id:"call-recording"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),t("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),t("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/W0EHL6SSPcE",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),t("p",[e._v("As usual, you can join us on "),t("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),t("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/128.a70d3d89.js b/assets/js/128.6825e92c.js similarity index 99% rename from assets/js/128.a70d3d89.js rename to assets/js/128.6825e92c.js index ca5a7b7b3..36d2a23db 100644 --- a/assets/js/128.a70d3d89.js +++ b/assets/js/128.6825e92c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{666:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Originally published: "),o("a",{attrs:{href:"https://blog.okfn.org/2021/04/14/unveiling-the-new-frictionless-data-documentation-portal/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2021/04/14/unveiling-the-new-frictionless-data-documentation-portal/"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Have you used Frictionless Data documentation in the past and been confused or wanted more examples? Are you a brand new Frictionless Data user looking to get started learning?")]),e._v(" "),o("p",[e._v("We invite you all to read our new and improved "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation portal"),o("OutboundLink")],1),e._v("! Thanks to a "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/13/partnering-with-odi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("fund that the Open Knowledge Foundation was awarded"),o("OutboundLink")],1),e._v(" from the "),o("a",{attrs:{href:"https://theodi.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Institute"),o("OutboundLink")],1),e._v(", we have completely reworked the guides of our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Framework website"),o("OutboundLink")],1),e._v(" according to the suggestions from a cohort of users gathered in several feedback sessions throughout the months of February and March.")]),e._v(" "),o("p",[e._v("We cannot stress enough how precious those feedback sessions have been to us. They were an excellent opportunity to connect with our users and reflect together with them on how to make all our guides more useful for current and future users. The enthusiasm and engagement that the community showed for the process was great to see and reminded us that the link with the community should be at the core of open source projects.")]),e._v(" "),o("p",[e._v("We were amazed by the amount of extremely useful inputs that we got. While we are still digesting some of the suggestions and working out how to best implement them, we have made many changes to make the documentation a smoother, Frictionless experience.")]),e._v(" "),o("h2",{attrs:{id:"so-what-s-new"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#so-what-s-new"}},[e._v("#")]),e._v(" So what’s new?")]),e._v(" "),o("p",[e._v("A common theme from the feedback sessions was that it was sometimes difficult for novice users to understand the whole potential of the Frictionless specifications. To help make this clearer, we added a more detailed explanation, user examples and user stories to our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/introduction",target:"_blank",rel:"noopener noreferrer"}},[e._v("Introduction"),o("OutboundLink")],1),e._v(". We also added some extra installation tips and a troubleshooting section to our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/quick-start",target:"_blank",rel:"noopener noreferrer"}},[e._v("Quick Start guide"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The users also suggested several code changes, like more realistic code examples, better explanations of functions, and the ability to run code examples in both the Command Line and Python. This last suggestion was prompted because most of the guides use a mix of Command Line and Python syntax, which was confusing to our users. We have clarified that by adding a switch in the code snippets that allows user to work with a pure Python Syntax or pure Command Line (when possible), as you can see "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/basic-examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". We also put together an "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/faq/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAQ section"),o("OutboundLink")],1),e._v(" based on questions that were often asked on our "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord chat"),o("OutboundLink")],1),e._v(". If you have suggestions for other common questions to add, let us know!")]),e._v(" "),o("p",[e._v("The documentation revamping process also included the publication of new tutorials. We worked on two new Frictionless tutorials, which are published under the Notebooks link in the navigation menu. While working on those, we got inspired by the feedback sessions and realised that it made sense to give our community the possibility to contribute to the project with some real life examples of Frictionless Data use. The user selection process has started and we hope to get the new tutorials online by the end of the month, so stay tuned!")]),e._v(" "),o("h2",{attrs:{id:"what-s-next"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-s-next"}},[e._v("#")]),e._v(" What’s next?")]),e._v(" "),o("p",[e._v("Our commitment to continually improving our documentation is not over with this project coming to an end! Do you have suggestions for changes you would like to see in our documentation? Please reach out to us or open a "),o("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/pulls",target:"_blank",rel:"noopener noreferrer"}},[e._v("pull request"),o("OutboundLink")],1),e._v(" to contribute. Everyone is welcome to contribute! Learn how to do it "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/development/contributing",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"thanks-thanks-thanks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thanks-thanks-thanks"}},[e._v("#")]),e._v(" Thanks, thanks, thanks!")]),e._v(" "),o("p",[e._v("Once again, we are very grateful to the Open Data Institute for giving us the chance to focus on this documentation in order to improve it. We cannot thank enough all our users who took part in the feedback sessions, your contributions were precious.")]),e._v(" "),o("h2",{attrs:{id:"more-about-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#more-about-frictionless-data"}},[e._v("#")]),e._v(" More about Frictionless Data")]),e._v(" "),o("p",[e._v("Frictionless Data is a set of specifications for data and metadata interoperability, accompanied by a collection of software libraries that implement these specifications, and a range of best practices for data management. The project is funded by the Sloan Foundation.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{664:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Originally published: "),o("a",{attrs:{href:"https://blog.okfn.org/2021/04/14/unveiling-the-new-frictionless-data-documentation-portal/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2021/04/14/unveiling-the-new-frictionless-data-documentation-portal/"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Have you used Frictionless Data documentation in the past and been confused or wanted more examples? Are you a brand new Frictionless Data user looking to get started learning?")]),e._v(" "),o("p",[e._v("We invite you all to read our new and improved "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation portal"),o("OutboundLink")],1),e._v("! Thanks to a "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/13/partnering-with-odi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("fund that the Open Knowledge Foundation was awarded"),o("OutboundLink")],1),e._v(" from the "),o("a",{attrs:{href:"https://theodi.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Institute"),o("OutboundLink")],1),e._v(", we have completely reworked the guides of our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Framework website"),o("OutboundLink")],1),e._v(" according to the suggestions from a cohort of users gathered in several feedback sessions throughout the months of February and March.")]),e._v(" "),o("p",[e._v("We cannot stress enough how precious those feedback sessions have been to us. They were an excellent opportunity to connect with our users and reflect together with them on how to make all our guides more useful for current and future users. The enthusiasm and engagement that the community showed for the process was great to see and reminded us that the link with the community should be at the core of open source projects.")]),e._v(" "),o("p",[e._v("We were amazed by the amount of extremely useful inputs that we got. While we are still digesting some of the suggestions and working out how to best implement them, we have made many changes to make the documentation a smoother, Frictionless experience.")]),e._v(" "),o("h2",{attrs:{id:"so-what-s-new"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#so-what-s-new"}},[e._v("#")]),e._v(" So what’s new?")]),e._v(" "),o("p",[e._v("A common theme from the feedback sessions was that it was sometimes difficult for novice users to understand the whole potential of the Frictionless specifications. To help make this clearer, we added a more detailed explanation, user examples and user stories to our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/introduction",target:"_blank",rel:"noopener noreferrer"}},[e._v("Introduction"),o("OutboundLink")],1),e._v(". We also added some extra installation tips and a troubleshooting section to our "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/quick-start",target:"_blank",rel:"noopener noreferrer"}},[e._v("Quick Start guide"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The users also suggested several code changes, like more realistic code examples, better explanations of functions, and the ability to run code examples in both the Command Line and Python. This last suggestion was prompted because most of the guides use a mix of Command Line and Python syntax, which was confusing to our users. We have clarified that by adding a switch in the code snippets that allows user to work with a pure Python Syntax or pure Command Line (when possible), as you can see "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/basic-examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". We also put together an "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/faq/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAQ section"),o("OutboundLink")],1),e._v(" based on questions that were often asked on our "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord chat"),o("OutboundLink")],1),e._v(". If you have suggestions for other common questions to add, let us know!")]),e._v(" "),o("p",[e._v("The documentation revamping process also included the publication of new tutorials. We worked on two new Frictionless tutorials, which are published under the Notebooks link in the navigation menu. While working on those, we got inspired by the feedback sessions and realised that it made sense to give our community the possibility to contribute to the project with some real life examples of Frictionless Data use. The user selection process has started and we hope to get the new tutorials online by the end of the month, so stay tuned!")]),e._v(" "),o("h2",{attrs:{id:"what-s-next"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-s-next"}},[e._v("#")]),e._v(" What’s next?")]),e._v(" "),o("p",[e._v("Our commitment to continually improving our documentation is not over with this project coming to an end! Do you have suggestions for changes you would like to see in our documentation? Please reach out to us or open a "),o("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/pulls",target:"_blank",rel:"noopener noreferrer"}},[e._v("pull request"),o("OutboundLink")],1),e._v(" to contribute. Everyone is welcome to contribute! Learn how to do it "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/development/contributing",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"thanks-thanks-thanks"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thanks-thanks-thanks"}},[e._v("#")]),e._v(" Thanks, thanks, thanks!")]),e._v(" "),o("p",[e._v("Once again, we are very grateful to the Open Data Institute for giving us the chance to focus on this documentation in order to improve it. We cannot thank enough all our users who took part in the feedback sessions, your contributions were precious.")]),e._v(" "),o("h2",{attrs:{id:"more-about-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#more-about-frictionless-data"}},[e._v("#")]),e._v(" More about Frictionless Data")]),e._v(" "),o("p",[e._v("Frictionless Data is a set of specifications for data and metadata interoperability, accompanied by a collection of software libraries that implement these specifications, and a range of best practices for data management. The project is funded by the Sloan Foundation.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/129.5711da8c.js b/assets/js/129.b87476ad.js similarity index 99% rename from assets/js/129.5711da8c.js rename to assets/js/129.b87476ad.js index 54b4b352c..4d1e629cd 100644 --- a/assets/js/129.5711da8c.js +++ b/assets/js/129.b87476ad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{662:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on April 29"),r("sup",[e._v("th")]),e._v(" we had an interactive session with our great Frictionless Data Fellows: Daniel Alcalá López, Kate Bowie, Katerina Drakoulaki, Anne Lee, Jacqueline Maasch, Evelyn Night and Samantha Wilairat.")]),e._v(" "),r("p",[e._v("The Fellows are early career researchers recruited to become champions of the Frictionless Data tools and approaches in their field. During the nine months of their fellowship, which started in August 2020, the Fellows learned how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. It was a real pleasure to work with this amazing cohort. Sadly the fellowship is coming to an end, but we are sure we will hear a lot from them in the future.")]),e._v(" "),r("p",[e._v("You can learn more about them "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(", and read all the great blogs they wrote "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("If you would like to hear directly from the Fellows about their experience with Frictionless Data and what the fellowship meant for them, you can have a look at the presentation they made during the community call here below:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/uw7wqdiCP_g",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf,v6"),r("OutboundLink")],1),e._v(" is happening on May 4-5. It is free and virtual - register "),r("a",{attrs:{href:"https://www.eventbrite.com/e/csvconfv6-tickets-144250211265",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". There are two Frictionless sessions:")]),e._v(" "),r("ul",[r("li",[e._v("May 4"),r("sup",[e._v("th")]),e._v(": Frictionless Data workshop led by the Reproducible Research fellows, don’t miss the opportunity to meet the Fellows again!")]),e._v(" "),r("li",[e._v("May 5"),r("sup",[e._v("th")]),e._v(": Frictionless Data for Wheat by Simon Tyrrell")])]),e._v(" "),r("p",[e._v("Full programme here: "),r("a",{attrs:{href:"https://csvconf.com/speakers",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://csvconf.com/speakers"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"news-from-the-community"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the Community")]),e._v(" "),r("p",[e._v("Oleg Lavrovsky presented instant APIs for small Frictionless Data-powered apps. "),r("a",{attrs:{href:"https://scene.rip/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here"),r("OutboundLink")],1),e._v(" is an example app developed during the latest Swiss OpenGLAM hackathon. To know more about it, you can also check:")]),e._v(" "),r("ul",[r("li",[e._v("The "),r("a",{attrs:{href:"https://github.com/we-art-o-nauts/the-scene-lives",target:"_blank",rel:"noopener noreferrer"}},[e._v("source code"),r("OutboundLink")],1),e._v(" which uses "),r("a",{attrs:{href:"https://github.com/datahq/dataflows",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataFlows"),r("OutboundLink")],1),e._v(" for the aggregation, and the "),r("a",{attrs:{href:"https://github.com/rgieseke/pandas-datapackage-reader",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas Data Package reader"),r("OutboundLink")],1),e._v(" as the basis for filtering.")]),e._v(" "),r("li",[e._v("The "),r("a",{attrs:{href:"https://hack.glam.opendata.ch/project/114",target:"_blank",rel:"noopener noreferrer"}},[e._v("project page"),r("OutboundLink")],1),e._v(" and slides which outline the motivation to collect and homogenize electronic art archives.")]),e._v(" "),r("li",[e._v("An "),r("a",{attrs:{href:"https://github.com/loleg/baumkataster-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("earlier attempt"),r("OutboundLink")],1),e._v(" which involves a city tree catalogue. The team is also building on this approach in several projects at "),r("a",{attrs:{href:"http://github.com/cividi",target:"_blank",rel:"noopener noreferrer"}},[e._v("cividi"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h2",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on May 27"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from Simon Tyrrell on his Tool Fund project - Frictionless Data for Wheat. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h2",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/sRJZnm7bUQc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{661:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on April 29"),r("sup",[e._v("th")]),e._v(" we had an interactive session with our great Frictionless Data Fellows: Daniel Alcalá López, Kate Bowie, Katerina Drakoulaki, Anne Lee, Jacqueline Maasch, Evelyn Night and Samantha Wilairat.")]),e._v(" "),r("p",[e._v("The Fellows are early career researchers recruited to become champions of the Frictionless Data tools and approaches in their field. During the nine months of their fellowship, which started in August 2020, the Fellows learned how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. It was a real pleasure to work with this amazing cohort. Sadly the fellowship is coming to an end, but we are sure we will hear a lot from them in the future.")]),e._v(" "),r("p",[e._v("You can learn more about them "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(", and read all the great blogs they wrote "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("If you would like to hear directly from the Fellows about their experience with Frictionless Data and what the fellowship meant for them, you can have a look at the presentation they made during the community call here below:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/uw7wqdiCP_g",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf,v6"),r("OutboundLink")],1),e._v(" is happening on May 4-5. It is free and virtual - register "),r("a",{attrs:{href:"https://www.eventbrite.com/e/csvconfv6-tickets-144250211265",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". There are two Frictionless sessions:")]),e._v(" "),r("ul",[r("li",[e._v("May 4"),r("sup",[e._v("th")]),e._v(": Frictionless Data workshop led by the Reproducible Research fellows, don’t miss the opportunity to meet the Fellows again!")]),e._v(" "),r("li",[e._v("May 5"),r("sup",[e._v("th")]),e._v(": Frictionless Data for Wheat by Simon Tyrrell")])]),e._v(" "),r("p",[e._v("Full programme here: "),r("a",{attrs:{href:"https://csvconf.com/speakers",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://csvconf.com/speakers"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"news-from-the-community"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the Community")]),e._v(" "),r("p",[e._v("Oleg Lavrovsky presented instant APIs for small Frictionless Data-powered apps. "),r("a",{attrs:{href:"https://scene.rip/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here"),r("OutboundLink")],1),e._v(" is an example app developed during the latest Swiss OpenGLAM hackathon. To know more about it, you can also check:")]),e._v(" "),r("ul",[r("li",[e._v("The "),r("a",{attrs:{href:"https://github.com/we-art-o-nauts/the-scene-lives",target:"_blank",rel:"noopener noreferrer"}},[e._v("source code"),r("OutboundLink")],1),e._v(" which uses "),r("a",{attrs:{href:"https://github.com/datahq/dataflows",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataFlows"),r("OutboundLink")],1),e._v(" for the aggregation, and the "),r("a",{attrs:{href:"https://github.com/rgieseke/pandas-datapackage-reader",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas Data Package reader"),r("OutboundLink")],1),e._v(" as the basis for filtering.")]),e._v(" "),r("li",[e._v("The "),r("a",{attrs:{href:"https://hack.glam.opendata.ch/project/114",target:"_blank",rel:"noopener noreferrer"}},[e._v("project page"),r("OutboundLink")],1),e._v(" and slides which outline the motivation to collect and homogenize electronic art archives.")]),e._v(" "),r("li",[e._v("An "),r("a",{attrs:{href:"https://github.com/loleg/baumkataster-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("earlier attempt"),r("OutboundLink")],1),e._v(" which involves a city tree catalogue. The team is also building on this approach in several projects at "),r("a",{attrs:{href:"http://github.com/cividi",target:"_blank",rel:"noopener noreferrer"}},[e._v("cividi"),r("OutboundLink")],1),e._v(".")])]),e._v(" "),r("h2",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on May 27"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from Simon Tyrrell on his Tool Fund project - Frictionless Data for Wheat. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h2",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/sRJZnm7bUQc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/130.283489b6.js b/assets/js/130.ad033a1a.js similarity index 98% rename from assets/js/130.283489b6.js rename to assets/js/130.ad033a1a.js index 3d1d44681..078f54377 100644 --- a/assets/js/130.283489b6.js +++ b/assets/js/130.ad033a1a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{739:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on May 29"),r("sup",[e._v("th")]),e._v(" we had Simon Tyrrell and Xingdong Bian from the Earlham Institute giving a presentation on Frictionless Data for Wheat. The project was developed during the Frictionless Toolfund 2020-2021.")]),e._v(" "),r("p",[e._v("Simon and Xingdong are part of the Designing Future Wheat, a research group studying how to increment the amount of wheat that is produced in a field in order to meet the global demand by 2050. To run the project, they collect a great amount of data and large scale datasets, which are shared with a great number of different users. Frictionless Data is used to make that data available, usable and interoperable for everyone.")]),e._v(" "),r("p",[e._v("You can learn more about the Designing Future Wheat project "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/05/frictionless-data-for-wheat/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless implementation, you can watch Simon’s and Xingdong’s presentation here:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/E4Mw8cYlM88",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h1",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("p",[e._v("We are super happy to share with you "),r("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Repository - a Github Action for the continuous data validation of your repo"),r("OutboundLink")],1),e._v("."),r("br"),e._v("\nWe are actively looking for feedback, so please let us know what you think.")]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on June 24"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from"),r("br"),e._v("\nNikhil Vats on Frictionless Data Package for InterMine. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here."),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/uC-whhwGiqk",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v(" ")]),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{663:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on May 29"),r("sup",[e._v("th")]),e._v(" we had Simon Tyrrell and Xingdong Bian from the Earlham Institute giving a presentation on Frictionless Data for Wheat. The project was developed during the Frictionless Toolfund 2020-2021.")]),e._v(" "),r("p",[e._v("Simon and Xingdong are part of the Designing Future Wheat, a research group studying how to increment the amount of wheat that is produced in a field in order to meet the global demand by 2050. To run the project, they collect a great amount of data and large scale datasets, which are shared with a great number of different users. Frictionless Data is used to make that data available, usable and interoperable for everyone.")]),e._v(" "),r("p",[e._v("You can learn more about the Designing Future Wheat project "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/05/frictionless-data-for-wheat/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless implementation, you can watch Simon’s and Xingdong’s presentation here:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/E4Mw8cYlM88",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h1",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("p",[e._v("We are super happy to share with you "),r("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Repository - a Github Action for the continuous data validation of your repo"),r("OutboundLink")],1),e._v("."),r("br"),e._v("\nWe are actively looking for feedback, so please let us know what you think.")]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Our next meeting will be on June 24"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from"),r("br"),e._v("\nNikhil Vats on Frictionless Data Package for InterMine. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here."),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/uC-whhwGiqk",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v(" ")]),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/131.46e9f4e2.js b/assets/js/131.b9e59486.js similarity index 98% rename from assets/js/131.46e9f4e2.js rename to assets/js/131.b9e59486.js index 64cbd2e9d..c2a436d4c 100644 --- a/assets/js/131.46e9f4e2.js +++ b/assets/js/131.b9e59486.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{661:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Have you noticed some changes to our website? Building upon last year’s "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/05/01/announcing-new-website/",target:"_blank",rel:"noopener noreferrer"}},[e._v("website redesign"),a("OutboundLink")],1),e._v(", we have finished making some new changes that we are very excited to tell you about! When we started reviewing our documentation for the "),a("a",{attrs:{href:"http://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Python Framework"),a("OutboundLink")],1),e._v(" with the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/13/partnering-with-odi/#so-what-will-be-changing",target:"_blank",rel:"noopener noreferrer"}},[e._v("support of the ODI"),a("OutboundLink")],1),e._v(" back in January, we quickly realised that our main website could benefit from some revamping as well, in order to make it more user-friendly and easier to navigate.")]),e._v(" "),a("p",[e._v("We needed to clarify the relationship between our main project website and the website of all our Frictionless standards, software, and specifications, which all had different layouts and visual styles. The harmonisation process is still ongoing, but we are already very happy with the fact that the new website offers a comprehensive view of all our tools.")]),e._v(" "),a("p",[e._v("It was important for us that people visiting our website for the very first time could quickly understand what Frictionless Data is and how it can be useful to them. We did that through a reorganisation of the homepage and the navigation, which was a bit confusing for some users. We also updated most of the text to better reflect the current status of the project, but also to clearly state what Frictionless Data is. Users should now be able to understand in a glance that Frictionless is composed of two main parts, "),a("a",{attrs:{href:"https://frictionlessdata.io/software/",target:"_blank",rel:"noopener noreferrer"}},[e._v("software"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/standards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("standards"),a("OutboundLink")],1),e._v(", which make it more accessible for a broad range of people working with data.")]),e._v(" "),a("img",{attrs:{width:"1337",alt:"Schermata 2021-06-16 alle 15 03 47",src:"https://user-images.githubusercontent.com/74717970/122254960-f2ad6700-cecd-11eb-88dd-a5cd119eec45.png"}}),e._v(" "),a("p",[e._v("Users will also easily find examples of "),a("a",{attrs:{href:"https://staging.frictionlessdata.io/adoption/",target:"_blank",rel:"noopener noreferrer"}},[e._v("projects and collaborations that adopted Frictionless"),a("OutboundLink")],1),e._v(", which can be very useful to better understand the full potential of the Frictionless toolkit.")]),e._v(" "),a("p",[e._v("Our goal with this new website is to give visitors an easier way to learn about Frictionless Data, encourage them to try it out and join our great community. The new architecture should reflect that, and should make it easier for people to understand that Frictionless Data is a progressive open-source framework for building data infrastructure, aiming at making it easier to work with data. Being an open-source project, we welcome and cherish everybody’s contribution. Talking about that, we would love to hear your feedback! Let us know what you think about the new website, if you have any comments or if you see any further improvement we could make. We have created a "),a("a",{attrs:{href:"https://github.com/frictionlessdata/website/issues/198",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub issue"),a("OutboundLink")],1),e._v(" you can use to give us your thoughts.")]),e._v(" "),a("p",[e._v("Thank you!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{662:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Have you noticed some changes to our website? Building upon last year’s "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/05/01/announcing-new-website/",target:"_blank",rel:"noopener noreferrer"}},[e._v("website redesign"),a("OutboundLink")],1),e._v(", we have finished making some new changes that we are very excited to tell you about! When we started reviewing our documentation for the "),a("a",{attrs:{href:"http://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Python Framework"),a("OutboundLink")],1),e._v(" with the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/13/partnering-with-odi/#so-what-will-be-changing",target:"_blank",rel:"noopener noreferrer"}},[e._v("support of the ODI"),a("OutboundLink")],1),e._v(" back in January, we quickly realised that our main website could benefit from some revamping as well, in order to make it more user-friendly and easier to navigate.")]),e._v(" "),a("p",[e._v("We needed to clarify the relationship between our main project website and the website of all our Frictionless standards, software, and specifications, which all had different layouts and visual styles. The harmonisation process is still ongoing, but we are already very happy with the fact that the new website offers a comprehensive view of all our tools.")]),e._v(" "),a("p",[e._v("It was important for us that people visiting our website for the very first time could quickly understand what Frictionless Data is and how it can be useful to them. We did that through a reorganisation of the homepage and the navigation, which was a bit confusing for some users. We also updated most of the text to better reflect the current status of the project, but also to clearly state what Frictionless Data is. Users should now be able to understand in a glance that Frictionless is composed of two main parts, "),a("a",{attrs:{href:"https://frictionlessdata.io/software/",target:"_blank",rel:"noopener noreferrer"}},[e._v("software"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/standards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("standards"),a("OutboundLink")],1),e._v(", which make it more accessible for a broad range of people working with data.")]),e._v(" "),a("img",{attrs:{width:"1337",alt:"Schermata 2021-06-16 alle 15 03 47",src:"https://user-images.githubusercontent.com/74717970/122254960-f2ad6700-cecd-11eb-88dd-a5cd119eec45.png"}}),e._v(" "),a("p",[e._v("Users will also easily find examples of "),a("a",{attrs:{href:"https://staging.frictionlessdata.io/adoption/",target:"_blank",rel:"noopener noreferrer"}},[e._v("projects and collaborations that adopted Frictionless"),a("OutboundLink")],1),e._v(", which can be very useful to better understand the full potential of the Frictionless toolkit.")]),e._v(" "),a("p",[e._v("Our goal with this new website is to give visitors an easier way to learn about Frictionless Data, encourage them to try it out and join our great community. The new architecture should reflect that, and should make it easier for people to understand that Frictionless Data is a progressive open-source framework for building data infrastructure, aiming at making it easier to work with data. Being an open-source project, we welcome and cherish everybody’s contribution. Talking about that, we would love to hear your feedback! Let us know what you think about the new website, if you have any comments or if you see any further improvement we could make. We have created a "),a("a",{attrs:{href:"https://github.com/frictionlessdata/website/issues/198",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub issue"),a("OutboundLink")],1),e._v(" you can use to give us your thoughts.")]),e._v(" "),a("p",[e._v("Thank you!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/132.96c23259.js b/assets/js/132.de22cc97.js similarity index 97% rename from assets/js/132.96c23259.js rename to assets/js/132.de22cc97.js index f6e72dd4b..7bfeb2023 100644 --- a/assets/js/132.96c23259.js +++ b/assets/js/132.de22cc97.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{663:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that a new tool has been added to the Frictionless Data toolkit: Livemark. What is that? Livemark is a great tool that allows you to publish data articles very easily, giving you the possibility to see your data live on a working website in a blink of an eye.")]),e._v(" "),a("h2",{attrs:{id:"how-does-it-work"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),a("p",[e._v("Livemark is a Python library generating a static page that extends Markdown with interactive charts, tables, scripts, and much much more. You can use the Frictionless framework as a "),a("code",[e._v("frictionless")]),e._v(" variable to work with your tabular data in Livemark.")]),e._v(" "),a("p",[e._v("Livemark offers a series of useful features, like automatically generating a table of contents and providing a scroll-to-top button when you scroll down your document. You can also customise the layout of your newly created webpage.")]),e._v(" "),a("h2",{attrs:{id:"how-can-you-get-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-you-get-started"}},[e._v("#")]),e._v(" How can you get started?")]),e._v(" "),a("p",[e._v("Livemark is very easy to use. We invite you watch this great demo by developer Evgeny Karev:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/NMg-eCbO6L0",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v(" ")]),e._v(" "),a("p",[e._v("You can also have a look at the "),a("a",{attrs:{href:"https://frictionlessdata.github.io/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"what-do-you-think"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-do-you-think"}},[e._v("#")]),e._v(" What do you think?")]),e._v(" "),a("p",[e._v("If you create a site using Livemark, please let us know! Frictionless Data is an open source project, therefore we encourage you to give us feedback. Let us know your thoughts, suggestions, or issues by joining us in our community chat on "),a("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or by opening an issue in the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/livemark",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{665:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that a new tool has been added to the Frictionless Data toolkit: Livemark. What is that? Livemark is a great tool that allows you to publish data articles very easily, giving you the possibility to see your data live on a working website in a blink of an eye.")]),e._v(" "),a("h2",{attrs:{id:"how-does-it-work"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),a("p",[e._v("Livemark is a Python library generating a static page that extends Markdown with interactive charts, tables, scripts, and much much more. You can use the Frictionless framework as a "),a("code",[e._v("frictionless")]),e._v(" variable to work with your tabular data in Livemark.")]),e._v(" "),a("p",[e._v("Livemark offers a series of useful features, like automatically generating a table of contents and providing a scroll-to-top button when you scroll down your document. You can also customise the layout of your newly created webpage.")]),e._v(" "),a("h2",{attrs:{id:"how-can-you-get-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-you-get-started"}},[e._v("#")]),e._v(" How can you get started?")]),e._v(" "),a("p",[e._v("Livemark is very easy to use. We invite you watch this great demo by developer Evgeny Karev:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/NMg-eCbO6L0",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v(" ")]),e._v(" "),a("p",[e._v("You can also have a look at the "),a("a",{attrs:{href:"https://frictionlessdata.github.io/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"what-do-you-think"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-do-you-think"}},[e._v("#")]),e._v(" What do you think?")]),e._v(" "),a("p",[e._v("If you create a site using Livemark, please let us know! Frictionless Data is an open source project, therefore we encourage you to give us feedback. Let us know your thoughts, suggestions, or issues by joining us in our community chat on "),a("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or by opening an issue in the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/livemark",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/133.0c2743f6.js b/assets/js/133.e77f594f.js similarity index 99% rename from assets/js/133.0c2743f6.js rename to assets/js/133.e77f594f.js index 0b98b1557..a0cab78d9 100644 --- a/assets/js/133.0c2743f6.js +++ b/assets/js/133.e77f594f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{664:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Do you remember "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/user/73932",target:"_blank",rel:"noopener noreferrer"}},[e._v("Costas Simatos"),o("OutboundLink")],1),e._v("? He introduced the Frictionless Data community to the "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interoperability Test Bed"),o("OutboundLink")],1),e._v(" (ITB), an online platform that can be used to test systems against technical specifications — curious minds will find a recording of his presentation on the subject "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=pJFsJW96fuA",target:"_blank",rel:"noopener noreferrer"}},[e._v("available on YouTube"),o("OutboundLink")],1),e._v(". Amongst the tools it offers, there is a "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/csvvalidator",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV validator"),o("OutboundLink")],1),e._v(" which relies on the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema specifications"),o("OutboundLink")],1),e._v(". Those specifications filled a gap that the "),o("a",{attrs:{href:"https://datatracker.ietf.org/doc/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC 4180"),o("OutboundLink")],1),e._v(" didn’t address by having a structured way of defining the content of individual fields in terms of data types, formats and constraints, which is a clear benefit of the Frictionless specifications as reported back in 2020 "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/table-schema-validator",target:"_blank",rel:"noopener noreferrer"}},[e._v("when a beta version of the CSV validator was launched"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("p",[e._v("Frictionless specifications are flexible while allowing users to define unambiguously the expected content of a given field, therefore they were officially adopted to "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/test-bed-support-kohesio-pilot",target:"_blank",rel:"noopener noreferrer"}},[e._v("realise the validator for the Kohesio pilot phase of 2014-2020"),o("OutboundLink")],1),e._v(", "),o("a",{attrs:{href:"https://kohesio.eu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kohesio"),o("OutboundLink")],1),e._v(" being the "),o("em",[e._v("“Project Information Portal for Cohesion Policy”")]),e._v(". The Table Schema specifications made it easy and convenient for the Interoperability Test Bed to establish constraints and describe the data to be validated in a concise way based on an initial set of "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/kohesio-validator/specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV syntax rules"),o("OutboundLink")],1),e._v(", converting written and mostly non-technical definitions to their Frictionless equivalent. Using simple JSON objects, Frictionless specifications allowed the ITB to enforce data validation in multiple ways as can be observed from the "),o("a",{attrs:{href:"https://github.com/ISAITB/validator-resources-kohesio/blob/master/resources/schemas/schema.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema used for the CSV validator"),o("OutboundLink")],1),e._v(". The following list of items calls attention to the core aspects of the Table Schema standard that were taken advantage of:")]),e._v(" "),o("ul",[o("li",[e._v("Dates can be defined with string formatting (e.g. "),o("code",[e._v("%d/%m/%Y")]),e._v(" stands for "),o("code",[e._v("day/month/year")]),e._v(");")]),e._v(" "),o("li",[e._v("Constraints can indicate whether a column can contain empty values or not;")]),e._v(" "),o("li",[e._v("Constraints can also specify a valid range of values (e.g. "),o("code",[e._v('"minimum": 0.0')]),e._v(" and "),o("code",[e._v('"maximum": 100.0')]),e._v(");")]),e._v(" "),o("li",[e._v("Constraints can specify an enumeration of valid values to choose from (e.g. "),o("code",[e._v('"enum" : ["2014-2020", "2021-2027"]')]),e._v(").")]),e._v(" "),o("li",[e._v("Constraints can be specified in custom ways, such as with "),o("a",{attrs:{href:"https://en.wikipedia.org/wiki/Regular_expression",target:"_blank",rel:"noopener noreferrer"}},[e._v("regular expressions"),o("OutboundLink")],1),e._v(" for powerful string matching capabilities;")]),e._v(" "),o("li",[e._v("Data types can be enforced for any column;")]),e._v(" "),o("li",[e._v("Columns can be forced to adapt a specific name and a description can be provided for each one of them.")])]),e._v(" "),o("p",[e._v("Because these specifications can be expressed as portable text files, they became part of a multitude of tools to provide greater convenience to users and the validation process has been "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingCSV/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("documented extensively"),o("OutboundLink")],1),e._v(". JSON code snippets from the documentation highlight the fact that this format conveys all the necessary information in a readable manner and lets users extend the original specifications as needed. In this particular instance, the CSV validator can be used as a "),o("a",{attrs:{href:"https://hub.docker.com/repository/docker/isaitb/validator-kohesio",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docker image"),o("OutboundLink")],1),e._v(", as part of a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv-offline/kohesio/validator.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("command-line application"),o("OutboundLink")],1),e._v(", inside a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/kohesio/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("web application"),o("OutboundLink")],1),e._v(" and even as a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/soap/kohesio/validation?wsdl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SOAP API"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Frictionless specifications were the missing piece of the puzzle that enabled the ITB to rely on a well-documented set of standards for their data validation needs. But there is more on the table (no pun intended): whether you need to manage files, tables or entire datasets, there are "),o("RouterLink",{attrs:{to:"/standards/"}},[e._v("Frictionless standards")]),e._v(" to cover you. As the growing "),o("RouterLink",{attrs:{to:"/adoption/"}},[e._v("list of adopters and collaborations")]),e._v(" demonstrates, there are many use cases to make a data project shine with Frictionless.")],1),e._v(" "),o("p",[e._v("Are you working on a great project that should become the next glowing star in the world of Frictionless Data? Feel free to "),o("RouterLink",{attrs:{to:"/work-with-us/get-help/"}},[e._v("reach out")]),e._v(" to spread the good news!")],1)])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{666:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Do you remember "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/user/73932",target:"_blank",rel:"noopener noreferrer"}},[e._v("Costas Simatos"),o("OutboundLink")],1),e._v("? He introduced the Frictionless Data community to the "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("Interoperability Test Bed"),o("OutboundLink")],1),e._v(" (ITB), an online platform that can be used to test systems against technical specifications — curious minds will find a recording of his presentation on the subject "),o("a",{attrs:{href:"https://www.youtube.com/watch?v=pJFsJW96fuA",target:"_blank",rel:"noopener noreferrer"}},[e._v("available on YouTube"),o("OutboundLink")],1),e._v(". Amongst the tools it offers, there is a "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/csvvalidator",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV validator"),o("OutboundLink")],1),e._v(" which relies on the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema specifications"),o("OutboundLink")],1),e._v(". Those specifications filled a gap that the "),o("a",{attrs:{href:"https://datatracker.ietf.org/doc/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC 4180"),o("OutboundLink")],1),e._v(" didn’t address by having a structured way of defining the content of individual fields in terms of data types, formats and constraints, which is a clear benefit of the Frictionless specifications as reported back in 2020 "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/table-schema-validator",target:"_blank",rel:"noopener noreferrer"}},[e._v("when a beta version of the CSV validator was launched"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("p",[e._v("Frictionless specifications are flexible while allowing users to define unambiguously the expected content of a given field, therefore they were officially adopted to "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/interoperability-test-bed-repository/solution/interoperability-test-bed/news/test-bed-support-kohesio-pilot",target:"_blank",rel:"noopener noreferrer"}},[e._v("realise the validator for the Kohesio pilot phase of 2014-2020"),o("OutboundLink")],1),e._v(", "),o("a",{attrs:{href:"https://kohesio.eu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Kohesio"),o("OutboundLink")],1),e._v(" being the "),o("em",[e._v("“Project Information Portal for Cohesion Policy”")]),e._v(". The Table Schema specifications made it easy and convenient for the Interoperability Test Bed to establish constraints and describe the data to be validated in a concise way based on an initial set of "),o("a",{attrs:{href:"https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/kohesio-validator/specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV syntax rules"),o("OutboundLink")],1),e._v(", converting written and mostly non-technical definitions to their Frictionless equivalent. Using simple JSON objects, Frictionless specifications allowed the ITB to enforce data validation in multiple ways as can be observed from the "),o("a",{attrs:{href:"https://github.com/ISAITB/validator-resources-kohesio/blob/master/resources/schemas/schema.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema used for the CSV validator"),o("OutboundLink")],1),e._v(". The following list of items calls attention to the core aspects of the Table Schema standard that were taken advantage of:")]),e._v(" "),o("ul",[o("li",[e._v("Dates can be defined with string formatting (e.g. "),o("code",[e._v("%d/%m/%Y")]),e._v(" stands for "),o("code",[e._v("day/month/year")]),e._v(");")]),e._v(" "),o("li",[e._v("Constraints can indicate whether a column can contain empty values or not;")]),e._v(" "),o("li",[e._v("Constraints can also specify a valid range of values (e.g. "),o("code",[e._v('"minimum": 0.0')]),e._v(" and "),o("code",[e._v('"maximum": 100.0')]),e._v(");")]),e._v(" "),o("li",[e._v("Constraints can specify an enumeration of valid values to choose from (e.g. "),o("code",[e._v('"enum" : ["2014-2020", "2021-2027"]')]),e._v(").")]),e._v(" "),o("li",[e._v("Constraints can be specified in custom ways, such as with "),o("a",{attrs:{href:"https://en.wikipedia.org/wiki/Regular_expression",target:"_blank",rel:"noopener noreferrer"}},[e._v("regular expressions"),o("OutboundLink")],1),e._v(" for powerful string matching capabilities;")]),e._v(" "),o("li",[e._v("Data types can be enforced for any column;")]),e._v(" "),o("li",[e._v("Columns can be forced to adapt a specific name and a description can be provided for each one of them.")])]),e._v(" "),o("p",[e._v("Because these specifications can be expressed as portable text files, they became part of a multitude of tools to provide greater convenience to users and the validation process has been "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/docs/guides/latest/validatingCSV/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("documented extensively"),o("OutboundLink")],1),e._v(". JSON code snippets from the documentation highlight the fact that this format conveys all the necessary information in a readable manner and lets users extend the original specifications as needed. In this particular instance, the CSV validator can be used as a "),o("a",{attrs:{href:"https://hub.docker.com/repository/docker/isaitb/validator-kohesio",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docker image"),o("OutboundLink")],1),e._v(", as part of a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv-offline/kohesio/validator.zip",target:"_blank",rel:"noopener noreferrer"}},[e._v("command-line application"),o("OutboundLink")],1),e._v(", inside a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/kohesio/upload",target:"_blank",rel:"noopener noreferrer"}},[e._v("web application"),o("OutboundLink")],1),e._v(" and even as a "),o("a",{attrs:{href:"https://www.itb.ec.europa.eu/csv/soap/kohesio/validation?wsdl",target:"_blank",rel:"noopener noreferrer"}},[e._v("SOAP API"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Frictionless specifications were the missing piece of the puzzle that enabled the ITB to rely on a well-documented set of standards for their data validation needs. But there is more on the table (no pun intended): whether you need to manage files, tables or entire datasets, there are "),o("RouterLink",{attrs:{to:"/standards/"}},[e._v("Frictionless standards")]),e._v(" to cover you. As the growing "),o("RouterLink",{attrs:{to:"/adoption/"}},[e._v("list of adopters and collaborations")]),e._v(" demonstrates, there are many use cases to make a data project shine with Frictionless.")],1),e._v(" "),o("p",[e._v("Are you working on a great project that should become the next glowing star in the world of Frictionless Data? Feel free to "),o("RouterLink",{attrs:{to:"/work-with-us/get-help/"}},[e._v("reach out")]),e._v(" to spread the good news!")],1)])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/134.0de7dba0.js b/assets/js/134.f2523058.js similarity index 98% rename from assets/js/134.0de7dba0.js rename to assets/js/134.f2523058.js index a5f01bcf1..dd44749b2 100644 --- a/assets/js/134.0de7dba0.js +++ b/assets/js/134.f2523058.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{665:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last Frictionless Data community call on June 24"),a("sup",[e._v("th")]),e._v(" we had Nikhil Vats giving a presentation on Frictionless Package for InterMine. The project was developed during the Frictionless Toolfund 2020-2021.")]),e._v(" "),a("p",[e._v("InterMine is an open source biological data warehouse that creates databases of biological data accessed by sophisticated web query tools. Nikhil worked on the Frictionless Data Package integration, which is extremely helpful for users, as it describes all the fields of their query, specifically: name of field, type of field, class path, field and class ontology link.")]),e._v(" "),a("p",[e._v("You can learn more about the Data Package for InterMine project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/13/data-package-for-intermine/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless implementation, you can watch Nikhil Vats’ presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/6Izm_W-hNKI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("h3",{attrs:{id:"linked-data-support"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linked-data-support"}},[e._v("#")]),e._v(" Linked data support")]),e._v(" "),a("p",[e._v("Nikhil’s presentation naturally led to a discussion on adding support for linked data and ontologies to Frictionless Data. On several occasions the community has shown interest in extending Frictionless specifications by incorporating standard attributes like ontology terms for improved interoperability. There have also been several discussion about supporting JSON-LD or RDF in the main specifications for improved data linking and querying. Would this help your work? Let us know what you think and if you are potentially interested in participating in this project.")]),e._v(" "),a("h3",{attrs:{id:"new-tool-livemark"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#new-tool-livemark"}},[e._v("#")]),e._v(" New tool: Livemark")]),e._v(" "),a("p",[e._v("We are super happy to share with you the newest entry in the Frictionless Data toolkit: Livemark - a static page generator with built-in tables and charts support (with support for data processing and validation with Frictionless): "),a("a",{attrs:{href:"https://frictionlessdata.github.io/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.github.io/livemark/"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("To know more about it, check out "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our latest blog"),a("OutboundLink")],1),e._v(" (featuring a great demo by developer Evgeny Karev).")]),e._v(" "),a("p",[e._v("As usual, we would love to hear what you think, so please share your thoughts, comments and feedback with us.")]),e._v(" "),a("h1",{attrs:{id:"news-from-the-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),a("p",[e._v("Michael Amadi from Nimble Learn presented the "),a("a",{attrs:{href:"https://www.opendatablend.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend project"),a("OutboundLink")],1),e._v(" - a set of open data services that aim to make large and complex UK open data easier to analyse. Open Data Blend’s bulk data API is built on the Frictionless Data specs. Keep an eye out for an upcoming blog with more details!")]),e._v(" "),a("p",[e._v("Frictionless contributor Peter Desmet proposed to start a Frictionless Data community on Zenodo. We are currently discussing the best way to do that on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" in the "),a("em",[e._v("datasets")]),e._v(" channel. Join us there if you are interested or have ideas!")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Our next meeting will be on July 29"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from"),a("br"),e._v("\nDave Rowe on Public Libraries Open Data Schema. You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/4Kl_VBdbc5M",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{667:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last Frictionless Data community call on June 24"),a("sup",[e._v("th")]),e._v(" we had Nikhil Vats giving a presentation on Frictionless Package for InterMine. The project was developed during the Frictionless Toolfund 2020-2021.")]),e._v(" "),a("p",[e._v("InterMine is an open source biological data warehouse that creates databases of biological data accessed by sophisticated web query tools. Nikhil worked on the Frictionless Data Package integration, which is extremely helpful for users, as it describes all the fields of their query, specifically: name of field, type of field, class path, field and class ontology link.")]),e._v(" "),a("p",[e._v("You can learn more about the Data Package for InterMine project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/13/data-package-for-intermine/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless implementation, you can watch Nikhil Vats’ presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/6Izm_W-hNKI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("h3",{attrs:{id:"linked-data-support"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linked-data-support"}},[e._v("#")]),e._v(" Linked data support")]),e._v(" "),a("p",[e._v("Nikhil’s presentation naturally led to a discussion on adding support for linked data and ontologies to Frictionless Data. On several occasions the community has shown interest in extending Frictionless specifications by incorporating standard attributes like ontology terms for improved interoperability. There have also been several discussion about supporting JSON-LD or RDF in the main specifications for improved data linking and querying. Would this help your work? Let us know what you think and if you are potentially interested in participating in this project.")]),e._v(" "),a("h3",{attrs:{id:"new-tool-livemark"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#new-tool-livemark"}},[e._v("#")]),e._v(" New tool: Livemark")]),e._v(" "),a("p",[e._v("We are super happy to share with you the newest entry in the Frictionless Data toolkit: Livemark - a static page generator with built-in tables and charts support (with support for data processing and validation with Frictionless): "),a("a",{attrs:{href:"https://frictionlessdata.github.io/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.github.io/livemark/"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("To know more about it, check out "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our latest blog"),a("OutboundLink")],1),e._v(" (featuring a great demo by developer Evgeny Karev).")]),e._v(" "),a("p",[e._v("As usual, we would love to hear what you think, so please share your thoughts, comments and feedback with us.")]),e._v(" "),a("h1",{attrs:{id:"news-from-the-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),a("p",[e._v("Michael Amadi from Nimble Learn presented the "),a("a",{attrs:{href:"https://www.opendatablend.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend project"),a("OutboundLink")],1),e._v(" - a set of open data services that aim to make large and complex UK open data easier to analyse. Open Data Blend’s bulk data API is built on the Frictionless Data specs. Keep an eye out for an upcoming blog with more details!")]),e._v(" "),a("p",[e._v("Frictionless contributor Peter Desmet proposed to start a Frictionless Data community on Zenodo. We are currently discussing the best way to do that on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" in the "),a("em",[e._v("datasets")]),e._v(" channel. Join us there if you are interested or have ideas!")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Our next meeting will be on July 29"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from"),a("br"),e._v("\nDave Rowe on Public Libraries Open Data Schema. You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/4Kl_VBdbc5M",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/135.59599e99.js b/assets/js/135.ba0f9f60.js similarity index 98% rename from assets/js/135.59599e99.js rename to assets/js/135.ba0f9f60.js index 25bf9fa0c..986d25f84 100644 --- a/assets/js/135.59599e99.js +++ b/assets/js/135.ba0f9f60.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{667:function(e,t,o){"use strict";o.r(t);var n=o(29),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("To say that I am proud of the "),o("RouterLink",{attrs:{to:"/blog/2020/09/01/hello-fellows-cohort2/"}},[e._v("second cohort of Frictionless Fellows")]),e._v(" is an understatement. Their insight, discussions, and breakthroughs have been a true joy to witness, and I feel so lucky to have had the chance to work and learn with each of them. Over the last 9 months, they not only learned about Frictionless Data tooling, how to make their research more reproducible, and how to advocate for open science, they also gave many presentations (some for the first time in public!), published papers, wrote dissertations, and gained confidence in their coding skills. I know each of them will be a leader in the open space, so keep an eye on them!")],1),e._v(" "),o("p",[e._v("As a final assignment, the Fellows have written blogs reflecting upon their experiences and what they learned during the programme. I’ve copied blurbs from each below, but be sure to click on the links to read more from each Fellow!")]),e._v(" "),o("ul",[o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Endings, Beginnings, and Reflections - by Anne Lee Steele"),o("OutboundLink")],1),o("br"),e._v("\n“What came out of this fellowship, as my colleagues have said time and time again, is much more than I ever could have imagined. Over the course of the past year, I’ve had fascinating debates with my cohort, and learned about how different disciplines unpack complex debates surrounding transparency, openness, and accessibility (as well as many other things). I’ve learned how to engage with the universe of open knowledge, and have even started working on my own related projects! With the support of OKF, I’ve learned how to give presentations in public, and think about data in ways I never had before.”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("A done deal - by Evelyn Night"),o("OutboundLink")],1),o("br"),e._v("\n“The fellowship was both exhilarating and educative. I got to engage in Open Science conversations, learned about and used frictionless tools like the Data Package Creator and Goodtables. I also navigated the open data landscape using CLI, Python, and git. I also got to engage in the Frictionless Community calls where software geniuses presented their work and also held Open science-centered conversations. These discussions enhanced my understanding of the Open Science movement and I felt a great honor to be involved in such meetings. I learned so much that the 9 months flew by.”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("A fellowship concludes - by Jacqueline Maasch"),o("OutboundLink")],1),o("br"),e._v("\n“It is hard to believe that my time as a Reproducible Research Fellow is over. I am most grateful for this program giving me a dedicated space in which to learn, a community with which to engage, and language with which to arm myself. I have been exposed to issues in open science that I had never encountered before, and have had the privilege of discussing these issues with people from across the world. I will miss the journal clubs the most!”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("My experience in the fellows program - a reflection - by Katerina Drakoulaki"),o("OutboundLink")],1),o("br"),e._v("\n“I got into the fellowship just with the hope of getting the opportunity to learn things I didn’t have the opportunity to learn on my own. That is, I did not have specific expectations, I was (and still am) grateful to be in. I feel that all the implicit expectations I might have had are all fulfilled. I got an amazing boost in my digital skills altogether and I know exactly why (no I did not gain a few IQ points). I was in a helpful community and I matured in a way that enabled me to have more of a growth mindset. I also saw other people ‘fail’, as in having their code not working and having to google the solution! I have to say all the readings, the discussions, the tutorials, the Frictionless tools have been amazing, but this shift in my mindset has been the greatest gift the fellowship has given me.”")])])]),e._v(" "),o("p",[e._v("Thank you Fellows! As a bonus, here are the reflections from the first cohort of Fellows: "),o("a",{attrs:{href:"https://blog.okfn.org/2020/06/09/reflecting-on-the-first-cohort-of-frictionless-data-reproducible-research-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2020/06/09/reflecting-on-the-first-cohort-of-frictionless-data-reproducible-research-fellows/"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{668:function(e,t,o){"use strict";o.r(t);var n=o(29),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("To say that I am proud of the "),o("RouterLink",{attrs:{to:"/blog/2020/09/01/hello-fellows-cohort2/"}},[e._v("second cohort of Frictionless Fellows")]),e._v(" is an understatement. Their insight, discussions, and breakthroughs have been a true joy to witness, and I feel so lucky to have had the chance to work and learn with each of them. Over the last 9 months, they not only learned about Frictionless Data tooling, how to make their research more reproducible, and how to advocate for open science, they also gave many presentations (some for the first time in public!), published papers, wrote dissertations, and gained confidence in their coding skills. I know each of them will be a leader in the open space, so keep an eye on them!")],1),e._v(" "),o("p",[e._v("As a final assignment, the Fellows have written blogs reflecting upon their experiences and what they learned during the programme. I’ve copied blurbs from each below, but be sure to click on the links to read more from each Fellow!")]),e._v(" "),o("ul",[o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/anne-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Endings, Beginnings, and Reflections - by Anne Lee Steele"),o("OutboundLink")],1),o("br"),e._v("\n“What came out of this fellowship, as my colleagues have said time and time again, is much more than I ever could have imagined. Over the course of the past year, I’ve had fascinating debates with my cohort, and learned about how different disciplines unpack complex debates surrounding transparency, openness, and accessibility (as well as many other things). I’ve learned how to engage with the universe of open knowledge, and have even started working on my own related projects! With the support of OKF, I’ve learned how to give presentations in public, and think about data in ways I never had before.”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/evelyn-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("A done deal - by Evelyn Night"),o("OutboundLink")],1),o("br"),e._v("\n“The fellowship was both exhilarating and educative. I got to engage in Open Science conversations, learned about and used frictionless tools like the Data Package Creator and Goodtables. I also navigated the open data landscape using CLI, Python, and git. I also got to engage in the Frictionless Community calls where software geniuses presented their work and also held Open science-centered conversations. These discussions enhanced my understanding of the Open Science movement and I felt a great honor to be involved in such meetings. I learned so much that the 9 months flew by.”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/jacqueline-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("A fellowship concludes - by Jacqueline Maasch"),o("OutboundLink")],1),o("br"),e._v("\n“It is hard to believe that my time as a Reproducible Research Fellow is over. I am most grateful for this program giving me a dedicated space in which to learn, a community with which to engage, and language with which to arm myself. I have been exposed to issues in open science that I had never encountered before, and have had the privilege of discussing these issues with people from across the world. I will miss the journal clubs the most!”")])]),e._v(" "),o("li",[o("p",[o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/katerina-final-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("My experience in the fellows program - a reflection - by Katerina Drakoulaki"),o("OutboundLink")],1),o("br"),e._v("\n“I got into the fellowship just with the hope of getting the opportunity to learn things I didn’t have the opportunity to learn on my own. That is, I did not have specific expectations, I was (and still am) grateful to be in. I feel that all the implicit expectations I might have had are all fulfilled. I got an amazing boost in my digital skills altogether and I know exactly why (no I did not gain a few IQ points). I was in a helpful community and I matured in a way that enabled me to have more of a growth mindset. I also saw other people ‘fail’, as in having their code not working and having to google the solution! I have to say all the readings, the discussions, the tutorials, the Frictionless tools have been amazing, but this shift in my mindset has been the greatest gift the fellowship has given me.”")])])]),e._v(" "),o("p",[e._v("Thank you Fellows! As a bonus, here are the reflections from the first cohort of Fellows: "),o("a",{attrs:{href:"https://blog.okfn.org/2020/06/09/reflecting-on-the-first-cohort-of-frictionless-data-reproducible-research-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2020/06/09/reflecting-on-the-first-cohort-of-frictionless-data-reproducible-research-fellows/"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/136.4d1fafd7.js b/assets/js/136.6442c6b9.js similarity index 99% rename from assets/js/136.4d1fafd7.js rename to assets/js/136.6442c6b9.js index 4e1237a31..de4f6f946 100644 --- a/assets/js/136.4d1fafd7.js +++ b/assets/js/136.6442c6b9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{668:function(e,a,t){"use strict";t.r(a);var n=t(29),r=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("a",{attrs:{href:"https://www.opendatablend.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend"),t("OutboundLink")],1),e._v(" is a set of open data services that aim to make large and complex UK open data easier to analyse. We source the raw open data, transform it into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimensional_modeling",target:"_blank",rel:"noopener noreferrer"}},[e._v("dimensional models"),t("OutboundLink")],1),e._v(" (also referred to as ‘star schemas’), cleanse and enrich it, add metadata to support its reuse, and make this processed data openly available as compressed CSV, Apache ORC, and Apache Parquet data files. In summary, we provide analysis-ready open data with an emphasis on quality over quantity. We are excited to tell you more about Open Data Blend and how it uses Frictionless Data specifications to make this data easier to understand and use.")]),e._v(" "),t("p",[e._v("There are two core data services: Open Data Blend Datasets and Open Data Blend Analytics. Open Data Blend Datasets has a user interface (UI) called the "),t("a",{attrs:{href:"http://opendatablend.io/datasets",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Dataset UI"),t("OutboundLink")],1),e._v(" and a bulk data API called the "),t("a",{attrs:{href:"https://packages.opendatablend.io/v1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Dataset API"),t("OutboundLink")],1),e._v(". "),t("a",{attrs:{href:"https://www.opendatablend.io/analytics",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data blend Analytics"),t("OutboundLink")],1),e._v(" is an interactive analytical query service that can be used from popular BI tools like Excel, Power BI Desktop, and Tableau Desktop.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125306833-d4515480-e32f-11eb-8a6d-306ce25cc854.png",alt:"open-data-blend-home-page"}})]),e._v(" "),t("h2",{attrs:{id:"why-open-data-blend-was-created"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-open-data-blend-was-created"}},[e._v("#")]),e._v(" Why Open Data Blend Was Created")]),e._v(" "),t("p",[e._v("The idea behind Open Data Blend was born at "),t("a",{attrs:{href:"https://www.nimblelearn.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nimble Learn"),t("OutboundLink")],1),e._v(" in 2014 after several pain points were experienced when working with large and complex UK open datasets. One of these pain points was that a significant effort, and access to large computational resources, was needed to prepare the data for analysis in a reasonable timeframe. Another pain point was that the lookups and data dictionaries would often be buried in unstructured sources like Word documents, PDF files, and web pages.")]),e._v(" "),t("h2",{attrs:{id:"our-frictionless-data-journey"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#our-frictionless-data-journey"}},[e._v("#")]),e._v(" Our Frictionless Data Journey")]),e._v(" "),t("p",[e._v("At Nimble Learn, we have over six years’ experience working with the Frictionless Data specifications. We have delivered two other Frictionless Data projects to date: Data Package M and Data Package Connector.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-m",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package M"),t("OutboundLink")],1),e._v(" is a Power Query M library that simplifies the loading of Tabular Data Packages into Excel or Power BI.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307259-314d0a80-e330-11eb-938b-c70cf3de7cc6.png",alt:"data-package-m"}})]),e._v(" "),t("p",[e._v("You can read the Frictionless Data case study for Data Package M "),t("a",{attrs:{href:"https://frictionlessdata.io/blog/2018/07/20/nimblelearn/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-connector",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Connector"),t("OutboundLink")],1),e._v(" is a "),t("a",{attrs:{href:"https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-connector-extensibility#custom-connectors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Power BI custom connector"),t("OutboundLink")],1),e._v(" that enables one or more tables from Data Packages, that implement the Table Schema specification, to be loaded directly into Power BI through the ‘Get Data’ experience.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307384-4de94280-e330-11eb-9ef1-f66084ceca32.png",alt:"data-package-connector"}})]),e._v(" "),t("p",[e._v("The Frictionless Data case study for Data Package Connector can be read "),t("a",{attrs:{href:"https://frictionlessdata.io/blog/2019/07/22/nimblelearn-dpc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"how-open-data-blend-uses-frictionless-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-open-data-blend-uses-frictionless-data"}},[e._v("#")]),e._v(" How Open Data Blend Uses Frictionless Data")]),e._v(" "),t("p",[e._v("During over six years of extensive research and development into open data publishing, we reviewed and evaluated several open standards that could be used as a base for our open data API. After carefully weighing the pros and cons of each, we chose to adopt the Frictionless Data specifications because they were lightweight, simple, robust, and highly scalable. We also wanted our users to benefit from the growing ecosystem of "),t("a",{attrs:{href:"https://libraries.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data tools"),t("OutboundLink")],1),e._v(" that make Frictionless Data even more accessible.")]),e._v(" "),t("p",[e._v("The Open Data Blend Dataset UI and the Open Data Blend Dataset API are both powered by Frictionless Data. When you visit the "),t("a",{attrs:{href:"https://www.opendatablend.io/datasets",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Datasets"),t("OutboundLink")],1),e._v(" page, all of the information that you see nicely presented is coming from a data package that conforms to the "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#describing-data-package-catalogs-using-the-data-package-format",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Catalog pattern"),t("OutboundLink")],1),e._v(". Clicking on one of the datasets takes you to a dedicated dataset page that is driven by extended "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package metadata"),t("OutboundLink")],1),e._v(". The ‘Get metadata’ button at the top of each dataset page reveals the contents of the underlying datapackage.json file.")]),e._v(" "),t("p",[e._v("So far, we have implemented and extended the following Frictionless Data specifications and patterns:"),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#describing-data-package-catalogs-using-the-data-package-format",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Catalogue pattern"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#compression-of-resources",target:"_blank",rel:"noopener noreferrer"}},[e._v("Compressed resources pattern"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("You can see how deeply ingrained the Frictionless Data specifications are just by skimming through the Open Data Blend Dataset API "),t("a",{attrs:{href:"https://docs.opendatablend.io/open-data-blend-datasets/dataset-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("reference documentation"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"how-open-data-blend-helps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-open-data-blend-helps"}},[e._v("#")]),e._v(" How Open Data Blend Helps")]),e._v(" "),t("p",[e._v("Each Open Data Blend dataset is presented with helpful metadata. The data is modelled and enriched to enable effective data analysis. The columns that contain descriptive values are carefully combined into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimension_(data_warehouse)",target:"_blank",rel:"noopener noreferrer"}},[e._v("dimension tables"),t("OutboundLink")],1),e._v(" and those that contain measurable facts are grouped into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Fact_table",target:"_blank",rel:"noopener noreferrer"}},[e._v("fact tables"),t("OutboundLink")],1),e._v(". Modelling the data in this way makes it easier to understand and analyse. You can learn more about these dimensional modelling concepts "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimensional_modeling",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Star_schema",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307186-21cdc180-e330-11eb-9650-68bbd75ea0dd.png",alt:"open-data-blend-datasets-page"}})]),e._v(" "),t("p",[e._v("In addition to CSVs, we make the data available as Apache ORC and Apache Parquet files because they are two of the most popular and efficient open file formats for analytical workloads. Libraries available for "),t("a",{attrs:{href:"https://arrow.apache.org/docs/python/parquet.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://arrow.apache.org/docs/r/",target:"_blank",rel:"noopener noreferrer"}},[e._v("R"),t("OutboundLink")],1),e._v(", and other popular languages make it possible to query these files very quickly. If you are a data engineer, data analyst, or data scientist with access to data lake storage, such as Amazon S3 and Azure Data Lake Storage Gen2, the ORC or Parquet files can be ingested into your data lake. Once there, you can query them interactively using data lake engines like Apache Spark, Azure Synapse Analytics, Databricks, Dremio, and Trino.")]),e._v(" "),t("p",[e._v("To accelerate the data acquisition process when working with Open Data Blend datasets through code, we have developed a lightweight Python package called ‘opendatablend’. Once installed, this package allows you to effortlessly cache our data files locally with just a few lines of Python. Data engineers, data analysts, and data scientists can use the opendatablend package to get data and use it with whatever data tools they prefer. For example, a data scientist might start off doing some exploratory data analysis (EDA) in "),t("a",{attrs:{href:"https://pandas.pydata.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://koalas.readthedocs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Koalas"),t("OutboundLink")],1),e._v(" using a "),t("a",{attrs:{href:"https://jupyter.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jupyter notebook"),t("OutboundLink")],1),e._v(", transition to feature engineering, and then train and score machine learning models using "),t("a",{attrs:{href:"https://scikit-learn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("scikit-learn"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://spark.apache.org/mllib/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Spark MLlib"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Below is a simple example that shows how easy the opendatablend for Python is to use:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("import opendatablend as odb\nimport pandas as pd\n\ndataset_path = 'https://packages.opendatablend.io/v1/open-data-blend-road-safety/datapackage.json'\n\n# Specify the resource name of the data file. In this example, the 'date' data file will be requested in .parquet format.\nresource_name = 'date-parquet'\n\n# Get the data and store the output object\noutput = odb.get_data(dataset_path, resource_name)\n\n# Print the file locations\nprint(output.data_file_name)\nprint(output.metadata_file_name)\n\n# Read a subset of the columns into a dataframe\ndf_date = pd.read_parquet(output.data_file_name, columns=['drv_date_key', 'drv_date', 'drv_month_name', 'drv_month_number', 'drv_quarter_name', 'drv_quarter_number', 'drv_year'])\n\n# Check the contents of the dataframe\ndf_date\n")])])]),t("p",[e._v("You can learn more about the opendatablend package "),t("a",{attrs:{href:"https://github.com/opendatablend/opendatablend-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("To further reduce the time to value and to make the open data insights more accessible, the "),t("a",{attrs:{href:"https://www.opendatablend.io/analytics",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Analytics"),t("OutboundLink")],1),e._v(" service can be used with business intelligence (BI) tools like Excel, Power BI Desktop, and Tableau Desktop to directly analyse the data over a live connection. Depending on the use case, this can remove the need to work with the data files altogether.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125306996-f77c0400-e32f-11eb-99f4-1aa898678f9e.gif",alt:"open-data-blend-excel-experience"}})]),e._v(" "),t("h2",{attrs:{id:"want-to-learn-more-about-open-data-blend"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#want-to-learn-more-about-open-data-blend"}},[e._v("#")]),e._v(" Want to Learn More About Open Data Blend?")]),e._v(" "),t("p",[e._v("You can visit the Open Data Blend website "),t("a",{attrs:{href:"https://www.opendatablend.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" to learn more about the services. We also have some comprehensive documentation available "),t("a",{attrs:{href:"https://docs.opendatablend.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", where Frictionless Data specific documentation can be found "),t("a",{attrs:{href:"https://docs.opendatablend.io/open-data-blend-datasets/frictionless-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". If you would like to contribute to the project, you can find out how "),t("a",{attrs:{href:"https://www.opendatablend.io/get-involved",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Follow us on Twitter "),t("a",{attrs:{href:"https://www.twitter.com/opendatablend",target:"_blank",rel:"noopener noreferrer"}},[e._v("@opendatablend"),t("OutboundLink")],1),e._v(" to get our latest news, feature highlights, thoughts, and tips.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{669:function(e,a,t){"use strict";t.r(a);var n=t(29),r=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("a",{attrs:{href:"https://www.opendatablend.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend"),t("OutboundLink")],1),e._v(" is a set of open data services that aim to make large and complex UK open data easier to analyse. We source the raw open data, transform it into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimensional_modeling",target:"_blank",rel:"noopener noreferrer"}},[e._v("dimensional models"),t("OutboundLink")],1),e._v(" (also referred to as ‘star schemas’), cleanse and enrich it, add metadata to support its reuse, and make this processed data openly available as compressed CSV, Apache ORC, and Apache Parquet data files. In summary, we provide analysis-ready open data with an emphasis on quality over quantity. We are excited to tell you more about Open Data Blend and how it uses Frictionless Data specifications to make this data easier to understand and use.")]),e._v(" "),t("p",[e._v("There are two core data services: Open Data Blend Datasets and Open Data Blend Analytics. Open Data Blend Datasets has a user interface (UI) called the "),t("a",{attrs:{href:"http://opendatablend.io/datasets",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Dataset UI"),t("OutboundLink")],1),e._v(" and a bulk data API called the "),t("a",{attrs:{href:"https://packages.opendatablend.io/v1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Dataset API"),t("OutboundLink")],1),e._v(". "),t("a",{attrs:{href:"https://www.opendatablend.io/analytics",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data blend Analytics"),t("OutboundLink")],1),e._v(" is an interactive analytical query service that can be used from popular BI tools like Excel, Power BI Desktop, and Tableau Desktop.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125306833-d4515480-e32f-11eb-8a6d-306ce25cc854.png",alt:"open-data-blend-home-page"}})]),e._v(" "),t("h2",{attrs:{id:"why-open-data-blend-was-created"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#why-open-data-blend-was-created"}},[e._v("#")]),e._v(" Why Open Data Blend Was Created")]),e._v(" "),t("p",[e._v("The idea behind Open Data Blend was born at "),t("a",{attrs:{href:"https://www.nimblelearn.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nimble Learn"),t("OutboundLink")],1),e._v(" in 2014 after several pain points were experienced when working with large and complex UK open datasets. One of these pain points was that a significant effort, and access to large computational resources, was needed to prepare the data for analysis in a reasonable timeframe. Another pain point was that the lookups and data dictionaries would often be buried in unstructured sources like Word documents, PDF files, and web pages.")]),e._v(" "),t("h2",{attrs:{id:"our-frictionless-data-journey"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#our-frictionless-data-journey"}},[e._v("#")]),e._v(" Our Frictionless Data Journey")]),e._v(" "),t("p",[e._v("At Nimble Learn, we have over six years’ experience working with the Frictionless Data specifications. We have delivered two other Frictionless Data projects to date: Data Package M and Data Package Connector.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-m",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package M"),t("OutboundLink")],1),e._v(" is a Power Query M library that simplifies the loading of Tabular Data Packages into Excel or Power BI.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307259-314d0a80-e330-11eb-938b-c70cf3de7cc6.png",alt:"data-package-m"}})]),e._v(" "),t("p",[e._v("You can read the Frictionless Data case study for Data Package M "),t("a",{attrs:{href:"https://frictionlessdata.io/blog/2018/07/20/nimblelearn/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-connector",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Connector"),t("OutboundLink")],1),e._v(" is a "),t("a",{attrs:{href:"https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-connector-extensibility#custom-connectors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Power BI custom connector"),t("OutboundLink")],1),e._v(" that enables one or more tables from Data Packages, that implement the Table Schema specification, to be loaded directly into Power BI through the ‘Get Data’ experience.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307384-4de94280-e330-11eb-9ef1-f66084ceca32.png",alt:"data-package-connector"}})]),e._v(" "),t("p",[e._v("The Frictionless Data case study for Data Package Connector can be read "),t("a",{attrs:{href:"https://frictionlessdata.io/blog/2019/07/22/nimblelearn-dpc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"how-open-data-blend-uses-frictionless-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-open-data-blend-uses-frictionless-data"}},[e._v("#")]),e._v(" How Open Data Blend Uses Frictionless Data")]),e._v(" "),t("p",[e._v("During over six years of extensive research and development into open data publishing, we reviewed and evaluated several open standards that could be used as a base for our open data API. After carefully weighing the pros and cons of each, we chose to adopt the Frictionless Data specifications because they were lightweight, simple, robust, and highly scalable. We also wanted our users to benefit from the growing ecosystem of "),t("a",{attrs:{href:"https://libraries.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data tools"),t("OutboundLink")],1),e._v(" that make Frictionless Data even more accessible.")]),e._v(" "),t("p",[e._v("The Open Data Blend Dataset UI and the Open Data Blend Dataset API are both powered by Frictionless Data. When you visit the "),t("a",{attrs:{href:"https://www.opendatablend.io/datasets",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Datasets"),t("OutboundLink")],1),e._v(" page, all of the information that you see nicely presented is coming from a data package that conforms to the "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#describing-data-package-catalogs-using-the-data-package-format",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Catalog pattern"),t("OutboundLink")],1),e._v(". Clicking on one of the datasets takes you to a dedicated dataset page that is driven by extended "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package metadata"),t("OutboundLink")],1),e._v(". The ‘Get metadata’ button at the top of each dataset page reveals the contents of the underlying datapackage.json file.")]),e._v(" "),t("p",[e._v("So far, we have implemented and extended the following Frictionless Data specifications and patterns:"),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#describing-data-package-catalogs-using-the-data-package-format",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Catalogue pattern"),t("OutboundLink")],1),t("br"),e._v(" "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#compression-of-resources",target:"_blank",rel:"noopener noreferrer"}},[e._v("Compressed resources pattern"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("You can see how deeply ingrained the Frictionless Data specifications are just by skimming through the Open Data Blend Dataset API "),t("a",{attrs:{href:"https://docs.opendatablend.io/open-data-blend-datasets/dataset-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("reference documentation"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"how-open-data-blend-helps"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-open-data-blend-helps"}},[e._v("#")]),e._v(" How Open Data Blend Helps")]),e._v(" "),t("p",[e._v("Each Open Data Blend dataset is presented with helpful metadata. The data is modelled and enriched to enable effective data analysis. The columns that contain descriptive values are carefully combined into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimension_(data_warehouse)",target:"_blank",rel:"noopener noreferrer"}},[e._v("dimension tables"),t("OutboundLink")],1),e._v(" and those that contain measurable facts are grouped into "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Fact_table",target:"_blank",rel:"noopener noreferrer"}},[e._v("fact tables"),t("OutboundLink")],1),e._v(". Modelling the data in this way makes it easier to understand and analyse. You can learn more about these dimensional modelling concepts "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Dimensional_modeling",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Star_schema",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125307186-21cdc180-e330-11eb-9650-68bbd75ea0dd.png",alt:"open-data-blend-datasets-page"}})]),e._v(" "),t("p",[e._v("In addition to CSVs, we make the data available as Apache ORC and Apache Parquet files because they are two of the most popular and efficient open file formats for analytical workloads. Libraries available for "),t("a",{attrs:{href:"https://arrow.apache.org/docs/python/parquet.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"https://arrow.apache.org/docs/r/",target:"_blank",rel:"noopener noreferrer"}},[e._v("R"),t("OutboundLink")],1),e._v(", and other popular languages make it possible to query these files very quickly. If you are a data engineer, data analyst, or data scientist with access to data lake storage, such as Amazon S3 and Azure Data Lake Storage Gen2, the ORC or Parquet files can be ingested into your data lake. Once there, you can query them interactively using data lake engines like Apache Spark, Azure Synapse Analytics, Databricks, Dremio, and Trino.")]),e._v(" "),t("p",[e._v("To accelerate the data acquisition process when working with Open Data Blend datasets through code, we have developed a lightweight Python package called ‘opendatablend’. Once installed, this package allows you to effortlessly cache our data files locally with just a few lines of Python. Data engineers, data analysts, and data scientists can use the opendatablend package to get data and use it with whatever data tools they prefer. For example, a data scientist might start off doing some exploratory data analysis (EDA) in "),t("a",{attrs:{href:"https://pandas.pydata.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://koalas.readthedocs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Koalas"),t("OutboundLink")],1),e._v(" using a "),t("a",{attrs:{href:"https://jupyter.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jupyter notebook"),t("OutboundLink")],1),e._v(", transition to feature engineering, and then train and score machine learning models using "),t("a",{attrs:{href:"https://scikit-learn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("scikit-learn"),t("OutboundLink")],1),e._v(" or "),t("a",{attrs:{href:"https://spark.apache.org/mllib/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Spark MLlib"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Below is a simple example that shows how easy the opendatablend for Python is to use:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("import opendatablend as odb\nimport pandas as pd\n\ndataset_path = 'https://packages.opendatablend.io/v1/open-data-blend-road-safety/datapackage.json'\n\n# Specify the resource name of the data file. In this example, the 'date' data file will be requested in .parquet format.\nresource_name = 'date-parquet'\n\n# Get the data and store the output object\noutput = odb.get_data(dataset_path, resource_name)\n\n# Print the file locations\nprint(output.data_file_name)\nprint(output.metadata_file_name)\n\n# Read a subset of the columns into a dataframe\ndf_date = pd.read_parquet(output.data_file_name, columns=['drv_date_key', 'drv_date', 'drv_month_name', 'drv_month_number', 'drv_quarter_name', 'drv_quarter_number', 'drv_year'])\n\n# Check the contents of the dataframe\ndf_date\n")])])]),t("p",[e._v("You can learn more about the opendatablend package "),t("a",{attrs:{href:"https://github.com/opendatablend/opendatablend-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("To further reduce the time to value and to make the open data insights more accessible, the "),t("a",{attrs:{href:"https://www.opendatablend.io/analytics",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Blend Analytics"),t("OutboundLink")],1),e._v(" service can be used with business intelligence (BI) tools like Excel, Power BI Desktop, and Tableau Desktop to directly analyse the data over a live connection. Depending on the use case, this can remove the need to work with the data files altogether.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/125306996-f77c0400-e32f-11eb-99f4-1aa898678f9e.gif",alt:"open-data-blend-excel-experience"}})]),e._v(" "),t("h2",{attrs:{id:"want-to-learn-more-about-open-data-blend"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#want-to-learn-more-about-open-data-blend"}},[e._v("#")]),e._v(" Want to Learn More About Open Data Blend?")]),e._v(" "),t("p",[e._v("You can visit the Open Data Blend website "),t("a",{attrs:{href:"https://www.opendatablend.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(" to learn more about the services. We also have some comprehensive documentation available "),t("a",{attrs:{href:"https://docs.opendatablend.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(", where Frictionless Data specific documentation can be found "),t("a",{attrs:{href:"https://docs.opendatablend.io/open-data-blend-datasets/frictionless-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(". If you would like to contribute to the project, you can find out how "),t("a",{attrs:{href:"https://www.opendatablend.io/get-involved",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Follow us on Twitter "),t("a",{attrs:{href:"https://www.twitter.com/opendatablend",target:"_blank",rel:"noopener noreferrer"}},[e._v("@opendatablend"),t("OutboundLink")],1),e._v(" to get our latest news, feature highlights, thoughts, and tips.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/137.aa63e6f2.js b/assets/js/137.36d45931.js similarity index 98% rename from assets/js/137.aa63e6f2.js rename to assets/js/137.36d45931.js index ca71bd5b8..f4ac93e05 100644 --- a/assets/js/137.aa63e6f2.js +++ b/assets/js/137.36d45931.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{669:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Are you looking for a way to automate the validation workflows of your datasets? Look no further, Frictionless Repository is here!")]),e._v(" "),o("p",[e._v("We are very excited to announce that a new tool has been added to the Frictionless Data toolkit: Frictionless Repository. This is a Github Action allowing the continuous data validation of your repository and it will ensure the quality of your data by reporting any problems you might have with your datasets in no time.")]),e._v(" "),o("h2",{attrs:{id:"how-does-it-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),o("p",[e._v("Every time you add or update any tabular data file in your repository, Frictionless Repository runs a validation. Missing header? Data type mismatch? You will get a neat, visual, human-readable validation report straight away, which will show any problems your data may have. The report lets you spot immediately where the error occurred, making it extremely easy to correct it. You can even get a Markdown Badge to display in your repository to show that your data is valid.")]),e._v(" "),o("p",[e._v("Frictionless Repository only requires a simple installation. It is completely serverless, and it doesn’t rely on any third-party hardware except for the Github infrastructure.")]),e._v(" "),o("h2",{attrs:{id:"let-s-go"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#let-s-go"}},[e._v("#")]),e._v(" Let’s go!")]),e._v(" "),o("p",[e._v("Before you get started, have a look at developer Evgeny Karev’s demo:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kXA4hmuF57c",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v(" ")]),e._v(" "),o("p",[e._v("We also encourage you to check out the dedicated "),o("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation website"),o("OutboundLink")],1),e._v(", to get more detailed information.")]),e._v(" "),o("h2",{attrs:{id:"what-do-you-think"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-do-you-think"}},[e._v("#")]),e._v(" What do you think?")]),e._v(" "),o("p",[e._v("If you use Frictionless Repository, please let us know! Frictionless Data is an open source project, therefore we encourage you to give us feedback. Let us know your thoughts, suggestions, or issues by joining us in our community chat on "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" or by opening an issue in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{670:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Are you looking for a way to automate the validation workflows of your datasets? Look no further, Frictionless Repository is here!")]),e._v(" "),o("p",[e._v("We are very excited to announce that a new tool has been added to the Frictionless Data toolkit: Frictionless Repository. This is a Github Action allowing the continuous data validation of your repository and it will ensure the quality of your data by reporting any problems you might have with your datasets in no time.")]),e._v(" "),o("h2",{attrs:{id:"how-does-it-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-does-it-work"}},[e._v("#")]),e._v(" How does it work?")]),e._v(" "),o("p",[e._v("Every time you add or update any tabular data file in your repository, Frictionless Repository runs a validation. Missing header? Data type mismatch? You will get a neat, visual, human-readable validation report straight away, which will show any problems your data may have. The report lets you spot immediately where the error occurred, making it extremely easy to correct it. You can even get a Markdown Badge to display in your repository to show that your data is valid.")]),e._v(" "),o("p",[e._v("Frictionless Repository only requires a simple installation. It is completely serverless, and it doesn’t rely on any third-party hardware except for the Github infrastructure.")]),e._v(" "),o("h2",{attrs:{id:"let-s-go"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#let-s-go"}},[e._v("#")]),e._v(" Let’s go!")]),e._v(" "),o("p",[e._v("Before you get started, have a look at developer Evgeny Karev’s demo:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kXA4hmuF57c",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v(" ")]),e._v(" "),o("p",[e._v("We also encourage you to check out the dedicated "),o("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation website"),o("OutboundLink")],1),e._v(", to get more detailed information.")]),e._v(" "),o("h2",{attrs:{id:"what-do-you-think"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-do-you-think"}},[e._v("#")]),e._v(" What do you think?")]),e._v(" "),o("p",[e._v("If you use Frictionless Repository, please let us know! Frictionless Data is an open source project, therefore we encourage you to give us feedback. Let us know your thoughts, suggestions, or issues by joining us in our community chat on "),o("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" or by opening an issue in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/138.ad482374.js b/assets/js/138.90a2498b.js similarity index 99% rename from assets/js/138.ad482374.js rename to assets/js/138.90a2498b.js index 6b3be36b9..c12d2376b 100644 --- a/assets/js/138.ad482374.js +++ b/assets/js/138.90a2498b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{670:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("em",[e._v("The Frictionless Data Reproducible Research "),o("a",{attrs:{href:"http://fellows.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fellows Program"),o("OutboundLink")],1),e._v(", supported by the Sloan Foundation, aims to train graduate students, postdoctoral scholars, and early career researchers how to become champions for open, reproducible research using Frictionless Data tools and approaches in their field.")])]),e._v(" "),o("h3",{attrs:{id:"apply-today-to-join-the-third-cohort-of-frictionless-data-fellows"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#apply-today-to-join-the-third-cohort-of-frictionless-data-fellows"}},[e._v("#")]),e._v(" Apply today to join the Third Cohort of Frictionless Data Fellows!")]),e._v(" "),o("p",[e._v("Fellows will learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. Working closely with the Frictionless Data team, Fellows will lead training workshops at conferences, host events at universities and in labs, and write blogs and other communications content. In addition to mentorship, we are providing Fellows with stipends of $5,000 to support their work and time during the nine-month long Fellowship. We welcome applications using this "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),o("OutboundLink")],1),e._v(" from 4th August until 31st August 2021, with the Fellowship starting in October. We value diversity and encourage applicants from communities that are under-represented in science and technology, people of colour, women, people with disabilities, and LGBTI+ individuals. Questions? Please read the "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/apply",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAQ"),o("OutboundLink")],1),e._v(", and feel free to email us ("),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(") if your question is not answered in the FAQ.")]),e._v(" "),o("h3",{attrs:{id:"frictionless-data-for-reproducible-research"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data-for-reproducible-research"}},[e._v("#")]),e._v(" Frictionless Data for Reproducible Research")]),e._v(" "),o("p",[e._v("The Fellowship is part of the "),o("a",{attrs:{href:"http://frictionlessdata.io/adoption/#frictionless-data-for-reproducible-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Reproducible Research"),o("OutboundLink")],1),e._v(" project at "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(", and is the third iteration. Frictionless Data aims to reduce the friction often found when working with data, such as when data is poorly structured, incomplete, hard to find, or is archived in difficult to use formats. This project, funded by the Sloan Foundation and the Open Knowledge Foundation, applies our work to data-driven research disciplines, in order to help researchers and the research community resolve data workflow issues. At its core, Frictionless Data is a set of specifications for data and metadata interoperability, accompanied by a collection of software libraries that implement these specifications, and a range of best practices for data management. The core specification, the Data Package, is a simple and practical “container” for data and metadata. The Frictionless Data approach aims to address identified needs for improving data-driven research such as generalized, standard metadata formats, interoperable data, and open-source tooling for data validation.")]),e._v(" "),o("h3",{attrs:{id:"fellowship-program"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fellowship-program"}},[e._v("#")]),e._v(" Fellowship program")]),e._v(" "),o("p",[e._v("During the Fellowship, our team will be on hand to work closely with you as you complete the work. We will help you learn Frictionless Data tooling and software, and provide you with resources to help you create workshops and presentations. Also, we will announce Fellows on the project website and will be publishing your blogs and workshops slides within our network channels. We will provide mentorship on how to work on an Open project, and will work with you to achieve your Fellowship goals. You can read more about the first two cohorts of the Programme in the Fellows blog: "),o("a",{attrs:{href:"http://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://fellows.frictionlessdata.io/blog/"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"how-to-apply"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-apply"}},[e._v("#")]),e._v(" How to apply")]),e._v(" "),o("p",[e._v("The Fund is open to early career research individuals, such as graduate students and postdoctoral scholars, anywhere in the world, and in any scientific discipline. Successful applicants will be enthusiastic about reproducible research and open science, have some experience with communications, writing, or giving presentations, and have some technical skills (basic experience with Python, R, or Matlab for example), but do not need to be technically proficient. If you are interested, but do not have all of the qualifications, we still encourage you to "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("apply"),o("OutboundLink")],1),e._v(". We welcome applications using this "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),o("OutboundLink")],1),e._v(" from 4th August until 31st August 2021.")]),e._v(" "),o("p",[e._v("If you have any questions, please email the team at "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(" and check out the "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/apply",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fellows FAQ section"),o("OutboundLink")],1),e._v(". "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apply"),o("OutboundLink")],1),e._v(" soon, and share with your networks!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{671:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("em",[e._v("The Frictionless Data Reproducible Research "),o("a",{attrs:{href:"http://fellows.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fellows Program"),o("OutboundLink")],1),e._v(", supported by the Sloan Foundation, aims to train graduate students, postdoctoral scholars, and early career researchers how to become champions for open, reproducible research using Frictionless Data tools and approaches in their field.")])]),e._v(" "),o("h3",{attrs:{id:"apply-today-to-join-the-third-cohort-of-frictionless-data-fellows"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#apply-today-to-join-the-third-cohort-of-frictionless-data-fellows"}},[e._v("#")]),e._v(" Apply today to join the Third Cohort of Frictionless Data Fellows!")]),e._v(" "),o("p",[e._v("Fellows will learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. Working closely with the Frictionless Data team, Fellows will lead training workshops at conferences, host events at universities and in labs, and write blogs and other communications content. In addition to mentorship, we are providing Fellows with stipends of $5,000 to support their work and time during the nine-month long Fellowship. We welcome applications using this "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),o("OutboundLink")],1),e._v(" from 4th August until 31st August 2021, with the Fellowship starting in October. We value diversity and encourage applicants from communities that are under-represented in science and technology, people of colour, women, people with disabilities, and LGBTI+ individuals. Questions? Please read the "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/apply",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAQ"),o("OutboundLink")],1),e._v(", and feel free to email us ("),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(") if your question is not answered in the FAQ.")]),e._v(" "),o("h3",{attrs:{id:"frictionless-data-for-reproducible-research"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data-for-reproducible-research"}},[e._v("#")]),e._v(" Frictionless Data for Reproducible Research")]),e._v(" "),o("p",[e._v("The Fellowship is part of the "),o("a",{attrs:{href:"http://frictionlessdata.io/adoption/#frictionless-data-for-reproducible-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Reproducible Research"),o("OutboundLink")],1),e._v(" project at "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(", and is the third iteration. Frictionless Data aims to reduce the friction often found when working with data, such as when data is poorly structured, incomplete, hard to find, or is archived in difficult to use formats. This project, funded by the Sloan Foundation and the Open Knowledge Foundation, applies our work to data-driven research disciplines, in order to help researchers and the research community resolve data workflow issues. At its core, Frictionless Data is a set of specifications for data and metadata interoperability, accompanied by a collection of software libraries that implement these specifications, and a range of best practices for data management. The core specification, the Data Package, is a simple and practical “container” for data and metadata. The Frictionless Data approach aims to address identified needs for improving data-driven research such as generalized, standard metadata formats, interoperable data, and open-source tooling for data validation.")]),e._v(" "),o("h3",{attrs:{id:"fellowship-program"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#fellowship-program"}},[e._v("#")]),e._v(" Fellowship program")]),e._v(" "),o("p",[e._v("During the Fellowship, our team will be on hand to work closely with you as you complete the work. We will help you learn Frictionless Data tooling and software, and provide you with resources to help you create workshops and presentations. Also, we will announce Fellows on the project website and will be publishing your blogs and workshops slides within our network channels. We will provide mentorship on how to work on an Open project, and will work with you to achieve your Fellowship goals. You can read more about the first two cohorts of the Programme in the Fellows blog: "),o("a",{attrs:{href:"http://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://fellows.frictionlessdata.io/blog/"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"how-to-apply"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-apply"}},[e._v("#")]),e._v(" How to apply")]),e._v(" "),o("p",[e._v("The Fund is open to early career research individuals, such as graduate students and postdoctoral scholars, anywhere in the world, and in any scientific discipline. Successful applicants will be enthusiastic about reproducible research and open science, have some experience with communications, writing, or giving presentations, and have some technical skills (basic experience with Python, R, or Matlab for example), but do not need to be technically proficient. If you are interested, but do not have all of the qualifications, we still encourage you to "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("apply"),o("OutboundLink")],1),e._v(". We welcome applications using this "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),o("OutboundLink")],1),e._v(" from 4th August until 31st August 2021.")]),e._v(" "),o("p",[e._v("If you have any questions, please email the team at "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(" and check out the "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/apply",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fellows FAQ section"),o("OutboundLink")],1),e._v(". "),o("a",{attrs:{href:"https://forms.gle/3t9EoHKWYUnBdzHF8",target:"_blank",rel:"noopener noreferrer"}},[e._v("Apply"),o("OutboundLink")],1),e._v(" soon, and share with your networks!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/139.703a6fba.js b/assets/js/139.5863c0da.js similarity index 99% rename from assets/js/139.703a6fba.js rename to assets/js/139.5863c0da.js index 173b4e959..a62123e28 100644 --- a/assets/js/139.703a6fba.js +++ b/assets/js/139.5863c0da.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{671:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are halfway through 2021 (aka 2020 part two), and we thought it would be a good moment to look back at all that has happened in the Frictionless Community over these past 6 months. We’re so grateful for everyone in the community - thanks for your contributions, discussions, and participation! A big part of the community is our monthly call, so in case you’ve missed any of the community calls of 2021, here is a quick recap.")]),e._v(" "),a("p",[e._v("We started the year with a great presentation by Carles Pina i Estany. Carles is a very active member of our community and also a tool-fund grantee. He presented his tool-fund project: "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/18/schema-collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless schema-collaboration"),a("OutboundLink")],1),e._v(". What is that? It’s a system that uses Data Package Creator to enable data managers and researchers to create and share dataset schemas, edit them, post messages and export the schemas in different formats (like text, Markdown or PDF). It is a very useful tool because before researchers communicated with data managers via email for each data package they were publishing. Frictionless schema-collaboration makes it easy and faster to communicate.")]),e._v(" "),a("p",[e._v("February was a great month, we started "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/02/26/halfway-odi/#what-are-the-next-steps",target:"_blank",rel:"noopener noreferrer"}},[e._v("improving the documentation of the Frictionless Framework website"),a("OutboundLink")],1),e._v(" together with the community and we had a brilliant code demonstration of the newly-released Frictionless Python Framework by senior developer Evgeny Karev at the monthly community call. How great was that? That particular call broke the record of attendance, it was fantastic to have so many of you there! And in case you were not there, we recorded Evgeny’s demo and you can watch it on "),a("a",{attrs:{href:"LINK"}},[e._v("YouTube")]),e._v(".")]),e._v(" "),a("p",[e._v("March marked one year since the beginning of the Covid-19 pandemic in Europe and the Americas. It seemed fair to dedicate that community call to Covid-19 data, so we had Thorben Westerhuys presenting his project on Frictionless vaccination data. Thorben developed "),a("a",{attrs:{href:"https://github.com/n0rdlicht/rki-vaccination-scraper",target:"_blank",rel:"noopener noreferrer"}},[e._v("a spatiotemporal tracker for state level covid vaccination data in Germany"),a("OutboundLink")],1),e._v(" to solve the problems linked to governments publishing vaccination data not parsed for machines. His vaccination scraper takes that data, reformats it and makes it available to everyone in a structured, more machine readable form.")]),e._v(" "),a("p",[e._v("At the end of April we had an interactive session with the "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Fellows"),a("OutboundLink")],1),e._v(". Daniel Alcalá López, Kate Bowie, Katerina Drakoulaki, Anne Lee, Jacqueline Maasch, Evelyn Night and Samantha Wilairat took some time to tell the community about their journey through Open Science. They also shared with the community some of the things they learnt during their 9-months fellowship and how they plan to integrate them to their work. This cohort of fellows made us very proud, they were a true joy to work with. Keep an eye on them all, they will be leaders in Open Science! And in case you are interested in becoming a Frictionless Fellow, we are currently recruiting the 3rd cohort. More info on the programme and how to apply "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/02/apply-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("During the April call we also got a short presentation on instant APIs for small Frictionless Data-powered apps by Oleg Lavrovsky. Oleg is also an active member of our community, you have probably already met him at many of our calls.")]),e._v(" "),a("p",[e._v("May started gloriously with csv,conf, where we had two talks on Frictionless Data. One was by the Fellows, and the other one was by Simon Tyrrell. On top of the one at csv,conf, Simon gave a presentation together with Xingdong Bian about their "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/05/frictionless-data-for-wheat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Wheat project"),a("OutboundLink")],1),e._v(" at the monthly call. Simon and Xingdong are researchers at the Earlham Institute, and they are both tool-fund grantees, like Carles. They presented their project to the community and explained how they use Frictionless Data to make their large amount of data available, usable and interoperable for everyone.")]),e._v(" "),a("p",[e._v("The last call we had was in June, also featuring a tool-fund grantee: Nikhil Vats. Nikhil presented the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/13/data-package-for-intermine/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package integration he developed for InterMine"),a("OutboundLink")],1),e._v(", an open source biological data warehouse that creates databases of biological data accessed by sophisticated web query tools. Nikhil’s integration makes users’ queries more useful, as it describes all the fields of their query, specifically: name of field, type of field, class path, field and class ontology link."),a("br"),e._v("\nIn the same call, Michael Amadi announced the release of Data Blend, a great project using Frictionless Data. If you find it cool and would like to know more about it, read "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this case-study"),a("OutboundLink")],1),e._v(", but also make sure you don’t miss the October community call, because we will be hearing a presentation on it!")]),e._v(" "),a("p",[e._v("July’s call was canceled last minute, but it has been rescheduled to August 12th, and it’s going to be extremely interesting! In case you did not sign up yet, please do "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". We will be hearing from Dave Rowe (aka "),a("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Libraries Hacked"),a("OutboundLink")],1),e._v(") and how he uses Frictionless Data specs and standards for public libraries open data."),a("br"),e._v("\nThis first 2021 semester was also great because we "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/16/new-changes-to-the-website/",target:"_blank",rel:"noopener noreferrer"}},[e._v("completed our website redesign"),a("OutboundLink")],1),e._v(" and we added two great tools to the Frictionless Data toolkit: "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/21/frictionless-repository/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Repository"),a("OutboundLink")],1),e._v(". These tools get better and better everyday thanks to the precious contributions of the community. Thanks to you all, for making the Frictionless Data project so great. Nothing could have happened without you!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{672:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are halfway through 2021 (aka 2020 part two), and we thought it would be a good moment to look back at all that has happened in the Frictionless Community over these past 6 months. We’re so grateful for everyone in the community - thanks for your contributions, discussions, and participation! A big part of the community is our monthly call, so in case you’ve missed any of the community calls of 2021, here is a quick recap.")]),e._v(" "),a("p",[e._v("We started the year with a great presentation by Carles Pina i Estany. Carles is a very active member of our community and also a tool-fund grantee. He presented his tool-fund project: "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/18/schema-collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless schema-collaboration"),a("OutboundLink")],1),e._v(". What is that? It’s a system that uses Data Package Creator to enable data managers and researchers to create and share dataset schemas, edit them, post messages and export the schemas in different formats (like text, Markdown or PDF). It is a very useful tool because before researchers communicated with data managers via email for each data package they were publishing. Frictionless schema-collaboration makes it easy and faster to communicate.")]),e._v(" "),a("p",[e._v("February was a great month, we started "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/02/26/halfway-odi/#what-are-the-next-steps",target:"_blank",rel:"noopener noreferrer"}},[e._v("improving the documentation of the Frictionless Framework website"),a("OutboundLink")],1),e._v(" together with the community and we had a brilliant code demonstration of the newly-released Frictionless Python Framework by senior developer Evgeny Karev at the monthly community call. How great was that? That particular call broke the record of attendance, it was fantastic to have so many of you there! And in case you were not there, we recorded Evgeny’s demo and you can watch it on "),a("a",{attrs:{href:"LINK"}},[e._v("YouTube")]),e._v(".")]),e._v(" "),a("p",[e._v("March marked one year since the beginning of the Covid-19 pandemic in Europe and the Americas. It seemed fair to dedicate that community call to Covid-19 data, so we had Thorben Westerhuys presenting his project on Frictionless vaccination data. Thorben developed "),a("a",{attrs:{href:"https://github.com/n0rdlicht/rki-vaccination-scraper",target:"_blank",rel:"noopener noreferrer"}},[e._v("a spatiotemporal tracker for state level covid vaccination data in Germany"),a("OutboundLink")],1),e._v(" to solve the problems linked to governments publishing vaccination data not parsed for machines. His vaccination scraper takes that data, reformats it and makes it available to everyone in a structured, more machine readable form.")]),e._v(" "),a("p",[e._v("At the end of April we had an interactive session with the "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Fellows"),a("OutboundLink")],1),e._v(". Daniel Alcalá López, Kate Bowie, Katerina Drakoulaki, Anne Lee, Jacqueline Maasch, Evelyn Night and Samantha Wilairat took some time to tell the community about their journey through Open Science. They also shared with the community some of the things they learnt during their 9-months fellowship and how they plan to integrate them to their work. This cohort of fellows made us very proud, they were a true joy to work with. Keep an eye on them all, they will be leaders in Open Science! And in case you are interested in becoming a Frictionless Fellow, we are currently recruiting the 3rd cohort. More info on the programme and how to apply "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/02/apply-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("During the April call we also got a short presentation on instant APIs for small Frictionless Data-powered apps by Oleg Lavrovsky. Oleg is also an active member of our community, you have probably already met him at many of our calls.")]),e._v(" "),a("p",[e._v("May started gloriously with csv,conf, where we had two talks on Frictionless Data. One was by the Fellows, and the other one was by Simon Tyrrell. On top of the one at csv,conf, Simon gave a presentation together with Xingdong Bian about their "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/05/frictionless-data-for-wheat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Wheat project"),a("OutboundLink")],1),e._v(" at the monthly call. Simon and Xingdong are researchers at the Earlham Institute, and they are both tool-fund grantees, like Carles. They presented their project to the community and explained how they use Frictionless Data to make their large amount of data available, usable and interoperable for everyone.")]),e._v(" "),a("p",[e._v("The last call we had was in June, also featuring a tool-fund grantee: Nikhil Vats. Nikhil presented the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/13/data-package-for-intermine/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package integration he developed for InterMine"),a("OutboundLink")],1),e._v(", an open source biological data warehouse that creates databases of biological data accessed by sophisticated web query tools. Nikhil’s integration makes users’ queries more useful, as it describes all the fields of their query, specifically: name of field, type of field, class path, field and class ontology link."),a("br"),e._v("\nIn the same call, Michael Amadi announced the release of Data Blend, a great project using Frictionless Data. If you find it cool and would like to know more about it, read "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this case-study"),a("OutboundLink")],1),e._v(", but also make sure you don’t miss the October community call, because we will be hearing a presentation on it!")]),e._v(" "),a("p",[e._v("July’s call was canceled last minute, but it has been rescheduled to August 12th, and it’s going to be extremely interesting! In case you did not sign up yet, please do "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". We will be hearing from Dave Rowe (aka "),a("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Libraries Hacked"),a("OutboundLink")],1),e._v(") and how he uses Frictionless Data specs and standards for public libraries open data."),a("br"),e._v("\nThis first 2021 semester was also great because we "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/16/new-changes-to-the-website/",target:"_blank",rel:"noopener noreferrer"}},[e._v("completed our website redesign"),a("OutboundLink")],1),e._v(" and we added two great tools to the Frictionless Data toolkit: "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/21/frictionless-repository/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Repository"),a("OutboundLink")],1),e._v(". These tools get better and better everyday thanks to the precious contributions of the community. Thanks to you all, for making the Frictionless Data project so great. Nothing could have happened without you!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/14.0962b179.js b/assets/js/14.b66cad77.js similarity index 99% rename from assets/js/14.0962b179.js rename to assets/js/14.b66cad77.js index 0a192ceb3..74ae15d8d 100644 --- a/assets/js/14.0962b179.js +++ b/assets/js/14.b66cad77.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{431:function(e,t,a){e.exports=a.p+"assets/img/openml-dashboard-intro.4d6e718b.png"},432:function(e,t,a){e.exports=a.p+"assets/img/openml-upload-data.79f2aa75.png"},433:function(e,t,a){e.exports=a.p+"assets/img/openml-dataset-list.9aa35113.png"},434:function(e,t,a){e.exports=a.p+"assets/img/openml-dataset-overview.14685b05.png"},581:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("a",{attrs:{href:"http://openml.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenML"),o("OutboundLink")],1),e._v(" is an online platform and service for machine learning, whose goal is to make machine learning and data analysis simple, accessible, collaborative and open with an optimal division of labour between computers and humans. People can upload and share data sets and questions (prediction tasks) on OpenML that they then collaboratively solve using machine learning algorithms.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://www.youtube.com/embed/1N3qATxXrpE",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:a(431),alt:""}}),o("OutboundLink")],1),o("br"),e._v(" "),o("em",[e._v("A brief introduction to openML")])]),e._v(" "),o("p",[e._v("We offer "),o("a",{attrs:{href:"https://www.openml.org/guide/api",target:"_blank",rel:"noopener noreferrer"}},[e._v("open source tools"),o("OutboundLink")],1),e._v(" to download data into your "),o("a",{attrs:{href:"https://www.openml.org/guide/integrations",target:"_blank",rel:"noopener noreferrer"}},[e._v("favorite machine learning environments"),o("OutboundLink")],1),e._v(" and work with it. You can then upload your results back onto the platform so that others can learn from you. If you have data, you can use OpenML to get insights on what machine learning method works well to answer your question. Machine Learners can use OpenML to find interesting data sets and questions that are relevant for others and also for machine learning research (e.g. learning how algorithms behave on different types of data sets).")]),e._v(" "),o("p",[e._v("Users typically store their data in all kinds of formats, which makes it hard to simplify the data upload process on OpenML. Currently we only allow data in ARFF format. We are looking to make it as easy as possible for users to upload data, download and work with data from OpenML while keeping the datasets in machine readable formats and availing metadata in easy to read formats for our users. We also like to avail datasets from other services on OpenML. Most of these external sources currently contain data in varied formats, but some i.e. "),o("a",{attrs:{href:"https://data.world/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.world"),o("OutboundLink")],1),e._v(" have started adopting and using "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages"),o("OutboundLink")],1),e._v(". You can read more about data.world’s adoption and use of data packages "),o("RouterLink",{attrs:{to:"/blog/2017/04/11/dataworld/"}},[e._v("here")]),e._v(" and "),o("a",{attrs:{href:"https://meta.data.world/try-this-frictionless-data-world-ad36b6422ceb",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")],1),e._v(" "),o("p",[o("a",{attrs:{href:"https://biteable.com/watch/upload-data-to-openml-1575659/4500a42627a119f548c7cb0ec3ec4a25ee8a576f",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:a(432),alt:""}}),o("OutboundLink")],1),o("br"),e._v(" "),o("em",[e._v("Learn how to upload data on OpenML in 1 minute")])]),e._v(" "),o("p",[e._v("We first heard about the Frictionless Data project through "),o("a",{attrs:{href:"https://schoolofdata.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("School of Data"),o("OutboundLink")],1),e._v(". One of the OpenML core members is also involved in School of Data and used data packages in one of the open data workshops from School of Data Switzerland. In the coming months, we are looking to adopt "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data specifications"),o("OutboundLink")],1),e._v(" to improve user friendliness on OpenML. We hope to make it possible for users to upload and connect datasets in "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages format"),o("OutboundLink")],1),e._v(". This will be a great shift because it would enable people to easily build and share machine learning models trained on any dataset in the frictionless data ecosystem.")]),e._v(" "),o("p",[e._v("OpenML currently works with tabular data in Attribute Relation File Format ("),o("a",{attrs:{href:"https://weka.wikispaces.com/ARFF+%28stable+version%29",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARFF"),o("OutboundLink")],1),e._v(") accompanied by metadata in an XML or JSON file. It is actually very similar to Frictionless Data’s "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("tabular data package"),o("OutboundLink")],1),e._v(" specification, but with ARFF instead of csv.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(433),alt:""}}),o("br"),e._v(" "),o("em",[e._v("Image of dataset list on OpenML")])]),e._v(" "),o("p",[e._v("ARFF (Attribute-Relation File Format) is a CSV file with a header that lists the names of the attributes (columns) and their data types. Especially the latter is very important to do data analysis. For instance, say that you have a column with values 1,2,3. It is very important to know whether that is just a number (1,2,3 ice creams), a rank (1st, 2nd, 3rd place), or a category (item 1, item 2, item 3). This is missing from CSV data. ARFF also allows to connect multiple tables together, although we don’t really use this right now.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(434),alt:""}}),o("br"),e._v(" "),o("em",[e._v("Image of a dataset overview on openML")])]),e._v(" "),o("p",[e._v("The metadata is free-form information about the dataset. It is mostly key-value data, although some values are more structured. It is stored in our database and exported to simple JSON or XML. "),o("a",{attrs:{href:"https://www.openml.org/d/2/json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here’s an example"),o("OutboundLink")],1),e._v(". It covers basic information (textual description of the dataset, owner, format, license, et al) as well as statistics (number of instances, number of features, number of missing values, details about the data distribution, and results of simple machine learning algorithms run on the data), and summary statistics (mainly used for the quick overview plots).")]),e._v(" "),o("p",[e._v("We firmly believe that if data packages become the go-to specification for sharing data in scientific communities, accessibility to data that’s currently ‘hidden’ in data platforms and university libraries will improve vastly, and are keen to adopt and use the specification on OpenML in the coming months.")]),e._v(" "),o("p",[e._v("Interested in contributing to our quest to adopt the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package specification"),o("OutboundLink")],1),e._v(" as an import and export option for data on the OpenML platform? "),o("a",{attrs:{href:"https://github.com/openml/OpenML/issues/482",target:"_blank",rel:"noopener noreferrer"}},[e._v("Start here"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{431:function(e,t,a){e.exports=a.p+"assets/img/openml-dashboard-intro.4d6e718b.png"},432:function(e,t,a){e.exports=a.p+"assets/img/openml-upload-data.79f2aa75.png"},433:function(e,t,a){e.exports=a.p+"assets/img/openml-dataset-list.9aa35113.png"},434:function(e,t,a){e.exports=a.p+"assets/img/openml-dataset-overview.14685b05.png"},582:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("a",{attrs:{href:"http://openml.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenML"),o("OutboundLink")],1),e._v(" is an online platform and service for machine learning, whose goal is to make machine learning and data analysis simple, accessible, collaborative and open with an optimal division of labour between computers and humans. People can upload and share data sets and questions (prediction tasks) on OpenML that they then collaboratively solve using machine learning algorithms.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://www.youtube.com/embed/1N3qATxXrpE",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:a(431),alt:""}}),o("OutboundLink")],1),o("br"),e._v(" "),o("em",[e._v("A brief introduction to openML")])]),e._v(" "),o("p",[e._v("We offer "),o("a",{attrs:{href:"https://www.openml.org/guide/api",target:"_blank",rel:"noopener noreferrer"}},[e._v("open source tools"),o("OutboundLink")],1),e._v(" to download data into your "),o("a",{attrs:{href:"https://www.openml.org/guide/integrations",target:"_blank",rel:"noopener noreferrer"}},[e._v("favorite machine learning environments"),o("OutboundLink")],1),e._v(" and work with it. You can then upload your results back onto the platform so that others can learn from you. If you have data, you can use OpenML to get insights on what machine learning method works well to answer your question. Machine Learners can use OpenML to find interesting data sets and questions that are relevant for others and also for machine learning research (e.g. learning how algorithms behave on different types of data sets).")]),e._v(" "),o("p",[e._v("Users typically store their data in all kinds of formats, which makes it hard to simplify the data upload process on OpenML. Currently we only allow data in ARFF format. We are looking to make it as easy as possible for users to upload data, download and work with data from OpenML while keeping the datasets in machine readable formats and availing metadata in easy to read formats for our users. We also like to avail datasets from other services on OpenML. Most of these external sources currently contain data in varied formats, but some i.e. "),o("a",{attrs:{href:"https://data.world/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.world"),o("OutboundLink")],1),e._v(" have started adopting and using "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages"),o("OutboundLink")],1),e._v(". You can read more about data.world’s adoption and use of data packages "),o("RouterLink",{attrs:{to:"/blog/2017/04/11/dataworld/"}},[e._v("here")]),e._v(" and "),o("a",{attrs:{href:"https://meta.data.world/try-this-frictionless-data-world-ad36b6422ceb",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")],1),e._v(" "),o("p",[o("a",{attrs:{href:"https://biteable.com/watch/upload-data-to-openml-1575659/4500a42627a119f548c7cb0ec3ec4a25ee8a576f",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:a(432),alt:""}}),o("OutboundLink")],1),o("br"),e._v(" "),o("em",[e._v("Learn how to upload data on OpenML in 1 minute")])]),e._v(" "),o("p",[e._v("We first heard about the Frictionless Data project through "),o("a",{attrs:{href:"https://schoolofdata.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("School of Data"),o("OutboundLink")],1),e._v(". One of the OpenML core members is also involved in School of Data and used data packages in one of the open data workshops from School of Data Switzerland. In the coming months, we are looking to adopt "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data specifications"),o("OutboundLink")],1),e._v(" to improve user friendliness on OpenML. We hope to make it possible for users to upload and connect datasets in "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages format"),o("OutboundLink")],1),e._v(". This will be a great shift because it would enable people to easily build and share machine learning models trained on any dataset in the frictionless data ecosystem.")]),e._v(" "),o("p",[e._v("OpenML currently works with tabular data in Attribute Relation File Format ("),o("a",{attrs:{href:"https://weka.wikispaces.com/ARFF+%28stable+version%29",target:"_blank",rel:"noopener noreferrer"}},[e._v("ARFF"),o("OutboundLink")],1),e._v(") accompanied by metadata in an XML or JSON file. It is actually very similar to Frictionless Data’s "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("tabular data package"),o("OutboundLink")],1),e._v(" specification, but with ARFF instead of csv.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(433),alt:""}}),o("br"),e._v(" "),o("em",[e._v("Image of dataset list on OpenML")])]),e._v(" "),o("p",[e._v("ARFF (Attribute-Relation File Format) is a CSV file with a header that lists the names of the attributes (columns) and their data types. Especially the latter is very important to do data analysis. For instance, say that you have a column with values 1,2,3. It is very important to know whether that is just a number (1,2,3 ice creams), a rank (1st, 2nd, 3rd place), or a category (item 1, item 2, item 3). This is missing from CSV data. ARFF also allows to connect multiple tables together, although we don’t really use this right now.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(434),alt:""}}),o("br"),e._v(" "),o("em",[e._v("Image of a dataset overview on openML")])]),e._v(" "),o("p",[e._v("The metadata is free-form information about the dataset. It is mostly key-value data, although some values are more structured. It is stored in our database and exported to simple JSON or XML. "),o("a",{attrs:{href:"https://www.openml.org/d/2/json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here’s an example"),o("OutboundLink")],1),e._v(". It covers basic information (textual description of the dataset, owner, format, license, et al) as well as statistics (number of instances, number of features, number of missing values, details about the data distribution, and results of simple machine learning algorithms run on the data), and summary statistics (mainly used for the quick overview plots).")]),e._v(" "),o("p",[e._v("We firmly believe that if data packages become the go-to specification for sharing data in scientific communities, accessibility to data that’s currently ‘hidden’ in data platforms and university libraries will improve vastly, and are keen to adopt and use the specification on OpenML in the coming months.")]),e._v(" "),o("p",[e._v("Interested in contributing to our quest to adopt the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package specification"),o("OutboundLink")],1),e._v(" as an import and export option for data on the OpenML platform? "),o("a",{attrs:{href:"https://github.com/openml/OpenML/issues/482",target:"_blank",rel:"noopener noreferrer"}},[e._v("Start here"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/140.d5db7070.js b/assets/js/140.5e6ae68a.js similarity index 98% rename from assets/js/140.d5db7070.js rename to assets/js/140.5e6ae68a.js index 7f286d984..f12a4612a 100644 --- a/assets/js/140.d5db7070.js +++ b/assets/js/140.5e6ae68a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{672:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("What happens to scientific data after it is generated? The answer is complicated - sometimes that data is shared with other researchers, sometimes it is hidden away on a private hard drive. Sharing research data is a key part of open science, the movement to make research more accessible and usable by everyone to drive faster advances in science. A great way to share research data is to upload it to a repository, but simply uploading data is not the final step here. Ideally, the uploaded data will be of high quality - that is, it won’t have errors or missing data, and it will have enough descriptive information that other researchers can also use it! Over the last 6 months, we collaborated with the data repository Dryad to make it easier for researchers to upload their high quality data for sharing.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://datadryad.org/stash",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad"),t("OutboundLink")],1),e._v(" is a community-led data repository that allows researchers to submit data from any field, which not only promotes open science, but also helps researchers comply with open data policies from funders and journals. Because Dryad accepts all kinds of data, they need to curate that data for quality and ensure that the data does not present risk, and have comprehensive metadata to reuse the data. We quickly realized our shared goals, and formed a Pilot collaboration to add Frictionless validation functionality to the Dryad data upload page. Both teams agreed how important it is to give researchers immediate feedback about their data as they are submitting it so they can make edits in that moment, and learn about data best practices.")]),e._v(" "),t("p",[e._v("The outcome of this collaboration is a revamped upload page for the Dryad application. Researchers uploading tabular data (CSV, XLS, XLSX) under 25MB will have the files automatically validated using the Frictionless tool. These checks are based on the built-in validation of Frictionless Framework (read the validation guide "),t("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/validation-guide",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v("), and include checking for data errors such as blank cells, missing headers, or incorrectly formatted data. The Frictionless report will help guide researchers on which issues should be resolved, allowing researchers to edit and re-upload files before submitting their dataset for curation and publication.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/128690898-2095f1c7-060d-4398-ac92-33f65c068c4c.png",alt:"Screen Shot 2021-08-06 at 8 10 41 AM"}}),t("br"),e._v(" "),t("em",[e._v("When a data file is uploaded, researchers can see if the data passed the Tabular Data Checks or if there are any issues. Clicking to “View 1 Issues” shows more details describing the error.")])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/128690994-16be9845-59ec-4f3b-9b76-28a163dfa1e3.png",alt:"Screen Shot 2021-08-06 at 8 12 01 AM"}}),t("br"),e._v(" "),t("em",[e._v("This uploaded data file has a blank header. With this information, the researcher can fix the error and re-upload the data.")])]),e._v(" "),t("p",[e._v("This work was funded by the Sloan Foundation as part of the Frictionless Data for Reproducible Research project. This project was truly collaboratory - most of the technical work was completed by contractor Cassiano Reinert Novais dos Santos with supervision and support from the Dryad team: Daniella Lowenberg, Scott Fisher, Ryan Scherle, and the CDL UX team (Rachael Hu and John Kratz); as well as support from the Frictionless team, Evgeny Karev, Lilly Winfree, and Sara Petti. If you have any feedback on the Dryad upload page, please let us know!")])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{673:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("What happens to scientific data after it is generated? The answer is complicated - sometimes that data is shared with other researchers, sometimes it is hidden away on a private hard drive. Sharing research data is a key part of open science, the movement to make research more accessible and usable by everyone to drive faster advances in science. A great way to share research data is to upload it to a repository, but simply uploading data is not the final step here. Ideally, the uploaded data will be of high quality - that is, it won’t have errors or missing data, and it will have enough descriptive information that other researchers can also use it! Over the last 6 months, we collaborated with the data repository Dryad to make it easier for researchers to upload their high quality data for sharing.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://datadryad.org/stash",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad"),t("OutboundLink")],1),e._v(" is a community-led data repository that allows researchers to submit data from any field, which not only promotes open science, but also helps researchers comply with open data policies from funders and journals. Because Dryad accepts all kinds of data, they need to curate that data for quality and ensure that the data does not present risk, and have comprehensive metadata to reuse the data. We quickly realized our shared goals, and formed a Pilot collaboration to add Frictionless validation functionality to the Dryad data upload page. Both teams agreed how important it is to give researchers immediate feedback about their data as they are submitting it so they can make edits in that moment, and learn about data best practices.")]),e._v(" "),t("p",[e._v("The outcome of this collaboration is a revamped upload page for the Dryad application. Researchers uploading tabular data (CSV, XLS, XLSX) under 25MB will have the files automatically validated using the Frictionless tool. These checks are based on the built-in validation of Frictionless Framework (read the validation guide "),t("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/guides/validation-guide",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v("), and include checking for data errors such as blank cells, missing headers, or incorrectly formatted data. The Frictionless report will help guide researchers on which issues should be resolved, allowing researchers to edit and re-upload files before submitting their dataset for curation and publication.")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/128690898-2095f1c7-060d-4398-ac92-33f65c068c4c.png",alt:"Screen Shot 2021-08-06 at 8 10 41 AM"}}),t("br"),e._v(" "),t("em",[e._v("When a data file is uploaded, researchers can see if the data passed the Tabular Data Checks or if there are any issues. Clicking to “View 1 Issues” shows more details describing the error.")])]),e._v(" "),t("p",[t("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/128690994-16be9845-59ec-4f3b-9b76-28a163dfa1e3.png",alt:"Screen Shot 2021-08-06 at 8 12 01 AM"}}),t("br"),e._v(" "),t("em",[e._v("This uploaded data file has a blank header. With this information, the researcher can fix the error and re-upload the data.")])]),e._v(" "),t("p",[e._v("This work was funded by the Sloan Foundation as part of the Frictionless Data for Reproducible Research project. This project was truly collaboratory - most of the technical work was completed by contractor Cassiano Reinert Novais dos Santos with supervision and support from the Dryad team: Daniella Lowenberg, Scott Fisher, Ryan Scherle, and the CDL UX team (Rachael Hu and John Kratz); as well as support from the Frictionless team, Evgeny Karev, Lilly Winfree, and Sara Petti. If you have any feedback on the Dryad upload page, please let us know!")])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/141.b4624c5c.js b/assets/js/141.c3c7f0da.js similarity index 98% rename from assets/js/141.b4624c5c.js rename to assets/js/141.c3c7f0da.js index e3da9e494..4a7d79cb8 100644 --- a/assets/js/141.b4624c5c.js +++ b/assets/js/141.c3c7f0da.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{673:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on August 12"),r("sup",[e._v("th")]),e._v(" we had Dave Rowe (aka Libraries Hacked) giving a presentation on Frictionless Data standards and tooling for public libraries’ data.")]),e._v(" "),r("p",[e._v("Libraries Hacked is a project promoting open data in libraries and creating digital prototypes from that data. Public libraries hold a lot of data, but this data is often not shared and it is lacking common standards for data sharing. With the introduction of data schemas, Dave developed a series of tools to show libraries what they could do with their data. For example, Dave demonstrated membership mapping, libraries maps and a "),r("a",{attrs:{href:"https://www.mobilelibraries.org/map",target:"_blank",rel:"noopener noreferrer"}},[e._v("mobile libraries dashboard"),r("OutboundLink")],1),e._v(" that displays mobile libraries vans, estimates their location and automatically generates paper timelines.")]),e._v(" "),r("p",[e._v("You can learn more about the Libraries Hacked project "),r("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about what you can do with Frictionless library data, , you can watch Dave Rowe’ presentation here::")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/R0U9Iwd8J00",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("h3",{attrs:{id:"frictionless-hackathon-in-october"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-hackathon-in-october"}},[e._v("#")]),e._v(" Frictionless Hackathon in October!")]),e._v(" "),r("p",[e._v("Join the Frictionless Data community for a two-day virtual event to create new project prototypes based on existing Frictionless open source code. It’s going to be fun!"),r("br"),e._v("\nWe need to decide on a date to hold this event, and are currently considering Thursday and Fridays in October. You can vote on Discord."),r("br"),e._v("\nKeep an eye on the website for more info: "),r("a",{attrs:{href:"https://frictionlessdata.io/hackathon/#what-s-a-hackathon",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.io/hackathon/#what-s-a-hackathon"),r("OutboundLink")],1)]),e._v(" "),r("h3",{attrs:{id:"recruiting-the-3rd-cohort-of-frictionless-fellows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recruiting-the-3rd-cohort-of-frictionless-fellows"}},[e._v("#")]),e._v(" Recruiting the 3rd cohort of Frictionless Fellows")]),e._v(" "),r("p",[e._v("Are you an early career researcher interested in Open Science? We are recruiting the 3rd cohort of Frictionless Fellows! During their 9-month Fellowship, Fellows will lead training workshops, host events at universities and in labs, and write blogs and other communications content. You will be mentored by Frictionless Data product manager Lilly Winfree, PhD and we will help you learn Frictionless Data tooling and software. Applications are open until August 31"),r("sup",[e._v("st")]),e._v("."),r("br"),e._v("\nMore info "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/02/apply-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),r("br"),e._v("\nYou can apply via this "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSdR1Qz5GL5A1BrqgFxDBOXScvNoS5AeyCWixNwtcApXUttT8Q/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h1",{attrs:{id:"join-us-in-2-weeks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-2-weeks"}},[e._v("#")]),e._v(" Join us in 2 weeks!")]),e._v(" "),r("p",[e._v("Yes, that’s right, August is our lucky month, we don’t have one, but two community calls! Our next meeting will be in just 2 weeks, on August 26"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from"),r("br"),e._v("\nAmber York and Adam Shepherd from BCO-DMO on Frictionless Data Pipelines. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/IGhcP2dDNIg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{674:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last Frictionless Data community call on August 12"),r("sup",[e._v("th")]),e._v(" we had Dave Rowe (aka Libraries Hacked) giving a presentation on Frictionless Data standards and tooling for public libraries’ data.")]),e._v(" "),r("p",[e._v("Libraries Hacked is a project promoting open data in libraries and creating digital prototypes from that data. Public libraries hold a lot of data, but this data is often not shared and it is lacking common standards for data sharing. With the introduction of data schemas, Dave developed a series of tools to show libraries what they could do with their data. For example, Dave demonstrated membership mapping, libraries maps and a "),r("a",{attrs:{href:"https://www.mobilelibraries.org/map",target:"_blank",rel:"noopener noreferrer"}},[e._v("mobile libraries dashboard"),r("OutboundLink")],1),e._v(" that displays mobile libraries vans, estimates their location and automatically generates paper timelines.")]),e._v(" "),r("p",[e._v("You can learn more about the Libraries Hacked project "),r("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about what you can do with Frictionless library data, , you can watch Dave Rowe’ presentation here::")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/R0U9Iwd8J00",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),r("h3",{attrs:{id:"frictionless-hackathon-in-october"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-hackathon-in-october"}},[e._v("#")]),e._v(" Frictionless Hackathon in October!")]),e._v(" "),r("p",[e._v("Join the Frictionless Data community for a two-day virtual event to create new project prototypes based on existing Frictionless open source code. It’s going to be fun!"),r("br"),e._v("\nWe need to decide on a date to hold this event, and are currently considering Thursday and Fridays in October. You can vote on Discord."),r("br"),e._v("\nKeep an eye on the website for more info: "),r("a",{attrs:{href:"https://frictionlessdata.io/hackathon/#what-s-a-hackathon",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.io/hackathon/#what-s-a-hackathon"),r("OutboundLink")],1)]),e._v(" "),r("h3",{attrs:{id:"recruiting-the-3rd-cohort-of-frictionless-fellows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#recruiting-the-3rd-cohort-of-frictionless-fellows"}},[e._v("#")]),e._v(" Recruiting the 3rd cohort of Frictionless Fellows")]),e._v(" "),r("p",[e._v("Are you an early career researcher interested in Open Science? We are recruiting the 3rd cohort of Frictionless Fellows! During their 9-month Fellowship, Fellows will lead training workshops, host events at universities and in labs, and write blogs and other communications content. You will be mentored by Frictionless Data product manager Lilly Winfree, PhD and we will help you learn Frictionless Data tooling and software. Applications are open until August 31"),r("sup",[e._v("st")]),e._v("."),r("br"),e._v("\nMore info "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/02/apply-fellows/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),r("br"),e._v("\nYou can apply via this "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSdR1Qz5GL5A1BrqgFxDBOXScvNoS5AeyCWixNwtcApXUttT8Q/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("form"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h1",{attrs:{id:"join-us-in-2-weeks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-2-weeks"}},[e._v("#")]),e._v(" Join us in 2 weeks!")]),e._v(" "),r("p",[e._v("Yes, that’s right, August is our lucky month, we don’t have one, but two community calls! Our next meeting will be in just 2 weeks, on August 26"),r("sup",[e._v("th")]),e._v(". We will hear a presentation from"),r("br"),e._v("\nAmber York and Adam Shepherd from BCO-DMO on Frictionless Data Pipelines. You can sign up "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/IGhcP2dDNIg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/143.c25563e2.js b/assets/js/143.6495e26e.js similarity index 98% rename from assets/js/143.c25563e2.js rename to assets/js/143.6495e26e.js index b33300574..846ba6e55 100644 --- a/assets/js/143.c25563e2.js +++ b/assets/js/143.6495e26e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{674:function(e,t,o){"use strict";o.r(t);var r=o(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("The Frictionless Data Online Hackathon is fast approaching and we just can’t wait for it to start!")]),e._v(" "),o("p",[e._v("If you are not sure yet whether to participate or not, bear in mind that it will be a great opportunity to test some of the newest Frictionless tools, like Livemark, Repository, play around with Frictionless-py and other new Frictionless code. It will also be a great chance for you to meet other Frictionless users and contributors from all around the world and build a project prototype together.")]),e._v(" "),o("p",[o("strong",[e._v("Not convinced yet? Go and explore the proposed projects on the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dashboard"),o("OutboundLink")],1),e._v("! You will see, there is a project for every taste, so surely there must be one that sounds right for you!")])]),e._v(" "),o("p",[e._v("Are you a big fan of geodata? In that case you will probably want to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/9",target:"_blank",rel:"noopener noreferrer"}},[e._v("frictionless-geojson team"),o("OutboundLink")],1),e._v(", who is planning to create a frictionless-py plugin to add support for reading, writing and inlining geojson. If you are a devoted CKAN user who would like to see more Frictionless functionalities in it, you may decide to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/8",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data package manager for CKAN project"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("In case you read our "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog about Livemark"),o("OutboundLink")],1),e._v(" and have been intrigued by this new Frictionless tool ever since, your moment has come! You can finally try it out by joining the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/11",target:"_blank",rel:"noopener noreferrer"}},[e._v("Citation Context Reports"),o("OutboundLink")],1),e._v(", the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dataset List"),o("OutboundLink")],1),e._v(" project, or the "),o("a",{attrs:{href:"http://frictionless-hackathon.herokuapp.com/project/12",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Community Insights"),o("OutboundLink")],1),e._v(" project. If you are interested in datasets discoverability and linkage, you may want to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("Things not Datasets"),o("OutboundLink")],1),e._v(" team.")]),e._v(" "),o("p",[e._v("Oh, and please let us know in advance if you are a big bugs smasher! You will be a coveted participant for all projects and we need to make sure everybody gets a fair share of your skills, including us in our effort to improve the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Python Framework"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("But enough of describing the projects, instead hear about them directly from the people who proposed them:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kO0YflqQQzI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("Hurry up to register for the hackathon if you haven’t done so yet, you can do it only until the end of this week via "),o("a",{attrs:{href:"https://forms.gle/Xr4gcnQnhShMJrWeA",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("More information on the Frictionless Data Hackathon is available on the "),o("a",{attrs:{href:"https://frictionlessdata.io/hackathon/",target:"_blank",rel:"noopener noreferrer"}},[e._v("dedicated webpage"),o("OutboundLink")],1),e._v(". You can also follow news on the day itself through "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(": #FrictionlessHackathon and #FrictionlessHack2021.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{676:function(e,t,o){"use strict";o.r(t);var r=o(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("The Frictionless Data Online Hackathon is fast approaching and we just can’t wait for it to start!")]),e._v(" "),o("p",[e._v("If you are not sure yet whether to participate or not, bear in mind that it will be a great opportunity to test some of the newest Frictionless tools, like Livemark, Repository, play around with Frictionless-py and other new Frictionless code. It will also be a great chance for you to meet other Frictionless users and contributors from all around the world and build a project prototype together.")]),e._v(" "),o("p",[o("strong",[e._v("Not convinced yet? Go and explore the proposed projects on the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dashboard"),o("OutboundLink")],1),e._v("! You will see, there is a project for every taste, so surely there must be one that sounds right for you!")])]),e._v(" "),o("p",[e._v("Are you a big fan of geodata? In that case you will probably want to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/9",target:"_blank",rel:"noopener noreferrer"}},[e._v("frictionless-geojson team"),o("OutboundLink")],1),e._v(", who is planning to create a frictionless-py plugin to add support for reading, writing and inlining geojson. If you are a devoted CKAN user who would like to see more Frictionless functionalities in it, you may decide to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/8",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data package manager for CKAN project"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("In case you read our "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog about Livemark"),o("OutboundLink")],1),e._v(" and have been intrigued by this new Frictionless tool ever since, your moment has come! You can finally try it out by joining the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/11",target:"_blank",rel:"noopener noreferrer"}},[e._v("Citation Context Reports"),o("OutboundLink")],1),e._v(", the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dataset List"),o("OutboundLink")],1),e._v(" project, or the "),o("a",{attrs:{href:"http://frictionless-hackathon.herokuapp.com/project/12",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Community Insights"),o("OutboundLink")],1),e._v(" project. If you are interested in datasets discoverability and linkage, you may want to join the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("Things not Datasets"),o("OutboundLink")],1),e._v(" team.")]),e._v(" "),o("p",[e._v("Oh, and please let us know in advance if you are a big bugs smasher! You will be a coveted participant for all projects and we need to make sure everybody gets a fair share of your skills, including us in our effort to improve the "),o("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/project/4",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Python Framework"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("But enough of describing the projects, instead hear about them directly from the people who proposed them:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kO0YflqQQzI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("Hurry up to register for the hackathon if you haven’t done so yet, you can do it only until the end of this week via "),o("a",{attrs:{href:"https://forms.gle/Xr4gcnQnhShMJrWeA",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("More information on the Frictionless Data Hackathon is available on the "),o("a",{attrs:{href:"https://frictionlessdata.io/hackathon/",target:"_blank",rel:"noopener noreferrer"}},[e._v("dedicated webpage"),o("OutboundLink")],1),e._v(". You can also follow news on the day itself through "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(": #FrictionlessHackathon and #FrictionlessHack2021.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/144.ec36c430.js b/assets/js/144.4c70106f.js similarity index 98% rename from assets/js/144.ec36c430.js rename to assets/js/144.4c70106f.js index f6f031f94..5fa790b8c 100644 --- a/assets/js/144.ec36c430.js +++ b/assets/js/144.4c70106f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{676:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last Frictionless Data community call on September 30"),a("sup",[e._v("th")]),e._v(" we had Daniella Lowenberg from Dryad and developer Cassiano Reinert Novais dos Santos giving a presentation on the Frictionless Data integration into Dryad.")]),e._v(" "),a("p",[e._v("Dryad is a community-led repository that makes research data discoverable, freely reusable, and citable. To ensure the quality of the submitted data, Dryad needs to curate it. It therefore made total sense to integrate the Frictionless Data validation functionality to its uploading page.")]),e._v(" "),a("p",[e._v("A pilot was started at the beginning of 2021 to add an automatic tabular data validation check to all uploaded files under 25MB, and it went live in June 2021. Since then, more than 11000 research data files have been validated, and around 1000 failed the validation test. 98,4% of the researchers whose files failed, managed to fix their errors easily and resubmit their data.")]),e._v(" "),a("p",[e._v("All the code of the Frictionless Data integration is open source and lives in the "),a("a",{attrs:{href:"https://github.com/orgs/CDL-Dryad/repositories",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad GitHub repository"),a("OutboundLink")],1),e._v(", so go and have a look if you want and please let us know if you have any feedback.")]),e._v(" "),a("p",[e._v("You can learn more on the project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/09/dryad-pilot/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless Data validation functionality integrated into Dryad, you can watch Daniella Lowenberg’s and Cassiano Reinert Novais dos Santos’ presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/IHVUjWGh2oY",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("h3",{attrs:{id:"frictionless-hackathon-on-7-8-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-hackathon-on-7-8-october"}},[e._v("#")]),e._v(" Frictionless Hackathon on 7-8 October!")]),e._v(" "),a("p",[e._v("Join the Frictionless Data community for a two-day virtual event to create new project prototypes based on existing Frictionless open source code. It’s going to be fun!"),a("br"),e._v("\nGo and explore the dashboard to know more about all the projects we plan to work on."),a("br"),e._v("\nFor general information, just go to the "),a("a",{attrs:{href:"https://frictionlessdata.io/hackathon/",target:"_blank",rel:"noopener noreferrer"}},[e._v("dedicated page"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nWe are accepting last minute registrations "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("via this form"),a("OutboundLink")],1),e._v(", so hurry up if you want to be on board!")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Our next meeting will be on October 28"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from Michael Amadi on Open Data Blend datasets powered by Frictionless Data.")]),e._v(" "),a("p",[e._v("Ahead of our next call, you can learn more about Open Data Blend "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/V3SJcq_XYIA",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{678:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last Frictionless Data community call on September 30"),a("sup",[e._v("th")]),e._v(" we had Daniella Lowenberg from Dryad and developer Cassiano Reinert Novais dos Santos giving a presentation on the Frictionless Data integration into Dryad.")]),e._v(" "),a("p",[e._v("Dryad is a community-led repository that makes research data discoverable, freely reusable, and citable. To ensure the quality of the submitted data, Dryad needs to curate it. It therefore made total sense to integrate the Frictionless Data validation functionality to its uploading page.")]),e._v(" "),a("p",[e._v("A pilot was started at the beginning of 2021 to add an automatic tabular data validation check to all uploaded files under 25MB, and it went live in June 2021. Since then, more than 11000 research data files have been validated, and around 1000 failed the validation test. 98,4% of the researchers whose files failed, managed to fix their errors easily and resubmit their data.")]),e._v(" "),a("p",[e._v("All the code of the Frictionless Data integration is open source and lives in the "),a("a",{attrs:{href:"https://github.com/orgs/CDL-Dryad/repositories",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad GitHub repository"),a("OutboundLink")],1),e._v(", so go and have a look if you want and please let us know if you have any feedback.")]),e._v(" "),a("p",[e._v("You can learn more on the project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/09/dryad-pilot/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about the Frictionless Data validation functionality integrated into Dryad, you can watch Daniella Lowenberg’s and Cassiano Reinert Novais dos Santos’ presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/IHVUjWGh2oY",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("h3",{attrs:{id:"frictionless-hackathon-on-7-8-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-hackathon-on-7-8-october"}},[e._v("#")]),e._v(" Frictionless Hackathon on 7-8 October!")]),e._v(" "),a("p",[e._v("Join the Frictionless Data community for a two-day virtual event to create new project prototypes based on existing Frictionless open source code. It’s going to be fun!"),a("br"),e._v("\nGo and explore the dashboard to know more about all the projects we plan to work on."),a("br"),e._v("\nFor general information, just go to the "),a("a",{attrs:{href:"https://frictionlessdata.io/hackathon/",target:"_blank",rel:"noopener noreferrer"}},[e._v("dedicated page"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nWe are accepting last minute registrations "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("via this form"),a("OutboundLink")],1),e._v(", so hurry up if you want to be on board!")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Our next meeting will be on October 28"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from Michael Amadi on Open Data Blend datasets powered by Frictionless Data.")]),e._v(" "),a("p",[e._v("Ahead of our next call, you can learn more about Open Data Blend "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/V3SJcq_XYIA",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/146.e3253dea.js b/assets/js/146.6e7c9a8b.js similarity index 98% rename from assets/js/146.e3253dea.js rename to assets/js/146.6e7c9a8b.js index 5e1c99489..0b7bd52d8 100644 --- a/assets/js/146.e3253dea.js +++ b/assets/js/146.6e7c9a8b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{678:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last Frictionless Data community call on October 28"),a("sup",[e._v("th")]),e._v(" we had Michael Amadi from Nimble Learn giving a presentation on Open Data Blend and their Frictionless Data journey.")]),e._v(" "),a("p",[e._v("Open Data Blend is a set of open data services that aim to make large and complex UK open data easier to analyse. The Open Data Blend datasets have two interfaces: a UI and an API, both powered by Frictionless Data. The datasets themselves are built on top of three Frictionless Data specifications: data package, data resource and table schema; and they incorporate some Frictionless Data patterns.")]),e._v(" "),a("p",[e._v("The project addresses some of the main open data challenges:")]),e._v(" "),a("ul",[a("li",[e._v("Large data volumes that are difficult to manage due to their size")]),e._v(" "),a("li",[e._v("Overwhelming complexity in data analysis")]),e._v(" "),a("li",[e._v("Open data shared in sub-optimal file formats for data analysis (e.g. PDFs)")]),e._v(" "),a("li",[e._v("When companies and organisation aggregate data, refine it and add value to it, they often don’t openly share the cleaned data")])]),e._v(" "),a("p",[e._v("You can learn more on the project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about how Open Data Blend uses the Frictionless Data toolkit, you can watch Michael Amadi’s presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/avAXe3SUEKI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("ul",[a("li",[e._v("Senior developer Evgeny Karev presented Livemark at PyData on October 29"),a("sup",[e._v("th")]),e._v(". If you missed it and want to have a look, check out the recording "),a("a",{attrs:{href:"https://zoom.us/rec/play/yyFTEAW3_v4cPGUNbiHS95-vlgICgNYeVdK_N9VHOdHxLDoKbTE9EZvbVpZMjIV8-WAr3qmZ9vZPoVsU.QXvKRI1hOrCwv8Lg?startTime=1635487241000&_x_zm_rtaid=iuuaYWHFSEec21FRLG7Cig.1635861744121.d2b5a7e329a988e4ea49b64e3d6e66b6&_x_zm_rhtaid=460",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" (for Livemark jump at 1:03:03).")]),e._v(" "),a("li",[e._v("The third cohort of Frictionless Fellows has officially kicked off mid-October. You will get to meet them next year during one of our community calls. Meanwhile, stay tuned to know more about them!")]),e._v(" "),a("li",[e._v("We don’t have any presentation planned for the December community call yet. Would you like to present something? Drop us a line to let us know!")])]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is one week earlier than usual (to avoid conflict with American Thanksgiving), on November 18"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from Peter Desmet on Frictionless Data exchange format for camera trapping data.")]),e._v(" "),a("p",[e._v("You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MFffZRM8qjs",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{679:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last Frictionless Data community call on October 28"),a("sup",[e._v("th")]),e._v(" we had Michael Amadi from Nimble Learn giving a presentation on Open Data Blend and their Frictionless Data journey.")]),e._v(" "),a("p",[e._v("Open Data Blend is a set of open data services that aim to make large and complex UK open data easier to analyse. The Open Data Blend datasets have two interfaces: a UI and an API, both powered by Frictionless Data. The datasets themselves are built on top of three Frictionless Data specifications: data package, data resource and table schema; and they incorporate some Frictionless Data patterns.")]),e._v(" "),a("p",[e._v("The project addresses some of the main open data challenges:")]),e._v(" "),a("ul",[a("li",[e._v("Large data volumes that are difficult to manage due to their size")]),e._v(" "),a("li",[e._v("Overwhelming complexity in data analysis")]),e._v(" "),a("li",[e._v("Open data shared in sub-optimal file formats for data analysis (e.g. PDFs)")]),e._v(" "),a("li",[e._v("When companies and organisation aggregate data, refine it and add value to it, they often don’t openly share the cleaned data")])]),e._v(" "),a("p",[e._v("You can learn more on the project "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/07/12/open-data-blend/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you would like to dive deeper and discover all about how Open Data Blend uses the Frictionless Data toolkit, you can watch Michael Amadi’s presentation here:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/avAXe3SUEKI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("ul",[a("li",[e._v("Senior developer Evgeny Karev presented Livemark at PyData on October 29"),a("sup",[e._v("th")]),e._v(". If you missed it and want to have a look, check out the recording "),a("a",{attrs:{href:"https://zoom.us/rec/play/yyFTEAW3_v4cPGUNbiHS95-vlgICgNYeVdK_N9VHOdHxLDoKbTE9EZvbVpZMjIV8-WAr3qmZ9vZPoVsU.QXvKRI1hOrCwv8Lg?startTime=1635487241000&_x_zm_rtaid=iuuaYWHFSEec21FRLG7Cig.1635861744121.d2b5a7e329a988e4ea49b64e3d6e66b6&_x_zm_rhtaid=460",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" (for Livemark jump at 1:03:03).")]),e._v(" "),a("li",[e._v("The third cohort of Frictionless Fellows has officially kicked off mid-October. You will get to meet them next year during one of our community calls. Meanwhile, stay tuned to know more about them!")]),e._v(" "),a("li",[e._v("We don’t have any presentation planned for the December community call yet. Would you like to present something? Drop us a line to let us know!")])]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is one week earlier than usual (to avoid conflict with American Thanksgiving), on November 18"),a("sup",[e._v("th")]),e._v(". We will hear a presentation from Peter Desmet on Frictionless Data exchange format for camera trapping data.")]),e._v(" "),a("p",[e._v("You can sign up "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MFffZRM8qjs",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/148.f186d227.js b/assets/js/148.b72ccf39.js similarity index 99% rename from assets/js/148.f186d227.js rename to assets/js/148.b72ccf39.js index 528746cb4..82a0e7a39 100644 --- a/assets/js/148.f186d227.js +++ b/assets/js/148.b72ccf39.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{679:function(e,a,t){"use strict";t.r(a);var i=t(29),r=Object(i.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("We are very excited to introduce you to the 3rd cohort of "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Reproducible Research Fellows"),t("OutboundLink")],1),e._v("! Over the coming months, this group of six early career researchers will be learning about open science, data management, and how to use Frictionless Data tooling in their work to make their data more open and their research more reusable. Keep an eye on them, as they are on their way to becoming champions of reproducibility! For now, go and read the introductory blogs they wrote about themselves to know more about them and their goals for this fellowship.")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/GQ.jpeg",width:"200px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi, everyone! My name is Guo-Qiang Zhang")]),e._v(", and I am from China. Right after I finished my residency training in Pediatrics, I joined Prof Bright I. Nwaru’s group and started my doctoral studies at Krefting Research Centre in University of Gothenburg (Sweden). My doctoral project is to look at the effects of sex hormones on women’s health (especially asthma), utilizing epidemiological methods as well as evidence synthesis tools (e.g., systematic review, umbrella review).")]),e._v(" "),t("p",[e._v("In my first year of doctoral studies, I had the opportunity to participate in the course “Reproducibility in Medical Research” led by Prof Nwaru. It was my first time to hear about Open Science and research reproducibility. As a “fresh” full-time doctoral student full of passion for medical research, I felt overwhelmed by waves of frustration when I came to know the reproducibility crisis. After spending some time with my frustration, I came to realize that in fact I can do something. In my first project, my colleagues and I conducted an umbrella review on a highly controversial topic on the impact of menopausal hormone therapy on women’s health. We put extensive efforts into making the review process as transparent as possible: we developed beforehand protocols for data extraction and statistical analysis, documented key steps of the review process, verified data in the published literature, and made all datasets and R scripts publicly available."),t("br"),e._v("\nTo keep on reading about Guo-Qiang click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-guo-qiang/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Victoria.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi all! My name is Victoria")]),e._v(". I’m a physics graduate student and recovering engineer living in Berlin. I grew up mainly in my family’s native country of Singapore, but consider myself an American, and am still workshopping a straightforward answer to “where are you from.”")]),e._v(" "),t("p",[e._v("In my past life I worked in materials QA testing; currently, I’m at the German Aerospace Centre designing laser systems in the THz range - a type of non-visible light that hangs out on the electromagnetic spectrum between infrared and microwave.")]),e._v(" "),t("p",[e._v("My Open Science journey has just begun and I’m stoked! I started to get interested in topics around data transparency and accessibility after a series of escalating frustrations with information dynamics in medical technology, beginning in my own field of gas sensing, then discovering similar disparities in tangential fields."),t("br"),e._v("\nRead more about Victoria "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-victoria/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Zarena.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hello everybody! My name is Zarena")]),e._v(". I grew up in the Kyrgyz Republic, yet spent half of my life studying and working abroad. Currently, I am a Research Assistant for the project Creating Culturally Appropriate Research Ethics in Central Asia (CARE) at Nazarbayev University in Kazakhstan. I am also a Mad activist and an interdisciplinary human rights researcher. I like to consider my research activities going beyond academia to encompass and make an effect on broader socio-political structures.")]),e._v(" "),t("p",[e._v("Although I believe that life would not progress without frictions, when it comes to science and research, I feel, ‘frictions’ - manifested in a form of paywalls, bureaucratic and corporate management, or other structural barriers - should be deconstructed. So, I am joining the Frictionless Data Fellowship Programme with the purpose to learn more about open and FAIR research."),t("br"),e._v("\nLearn more about Zarena "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-zarena/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Melvin.jpeg",width:"120px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi everyone, my name is Melvin Ochieng")]),e._v(", and I’m a pathologist and up-coming soil scientist. I was born in Kenya in a town called Eldoret that is famous for producing Kenyan marathon champions. I was raised in Kenya in my early childhood days and in Tanzania afterwards. I like to consider myself both Kenyan and Tanzanian at heart because the two countries took part in molding the person I am today. I am currently a masters student at University of Mohammed VI polytechnic in Morocco, studying fertilizer science and technology. Over the past two years, my research focused on potato cyst nematode (PCN) which is a quarantine pest that had been reported in Kenya in 2015.")]),e._v(" "),t("p",[e._v("I’m excited to start this journey as a Frictionless Data fellow with my fellows for this cohort. I just recently found out about open science and I couldn’t be more excited to learn more about this concept and how it will influence me as a researcher. Advancement in technology has opened up the world in so many ways and made possible extensive networks for collaborations globally. Notably, the problems the world is facing today require a global/collaborative approach to solve. Therefore, reproducible research is of key importance in promoting this collaboration."),t("br"),e._v("\nTo know more about Melvin click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-melvin/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Kevin-Photo.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hello! My name is Kevin Kidambasi")]),e._v("(KK). I was born and raised in Vihiga County of western Kenya. Currently, I live in Nairobi, the capital city of Kenya. I am a master’s student in Jomo Kenyatta University of Agriculture and Technology (JKUAT) registered at the department of Biochemistry. My MSc research at the International Centre of Insect Physiology and Ecology (icipe) focuses on the role of haematophagous camel-specific biting keds (Hippobosca camelina) in disease transmission in Laisamis, Marsabit County of northern Kenya. My broad research interest focuses on studying host-pathogen interactions to understand infection mechanisms of diseases in order to discover novel control and treatment targets.")]),e._v(" "),t("p",[e._v("I am interested in improving research reproducibility because it allows other researchers to confirm the accuracy of my data and correct any bias as well as validate the relevance of the conclusions drawn from the results. This also allows data to be analyzed in different ways and thus, give new insights and lead the research in new directions. In addition, improving research reproducibility would allow the scientific community to understand how the conclusions of a study were made and pinpoint out any mistakes in data analyses. In general, research reproducibility enhances openness, research collaboration, and data accessibility which in turn increase public trust in science and hence permits their participation and support for research. This enables public understanding of how research is conducted and its importance."),t("br"),e._v("\nRead more about Kevin "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-kevin/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Lindsay.jpeg",width:"120px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Greetings! My name is Lindsay Gypin")]),e._v(", she/her. I grew up in Denver, Colorado and began my career as a K-12 educator. I taught high school English and worked as a school librarian before becoming disillusioned with the politicization of public education and determining my skills were better suited for work in public libraries. Attending library school after having worked in libraries for so many years, I found myself drawn to courses in the research data management track of librarianship, and in qualitative research methods.I recently became a Data Services Librarian at the University of North Carolina Greensboro, where I hope to assist scholars in making their research data more open and accessible.")]),e._v(" "),t("p",[e._v("For some time, I have wanted to build a reproducible workflow to uncover systemic bias in library catalogs. I’m hoping the Fellows Programme will help me build the foundation to do so."),t("br"),e._v("\nTo learn more about Lindsay click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-lindsay/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{682:function(e,a,t){"use strict";t.r(a);var i=t(29),r=Object(i.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("We are very excited to introduce you to the 3rd cohort of "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Reproducible Research Fellows"),t("OutboundLink")],1),e._v("! Over the coming months, this group of six early career researchers will be learning about open science, data management, and how to use Frictionless Data tooling in their work to make their data more open and their research more reusable. Keep an eye on them, as they are on their way to becoming champions of reproducibility! For now, go and read the introductory blogs they wrote about themselves to know more about them and their goals for this fellowship.")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/GQ.jpeg",width:"200px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi, everyone! My name is Guo-Qiang Zhang")]),e._v(", and I am from China. Right after I finished my residency training in Pediatrics, I joined Prof Bright I. Nwaru’s group and started my doctoral studies at Krefting Research Centre in University of Gothenburg (Sweden). My doctoral project is to look at the effects of sex hormones on women’s health (especially asthma), utilizing epidemiological methods as well as evidence synthesis tools (e.g., systematic review, umbrella review).")]),e._v(" "),t("p",[e._v("In my first year of doctoral studies, I had the opportunity to participate in the course “Reproducibility in Medical Research” led by Prof Nwaru. It was my first time to hear about Open Science and research reproducibility. As a “fresh” full-time doctoral student full of passion for medical research, I felt overwhelmed by waves of frustration when I came to know the reproducibility crisis. After spending some time with my frustration, I came to realize that in fact I can do something. In my first project, my colleagues and I conducted an umbrella review on a highly controversial topic on the impact of menopausal hormone therapy on women’s health. We put extensive efforts into making the review process as transparent as possible: we developed beforehand protocols for data extraction and statistical analysis, documented key steps of the review process, verified data in the published literature, and made all datasets and R scripts publicly available."),t("br"),e._v("\nTo keep on reading about Guo-Qiang click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-guo-qiang/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Victoria.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi all! My name is Victoria")]),e._v(". I’m a physics graduate student and recovering engineer living in Berlin. I grew up mainly in my family’s native country of Singapore, but consider myself an American, and am still workshopping a straightforward answer to “where are you from.”")]),e._v(" "),t("p",[e._v("In my past life I worked in materials QA testing; currently, I’m at the German Aerospace Centre designing laser systems in the THz range - a type of non-visible light that hangs out on the electromagnetic spectrum between infrared and microwave.")]),e._v(" "),t("p",[e._v("My Open Science journey has just begun and I’m stoked! I started to get interested in topics around data transparency and accessibility after a series of escalating frustrations with information dynamics in medical technology, beginning in my own field of gas sensing, then discovering similar disparities in tangential fields."),t("br"),e._v("\nRead more about Victoria "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-victoria/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Zarena.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hello everybody! My name is Zarena")]),e._v(". I grew up in the Kyrgyz Republic, yet spent half of my life studying and working abroad. Currently, I am a Research Assistant for the project Creating Culturally Appropriate Research Ethics in Central Asia (CARE) at Nazarbayev University in Kazakhstan. I am also a Mad activist and an interdisciplinary human rights researcher. I like to consider my research activities going beyond academia to encompass and make an effect on broader socio-political structures.")]),e._v(" "),t("p",[e._v("Although I believe that life would not progress without frictions, when it comes to science and research, I feel, ‘frictions’ - manifested in a form of paywalls, bureaucratic and corporate management, or other structural barriers - should be deconstructed. So, I am joining the Frictionless Data Fellowship Programme with the purpose to learn more about open and FAIR research."),t("br"),e._v("\nLearn more about Zarena "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-zarena/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Melvin.jpeg",width:"120px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hi everyone, my name is Melvin Ochieng")]),e._v(", and I’m a pathologist and up-coming soil scientist. I was born in Kenya in a town called Eldoret that is famous for producing Kenyan marathon champions. I was raised in Kenya in my early childhood days and in Tanzania afterwards. I like to consider myself both Kenyan and Tanzanian at heart because the two countries took part in molding the person I am today. I am currently a masters student at University of Mohammed VI polytechnic in Morocco, studying fertilizer science and technology. Over the past two years, my research focused on potato cyst nematode (PCN) which is a quarantine pest that had been reported in Kenya in 2015.")]),e._v(" "),t("p",[e._v("I’m excited to start this journey as a Frictionless Data fellow with my fellows for this cohort. I just recently found out about open science and I couldn’t be more excited to learn more about this concept and how it will influence me as a researcher. Advancement in technology has opened up the world in so many ways and made possible extensive networks for collaborations globally. Notably, the problems the world is facing today require a global/collaborative approach to solve. Therefore, reproducible research is of key importance in promoting this collaboration."),t("br"),e._v("\nTo know more about Melvin click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-melvin/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Kevin-Photo.jpeg",width:"140px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Hello! My name is Kevin Kidambasi")]),e._v("(KK). I was born and raised in Vihiga County of western Kenya. Currently, I live in Nairobi, the capital city of Kenya. I am a master’s student in Jomo Kenyatta University of Agriculture and Technology (JKUAT) registered at the department of Biochemistry. My MSc research at the International Centre of Insect Physiology and Ecology (icipe) focuses on the role of haematophagous camel-specific biting keds (Hippobosca camelina) in disease transmission in Laisamis, Marsabit County of northern Kenya. My broad research interest focuses on studying host-pathogen interactions to understand infection mechanisms of diseases in order to discover novel control and treatment targets.")]),e._v(" "),t("p",[e._v("I am interested in improving research reproducibility because it allows other researchers to confirm the accuracy of my data and correct any bias as well as validate the relevance of the conclusions drawn from the results. This also allows data to be analyzed in different ways and thus, give new insights and lead the research in new directions. In addition, improving research reproducibility would allow the scientific community to understand how the conclusions of a study were made and pinpoint out any mistakes in data analyses. In general, research reproducibility enhances openness, research collaboration, and data accessibility which in turn increase public trust in science and hence permits their participation and support for research. This enables public understanding of how research is conducted and its importance."),t("br"),e._v("\nRead more about Kevin "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-kevin/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("img",{staticStyle:{margin:"10px",border:"5px solid black"},attrs:{src:"/img/blog/Lindsay.jpeg",width:"120px",align:"left"}}),e._v(" "),t("p",[t("strong",[e._v("Greetings! My name is Lindsay Gypin")]),e._v(", she/her. I grew up in Denver, Colorado and began my career as a K-12 educator. I taught high school English and worked as a school librarian before becoming disillusioned with the politicization of public education and determining my skills were better suited for work in public libraries. Attending library school after having worked in libraries for so many years, I found myself drawn to courses in the research data management track of librarianship, and in qualitative research methods.I recently became a Data Services Librarian at the University of North Carolina Greensboro, where I hope to assist scholars in making their research data more open and accessible.")]),e._v(" "),t("p",[e._v("For some time, I have wanted to build a reproducible workflow to uncover systemic bias in library catalogs. I’m hoping the Fellows Programme will help me build the foundation to do so."),t("br"),e._v("\nTo learn more about Lindsay click "),t("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/hello-lindsay/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),t("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/15.c5a64268.js b/assets/js/15.10b9d46b.js similarity index 99% rename from assets/js/15.c5a64268.js rename to assets/js/15.10b9d46b.js index dd1568bc7..31f3d4055 100644 --- a/assets/js/15.c5a64268.js +++ b/assets/js/15.10b9d46b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{517:function(e,t,a){e.exports=a.p+"assets/img/deploy-solutions-img-1.e03bb95a.png"},518:function(e,t,a){e.exports=a.p+"assets/img/Deploy-solutions-img-2.50645805.png"},519:function(e,t,a){e.exports=a.p+"assets/img/deploy-solutions-img-3.690aace9.png"},520:function(e,t,a){e.exports=a.p+"assets/img/OASIS-Prototype-Features-Import-Data.e63330ef.gif"},701:function(e,t,a){"use strict";a.r(t);var o=a(29),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"our-climate-change-research-and-development-program"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#our-climate-change-research-and-development-program"}},[e._v("#")]),e._v(" Our Climate Change Research and Development Program")]),e._v(" "),o("p",[e._v("We’re Canadian software developers passionate about space and the Earth."),o("br"),e._v("\nSince 2019, we have been working with hundreds of students, citizens, NGOs, scientists, and government officials to identify top communication problems getting citizens to act on climate change risks. We are exploring ways software can help authorities and ordinary citizens communicate better and prepare for, respond to, and recover from climate change impacts and natural disasters."),o("br"),e._v("\nWe have gathered unprecedented insights into how software can help and are now building a prototype to put these insights into practice and help individuals and communities before, during, and after a climate change impact or natural disaster.")]),e._v(" "),o("h1",{attrs:{id:"our-climate-change-software-prototype"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#our-climate-change-software-prototype"}},[e._v("#")]),e._v(" Our Climate Change Software Prototype")]),e._v(" "),o("p",[e._v("The prototype is based on historic floods that occurred in Ottawa-Gatineau in 2017 and 2019, and is intended to demonstrate ways that software can help emergency responders and local government officials communicate better with the general public."),o("br"),e._v("\nIt isn’t intended to replace any emergency alert or other government systems. Instead, its focus is on communicating, collaborating with, and supporting individuals and communities as they prepare, respond, and recover from disasters and impacts."),o("br"),e._v("\nThe prototype is modular and organized into different sections, grouped by the intended main audience:")]),e._v(" "),o("h2",{attrs:{id:"trusted-authorities-web-portal"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#trusted-authorities-web-portal"}},[e._v("#")]),e._v(" “Trusted Authorities” web portal")]),e._v(" "),o("p",[e._v("This audience includes emergency responders, government officials at the municipal, provincial, and federal levels, officials and staff at hydro-electric stations and municipal infrastructure, and other groups who would have authority over the planning, response, and recovery efforts. They produce and consume official data sources, and can share some of that information with the general public or citizen scientist audiences. The web portal contains sensitive, non-public information and therefore requires a secure login for verified users."),o("br"),e._v('\nThis is an example of the Trusted Authority Dashboard (showing other prototype"modules" in addition to the flooding):')]),e._v(" "),o("p",[o("img",{attrs:{src:a(517),alt:"deploy-solutions-img-1"}})]),e._v(" "),o("h2",{attrs:{id:"general-public-anonymous-website"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#general-public-anonymous-website"}},[e._v("#")]),e._v(" General public (anonymous website)")]),e._v(" "),o("p",[e._v("The audience for this section of the prototype is the members of the public who are impacted by the flood, or likely to be. They consume official data sources but do not produce any of their own (in our current prototype). This section is a public, read-only website which does not require any login."),o("br"),e._v("\nThe information the public will see includes a variety of data sources including: checklists for disaster preparation, response, and recovery; curated news and social media information on the disaster; useful resources including emergency and insurance information; and more.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(518),alt:"deploy-solutions-img-2"}})]),e._v(" "),o("h1",{attrs:{id:"what-data-does-the-prototype-need"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-data-does-the-prototype-need"}},[e._v("#")]),e._v(" What Data Does the Prototype Need?")]),e._v(" "),o("p",[e._v("As you can see from the screens above, the prototype needs to manage a wide variety of flood disaster-related data sets, from all kinds of providers and with varying degrees of reliability and quality."),o("br"),e._v('\nSome of this data we consider to be"official" and “static” (meaning it exists before a disaster occurs). This kind of data include official government-sourced open data, such as a list of hospitals, police stations, and municipal infrastructure.'),o("br"),e._v("\nObviously these lists wouldn’t change in the middle of a disaster, and would be prepared ahead of time."),o("br"),e._v("\nHowever, there would also be a set of ad-hoc lists created to suit the particular needs of the disaster response and community involvement. This is data that is highly subjective to the particular circumstances of the disaster, cannot be known ahead of time, and is likely to evolve over the course of the disaster."),o("br"),e._v("\nExamples of such “dynamic data” include locations where sandbags are prepared, locations of emergency shelters, lists of emergency supplies and so on.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(519),alt:"Deploy-solutions-img-3"}})]),e._v(" "),o("p",[e._v("Our software prototype allows users to upload CSV files as part of a data import process to make it easy and quick to populate the system with static or dynamic data."),o("br"),e._v("\nEnsuring the quality of ad-hoc data sets is of particular concern, since there are likely to be fewer quality checks for data generated rapidly in response to urgent need.")]),e._v(" "),o("h1",{attrs:{id:"why-do-we-need-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#why-do-we-need-frictionless-data"}},[e._v("#")]),e._v(" Why Do We Need Frictionless Data?")]),e._v(" "),o("p",[e._v("Therefore, the prototype needs to ensure the users can only upload data that is considered valid according to the Frictionless schema. So before completing the import we have to check every file a user uploads. If it isn’t valid, we need to display a detailed error message to the user so they can fix any errors and retry."),o("br"),e._v("\nThis prevents a user from accidentally entering invalid information and potentially causing corrupt or incomplete records."),o("br"),e._v("\nIt may appear that adding a validation check slows things down. However, this is actually a significantly faster and more user-friendly data import process. From a technical perspective, we can make an asynchronous RESTful call to the Frictionless Data validation service and the response is quick. From a process perspective, without Frictionless Data validation a user might not find out about issues until after the import, and would then have to waste valuable time and effort cleaning up data integrity errors."),o("br"),e._v("\nSince the prototype is intended to help with a flood disaster response, it is critical to avoid any such delays or data integrity risks!")]),e._v(" "),o("h1",{attrs:{id:"how-we-use-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-we-use-frictionless-data"}},[e._v("#")]),e._v(" How We Use Frictionless Data")]),e._v(" "),o("p",[e._v("To achieve the benefits above, we use the "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python Frictionless SDK"),o("OutboundLink")],1),e._v(" hosted in the Amazon Web Services (AWS) cloud."),o("br"),e._v("\nThe code is written in Python programming language. The main Frictionless elements we use currently are the "),o("code",[e._v("Resource")]),e._v(" schema and the "),o("code",[e._v("validate()")]),e._v(" feature. The Python code is deployed as a Lambda layer behind an AWS API Gateway service."),o("br"),e._v("\nThis technical architecture allows us to easily call the Frictionless Data validation feature from our software solutions via simple REST methods calls. The feature can be deployed, secured, and scaled independently of the other prototype components."),o("br"),e._v("\nOf course the code needs to know what schemas to validate against. We create and store Deploy Solutions frictionless schemas for the data sets we described above. There is one schema created for each type of data that we allow a user to import. We store these in a single AmazonS3 bucket, that can only be accessed by the Lambda layer."),o("br"),e._v("\nWhen a user uploads a CSV file into our prototype, they have to choose which type of data they are saving so we know which schema to validate against (depending on which page they’re on, we can usually make this choice for them)."),o("br"),e._v("\nFor example, if a user was uploading a list of Sandbag assembly locations, the software would know to validate against "),o("em",[e._v("the dss-sandbaggingregion_schema.json")]),e._v(" Frictionless schema."),o("br"),e._v("\nWe then create a Frictionless Resource file which consists of the uploaded CSV and the matching schema. Using this Resource file, our software calls the Frictionless "),o("code",[e._v("validate()")]),e._v(" method and receives the validation report back."),o("br"),e._v("\nIf errors are found, these need to be returned back to the user. In our front-end web client (we use Angular), we format the raw report into table display. The report tells the user precisely which row, column and cell requires fixing, saving them valuable time and eliminating more errors!"),o("br"),e._v("\nYou can see the result in the animated GIF below.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(520),alt:"OASIS Prototype Features Import Data - Invalid Data is Blocked-high"}})]),e._v(" "),o("p",[e._v("Obviously the technical complexities mentioned above are hidden away and the user just sees a very simple and intuitive set of validation messages - or hopefully just a success message!"),o("br"),e._v("\nYou can see a full video of this process on our video showcase page: "),o("a",{attrs:{href:"https://showcase.oasis.climatechange.ca",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://showcase.oasis.climatechange.ca"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"want-to-learn-more-about-our-software-prototype-and-climate-change-software-r-d"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#want-to-learn-more-about-our-software-prototype-and-climate-change-software-r-d"}},[e._v("#")]),e._v(" Want to Learn More About Our Software Prototype and Climate Change Software R&D?")]),e._v(" "),o("p",[e._v("We’ve created a new service to share our climate change software development knowledge. It’s called “OASIS: Software Solutions for Climate Change Problems”."),o("br"),e._v("\nThe OASIS service includes a free weekly newsletter and premium subscription service. It shares unique insights, content, resources, and guidance on how to use software and data from Earth and space to build solutions for climate change problems."),o("br"),e._v("\nLearn more, and subscribe to the free newsletter, at "),o("a",{attrs:{href:"https://oasis.climatechange.ca",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://oasis.climatechange.ca"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{517:function(e,t,a){e.exports=a.p+"assets/img/deploy-solutions-img-1.e03bb95a.png"},518:function(e,t,a){e.exports=a.p+"assets/img/Deploy-solutions-img-2.50645805.png"},519:function(e,t,a){e.exports=a.p+"assets/img/deploy-solutions-img-3.690aace9.png"},520:function(e,t,a){e.exports=a.p+"assets/img/OASIS-Prototype-Features-Import-Data.e63330ef.gif"},702:function(e,t,a){"use strict";a.r(t);var o=a(29),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"our-climate-change-research-and-development-program"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#our-climate-change-research-and-development-program"}},[e._v("#")]),e._v(" Our Climate Change Research and Development Program")]),e._v(" "),o("p",[e._v("We’re Canadian software developers passionate about space and the Earth."),o("br"),e._v("\nSince 2019, we have been working with hundreds of students, citizens, NGOs, scientists, and government officials to identify top communication problems getting citizens to act on climate change risks. We are exploring ways software can help authorities and ordinary citizens communicate better and prepare for, respond to, and recover from climate change impacts and natural disasters."),o("br"),e._v("\nWe have gathered unprecedented insights into how software can help and are now building a prototype to put these insights into practice and help individuals and communities before, during, and after a climate change impact or natural disaster.")]),e._v(" "),o("h1",{attrs:{id:"our-climate-change-software-prototype"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#our-climate-change-software-prototype"}},[e._v("#")]),e._v(" Our Climate Change Software Prototype")]),e._v(" "),o("p",[e._v("The prototype is based on historic floods that occurred in Ottawa-Gatineau in 2017 and 2019, and is intended to demonstrate ways that software can help emergency responders and local government officials communicate better with the general public."),o("br"),e._v("\nIt isn’t intended to replace any emergency alert or other government systems. Instead, its focus is on communicating, collaborating with, and supporting individuals and communities as they prepare, respond, and recover from disasters and impacts."),o("br"),e._v("\nThe prototype is modular and organized into different sections, grouped by the intended main audience:")]),e._v(" "),o("h2",{attrs:{id:"trusted-authorities-web-portal"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#trusted-authorities-web-portal"}},[e._v("#")]),e._v(" “Trusted Authorities” web portal")]),e._v(" "),o("p",[e._v("This audience includes emergency responders, government officials at the municipal, provincial, and federal levels, officials and staff at hydro-electric stations and municipal infrastructure, and other groups who would have authority over the planning, response, and recovery efforts. They produce and consume official data sources, and can share some of that information with the general public or citizen scientist audiences. The web portal contains sensitive, non-public information and therefore requires a secure login for verified users."),o("br"),e._v('\nThis is an example of the Trusted Authority Dashboard (showing other prototype"modules" in addition to the flooding):')]),e._v(" "),o("p",[o("img",{attrs:{src:a(517),alt:"deploy-solutions-img-1"}})]),e._v(" "),o("h2",{attrs:{id:"general-public-anonymous-website"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#general-public-anonymous-website"}},[e._v("#")]),e._v(" General public (anonymous website)")]),e._v(" "),o("p",[e._v("The audience for this section of the prototype is the members of the public who are impacted by the flood, or likely to be. They consume official data sources but do not produce any of their own (in our current prototype). This section is a public, read-only website which does not require any login."),o("br"),e._v("\nThe information the public will see includes a variety of data sources including: checklists for disaster preparation, response, and recovery; curated news and social media information on the disaster; useful resources including emergency and insurance information; and more.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(518),alt:"deploy-solutions-img-2"}})]),e._v(" "),o("h1",{attrs:{id:"what-data-does-the-prototype-need"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-data-does-the-prototype-need"}},[e._v("#")]),e._v(" What Data Does the Prototype Need?")]),e._v(" "),o("p",[e._v("As you can see from the screens above, the prototype needs to manage a wide variety of flood disaster-related data sets, from all kinds of providers and with varying degrees of reliability and quality."),o("br"),e._v('\nSome of this data we consider to be"official" and “static” (meaning it exists before a disaster occurs). This kind of data include official government-sourced open data, such as a list of hospitals, police stations, and municipal infrastructure.'),o("br"),e._v("\nObviously these lists wouldn’t change in the middle of a disaster, and would be prepared ahead of time."),o("br"),e._v("\nHowever, there would also be a set of ad-hoc lists created to suit the particular needs of the disaster response and community involvement. This is data that is highly subjective to the particular circumstances of the disaster, cannot be known ahead of time, and is likely to evolve over the course of the disaster."),o("br"),e._v("\nExamples of such “dynamic data” include locations where sandbags are prepared, locations of emergency shelters, lists of emergency supplies and so on.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(519),alt:"Deploy-solutions-img-3"}})]),e._v(" "),o("p",[e._v("Our software prototype allows users to upload CSV files as part of a data import process to make it easy and quick to populate the system with static or dynamic data."),o("br"),e._v("\nEnsuring the quality of ad-hoc data sets is of particular concern, since there are likely to be fewer quality checks for data generated rapidly in response to urgent need.")]),e._v(" "),o("h1",{attrs:{id:"why-do-we-need-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#why-do-we-need-frictionless-data"}},[e._v("#")]),e._v(" Why Do We Need Frictionless Data?")]),e._v(" "),o("p",[e._v("Therefore, the prototype needs to ensure the users can only upload data that is considered valid according to the Frictionless schema. So before completing the import we have to check every file a user uploads. If it isn’t valid, we need to display a detailed error message to the user so they can fix any errors and retry."),o("br"),e._v("\nThis prevents a user from accidentally entering invalid information and potentially causing corrupt or incomplete records."),o("br"),e._v("\nIt may appear that adding a validation check slows things down. However, this is actually a significantly faster and more user-friendly data import process. From a technical perspective, we can make an asynchronous RESTful call to the Frictionless Data validation service and the response is quick. From a process perspective, without Frictionless Data validation a user might not find out about issues until after the import, and would then have to waste valuable time and effort cleaning up data integrity errors."),o("br"),e._v("\nSince the prototype is intended to help with a flood disaster response, it is critical to avoid any such delays or data integrity risks!")]),e._v(" "),o("h1",{attrs:{id:"how-we-use-frictionless-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-we-use-frictionless-data"}},[e._v("#")]),e._v(" How We Use Frictionless Data")]),e._v(" "),o("p",[e._v("To achieve the benefits above, we use the "),o("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python Frictionless SDK"),o("OutboundLink")],1),e._v(" hosted in the Amazon Web Services (AWS) cloud."),o("br"),e._v("\nThe code is written in Python programming language. The main Frictionless elements we use currently are the "),o("code",[e._v("Resource")]),e._v(" schema and the "),o("code",[e._v("validate()")]),e._v(" feature. The Python code is deployed as a Lambda layer behind an AWS API Gateway service."),o("br"),e._v("\nThis technical architecture allows us to easily call the Frictionless Data validation feature from our software solutions via simple REST methods calls. The feature can be deployed, secured, and scaled independently of the other prototype components."),o("br"),e._v("\nOf course the code needs to know what schemas to validate against. We create and store Deploy Solutions frictionless schemas for the data sets we described above. There is one schema created for each type of data that we allow a user to import. We store these in a single AmazonS3 bucket, that can only be accessed by the Lambda layer."),o("br"),e._v("\nWhen a user uploads a CSV file into our prototype, they have to choose which type of data they are saving so we know which schema to validate against (depending on which page they’re on, we can usually make this choice for them)."),o("br"),e._v("\nFor example, if a user was uploading a list of Sandbag assembly locations, the software would know to validate against "),o("em",[e._v("the dss-sandbaggingregion_schema.json")]),e._v(" Frictionless schema."),o("br"),e._v("\nWe then create a Frictionless Resource file which consists of the uploaded CSV and the matching schema. Using this Resource file, our software calls the Frictionless "),o("code",[e._v("validate()")]),e._v(" method and receives the validation report back."),o("br"),e._v("\nIf errors are found, these need to be returned back to the user. In our front-end web client (we use Angular), we format the raw report into table display. The report tells the user precisely which row, column and cell requires fixing, saving them valuable time and eliminating more errors!"),o("br"),e._v("\nYou can see the result in the animated GIF below.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(520),alt:"OASIS Prototype Features Import Data - Invalid Data is Blocked-high"}})]),e._v(" "),o("p",[e._v("Obviously the technical complexities mentioned above are hidden away and the user just sees a very simple and intuitive set of validation messages - or hopefully just a success message!"),o("br"),e._v("\nYou can see a full video of this process on our video showcase page: "),o("a",{attrs:{href:"https://showcase.oasis.climatechange.ca",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://showcase.oasis.climatechange.ca"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"want-to-learn-more-about-our-software-prototype-and-climate-change-software-r-d"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#want-to-learn-more-about-our-software-prototype-and-climate-change-software-r-d"}},[e._v("#")]),e._v(" Want to Learn More About Our Software Prototype and Climate Change Software R&D?")]),e._v(" "),o("p",[e._v("We’ve created a new service to share our climate change software development knowledge. It’s called “OASIS: Software Solutions for Climate Change Problems”."),o("br"),e._v("\nThe OASIS service includes a free weekly newsletter and premium subscription service. It shares unique insights, content, resources, and guidance on how to use software and data from Earth and space to build solutions for climate change problems."),o("br"),e._v("\nLearn more, and subscribe to the free newsletter, at "),o("a",{attrs:{href:"https://oasis.climatechange.ca",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://oasis.climatechange.ca"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/150.fdc13174.js b/assets/js/150.d8afa583.js similarity index 98% rename from assets/js/150.fdc13174.js rename to assets/js/150.d8afa583.js index c6a7bc920..5d36c8a6e 100644 --- a/assets/js/150.fdc13174.js +++ b/assets/js/150.d8afa583.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{682:function(e,t,a){"use strict";a.r(t);var n=a(29),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Originally published: "),a("a",{attrs:{href:"https://blog.okfn.org/2022/01/10/frictionless-planet-save-the-date/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2022/01/10/frictionless-planet-save-the-date/"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("We believe that an ecosystem of organisations combining tools, techniques and strategies to transform datasets relevant to the climate crisis into applied knowledge and actionable campaigns can get us closer to the Paris agreement goals. Today, scientists, academics and activists are working against the clock to save us from the greatest catastrophe of our times. But they are doing so under-resourced, siloed and disconnected. Sometimes even facing physical threats or achieving very local, isolated impact. We want to reverse that by activating a cross-sectoral sharing process of tools, techniques and technologies to open the data and unleash the power of knowledge to fight against climate change. We already started with the Frictionless Data process – collaborating with researcher groups to "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/09/16/goodtables-bcodmo/",target:"_blank",rel:"noopener noreferrer"}},[e._v("better manage ocean research data"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/03/18/frictionless-data-pilot-study/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openly publish cleaned, integrated energy data"),a("OutboundLink")],1),e._v(" – and we want to expand an action-oriented alliance leading to cross regional, cross sectoral, sustainable collaboration. We need to use the best tools and the best minds of our times to fight the problems of our times.")]),e._v(" "),a("p",[e._v("We consider you-your organisation- as leading thinkers-doers-communicators leveraging technology and creativity in a unique way, with the potential to lead to meaningful change and we would love to invite you to an initial brainstorming session as we think of common efforts, a sustainability path and a road of action to work the next three years and beyond.")]),e._v(" "),a("p",[e._v("What will we do together during this brainstorming session? Our overarching goal is to make open climate data more useful. To that end, during this initial session, we will conceptualise ways of cleaning and standardising open climate data, creating more reproducible and efficient methods of consuming and analysing that data, and focus on ways to put this data into the hands of those that can truly drive change.")]),e._v(" "),a("h1",{attrs:{id:"what-to-bring"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-to-bring"}},[e._v("#")]),e._v(" WHAT TO BRING?")]),e._v(" "),a("ul",[a("li",[e._v("An effort-idea that is effective and you feel proud of at the intersection of digital and climate change.")]),e._v(" "),a("li",[e._v("A data problem you are struggling with.")]),e._v(" "),a("li",[e._v("Your best post-holidays smile.")])]),e._v(" "),a("h1",{attrs:{id:"when"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#when"}},[e._v("#")]),e._v(" When?")]),e._v(" "),a("p",[e._v("13:30 GMT – 20 January – Registration open "),a("a",{attrs:{href:"https://www.eventbrite.co.uk/e/frictionless-planet-tickets-242708286017",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". "),a("strong",[e._v("SOLD OUT")])]),e._v(" "),a("p",[e._v("20:30 GMT – 21 January – Registration open "),a("a",{attrs:{href:"https://www.eventbrite.co.uk/e/frictionless-planet-tickets-242807803677",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Limited slots, 25 attendees per session.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{684:function(e,t,a){"use strict";a.r(t);var n=a(29),o=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Originally published: "),a("a",{attrs:{href:"https://blog.okfn.org/2022/01/10/frictionless-planet-save-the-date/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2022/01/10/frictionless-planet-save-the-date/"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("We believe that an ecosystem of organisations combining tools, techniques and strategies to transform datasets relevant to the climate crisis into applied knowledge and actionable campaigns can get us closer to the Paris agreement goals. Today, scientists, academics and activists are working against the clock to save us from the greatest catastrophe of our times. But they are doing so under-resourced, siloed and disconnected. Sometimes even facing physical threats or achieving very local, isolated impact. We want to reverse that by activating a cross-sectoral sharing process of tools, techniques and technologies to open the data and unleash the power of knowledge to fight against climate change. We already started with the Frictionless Data process – collaborating with researcher groups to "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/09/16/goodtables-bcodmo/",target:"_blank",rel:"noopener noreferrer"}},[e._v("better manage ocean research data"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/03/18/frictionless-data-pilot-study/",target:"_blank",rel:"noopener noreferrer"}},[e._v("openly publish cleaned, integrated energy data"),a("OutboundLink")],1),e._v(" – and we want to expand an action-oriented alliance leading to cross regional, cross sectoral, sustainable collaboration. We need to use the best tools and the best minds of our times to fight the problems of our times.")]),e._v(" "),a("p",[e._v("We consider you-your organisation- as leading thinkers-doers-communicators leveraging technology and creativity in a unique way, with the potential to lead to meaningful change and we would love to invite you to an initial brainstorming session as we think of common efforts, a sustainability path and a road of action to work the next three years and beyond.")]),e._v(" "),a("p",[e._v("What will we do together during this brainstorming session? Our overarching goal is to make open climate data more useful. To that end, during this initial session, we will conceptualise ways of cleaning and standardising open climate data, creating more reproducible and efficient methods of consuming and analysing that data, and focus on ways to put this data into the hands of those that can truly drive change.")]),e._v(" "),a("h1",{attrs:{id:"what-to-bring"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-to-bring"}},[e._v("#")]),e._v(" WHAT TO BRING?")]),e._v(" "),a("ul",[a("li",[e._v("An effort-idea that is effective and you feel proud of at the intersection of digital and climate change.")]),e._v(" "),a("li",[e._v("A data problem you are struggling with.")]),e._v(" "),a("li",[e._v("Your best post-holidays smile.")])]),e._v(" "),a("h1",{attrs:{id:"when"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#when"}},[e._v("#")]),e._v(" When?")]),e._v(" "),a("p",[e._v("13:30 GMT – 20 January – Registration open "),a("a",{attrs:{href:"https://www.eventbrite.co.uk/e/frictionless-planet-tickets-242708286017",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". "),a("strong",[e._v("SOLD OUT")])]),e._v(" "),a("p",[e._v("20:30 GMT – 21 January – Registration open "),a("a",{attrs:{href:"https://www.eventbrite.co.uk/e/frictionless-planet-tickets-242807803677",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Limited slots, 25 attendees per session.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/151.0bba1436.js b/assets/js/151.99fc6a01.js similarity index 98% rename from assets/js/151.0bba1436.js rename to assets/js/151.99fc6a01.js index e428edebc..c479666d8 100644 --- a/assets/js/151.0bba1436.js +++ b/assets/js/151.99fc6a01.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{684:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On January 27"),a("sup",[e._v("th")]),e._v(", for the first Frictionless Data community call of the year, we heard a presentation on the Data Package Manager for CKAN (DPCKAN) from Francisco Alves - leader of the proactive transparency policy in the Brazilian State of Minas Gerais.")]),e._v(" "),a("p",[e._v("You may remember Francisco and DPCKAN from the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/10/13/hackathon-wrap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Hackathon"),a("OutboundLink")],1),e._v(" back in October 2021, where his team won the hack with this very project.")]),e._v(" "),a("h2",{attrs:{id:"so-what-is-dpckan"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#so-what-is-dpckan"}},[e._v("#")]),e._v(" So what is DPCKAN?")]),e._v(" "),a("p",[e._v("It all started with the will to publish all the raw data on the Fiscal Transparency portal of the State of Minas Gereis, which is built on a "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(" instance, as open data following the Frictionless standards.")]),e._v(" "),a("p",[e._v("Francisco and his team wanted to install a data package, and be able to work with it locally. They also wanted to have the ability to partially update a dataset already uploaded in CKAN without overwriting it (this particular feature was developed during the Hackathon). That’s how the Data Package Manager was born. It is now in active development.")]),e._v(" "),a("h2",{attrs:{id:"and-what-s-next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#and-what-s-next"}},[e._v("#")]),e._v(" And what’s next?")]),e._v(" "),a("p",[e._v("Francisco and his team would like to:")]),e._v(" "),a("ul",[a("li",[e._v("Make it possible to read a data package directly from CKAN,")]),e._v(" "),a("li",[e._v("Make CKAN Datastore respect the Frictionless table schema types")]),e._v(" "),a("li",[e._v("Have human readable metadata visualisation")]),e._v(" "),a("li",[e._v("Contribute back upstream to Frictionless Data, CKAN, etc.")])]),e._v(" "),a("p",[e._v("Franscisco also gave a quick demo of what the DPCKAN looks like. You can watch the full presentation (including the demo):")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/1W786q76H98",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("If you are interested in DPCKAN, come and talk to Francisco on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v("! You can also check out the presentation slides in "),a("a",{attrs:{href:"https://github.com/dados-mg/frictionless-hangout-jan2022",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub repository"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("p",[e._v("This year as well, we are helping organise the "),a("a",{attrs:{href:"https://fosdem.org/2022/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FOSDEM"),a("OutboundLink")],1),e._v(" Thematic Track "),a("em",[e._v("Open Research Tools & Technologies")]),e._v("."),a("br"),e._v("\nJoin us on February 5th! Among the many interesting talks, you will have the opportunity to catch senior developer Evgeny Karev presenting the newest Frictionless tool: "),a("a",{attrs:{href:"https://fosdem.org/2022/schedule/event/open_research_livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nHave a look at "),a("a",{attrs:{href:"https://fosdem.org/2022/schedule/track/open_research_tools_and_technologies/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the programme"),a("OutboundLink")],1),e._v(". The event is free of charge and there is no need to register. You can just log in the talks that you like.")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is next year, on February 24"),a("sup",[e._v("th")]),e._v(". We don’t have a presentation scheduled yet, so if you have a project that you would like to present to the community, this could be your chance! Email us if you have something in mind: "),a("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(".")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/4YZD0jmMOaU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{685:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On January 27"),a("sup",[e._v("th")]),e._v(", for the first Frictionless Data community call of the year, we heard a presentation on the Data Package Manager for CKAN (DPCKAN) from Francisco Alves - leader of the proactive transparency policy in the Brazilian State of Minas Gerais.")]),e._v(" "),a("p",[e._v("You may remember Francisco and DPCKAN from the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/10/13/hackathon-wrap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Hackathon"),a("OutboundLink")],1),e._v(" back in October 2021, where his team won the hack with this very project.")]),e._v(" "),a("h2",{attrs:{id:"so-what-is-dpckan"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#so-what-is-dpckan"}},[e._v("#")]),e._v(" So what is DPCKAN?")]),e._v(" "),a("p",[e._v("It all started with the will to publish all the raw data on the Fiscal Transparency portal of the State of Minas Gereis, which is built on a "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(" instance, as open data following the Frictionless standards.")]),e._v(" "),a("p",[e._v("Francisco and his team wanted to install a data package, and be able to work with it locally. They also wanted to have the ability to partially update a dataset already uploaded in CKAN without overwriting it (this particular feature was developed during the Hackathon). That’s how the Data Package Manager was born. It is now in active development.")]),e._v(" "),a("h2",{attrs:{id:"and-what-s-next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#and-what-s-next"}},[e._v("#")]),e._v(" And what’s next?")]),e._v(" "),a("p",[e._v("Francisco and his team would like to:")]),e._v(" "),a("ul",[a("li",[e._v("Make it possible to read a data package directly from CKAN,")]),e._v(" "),a("li",[e._v("Make CKAN Datastore respect the Frictionless table schema types")]),e._v(" "),a("li",[e._v("Have human readable metadata visualisation")]),e._v(" "),a("li",[e._v("Contribute back upstream to Frictionless Data, CKAN, etc.")])]),e._v(" "),a("p",[e._v("Franscisco also gave a quick demo of what the DPCKAN looks like. You can watch the full presentation (including the demo):")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/1W786q76H98",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("If you are interested in DPCKAN, come and talk to Francisco on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v("! You can also check out the presentation slides in "),a("a",{attrs:{href:"https://github.com/dados-mg/frictionless-hangout-jan2022",target:"_blank",rel:"noopener noreferrer"}},[e._v("this GitHub repository"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"other-agenda-items-from-our-hangout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-agenda-items-from-our-hangout"}},[e._v("#")]),e._v(" Other agenda items from our hangout")]),e._v(" "),a("p",[e._v("This year as well, we are helping organise the "),a("a",{attrs:{href:"https://fosdem.org/2022/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FOSDEM"),a("OutboundLink")],1),e._v(" Thematic Track "),a("em",[e._v("Open Research Tools & Technologies")]),e._v("."),a("br"),e._v("\nJoin us on February 5th! Among the many interesting talks, you will have the opportunity to catch senior developer Evgeny Karev presenting the newest Frictionless tool: "),a("a",{attrs:{href:"https://fosdem.org/2022/schedule/event/open_research_livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nHave a look at "),a("a",{attrs:{href:"https://fosdem.org/2022/schedule/track/open_research_tools_and_technologies/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the programme"),a("OutboundLink")],1),e._v(". The event is free of charge and there is no need to register. You can just log in the talks that you like.")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is next year, on February 24"),a("sup",[e._v("th")]),e._v(". We don’t have a presentation scheduled yet, so if you have a project that you would like to present to the community, this could be your chance! Email us if you have something in mind: "),a("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(".")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/4YZD0jmMOaU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("As usual, you can join us on "),a("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/152.ff415a3b.js b/assets/js/152.f2ecd916.js similarity index 99% rename from assets/js/152.ff415a3b.js rename to assets/js/152.f2ecd916.js index d2e9757a4..1752685f3 100644 --- a/assets/js/152.ff415a3b.js +++ b/assets/js/152.f2ecd916.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{685:function(e,a,t){"use strict";t.r(a);var r=t(29),i=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("I started the "),t("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Libraries Hacked"),t("OutboundLink")],1),e._v(" project in 2014. Inspired by ‘tech for good’ open data groups and hackathons, I wanted to explore how libraries could leverage data for innovation and service improvement. I had already been involved in the work of the group "),t("a",{attrs:{href:"https://www.bathhacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bath Hacked"),t("OutboundLink")],1),e._v(", and worked at the local Council in Bath, releasing large amounts of open data that was well used by the community. That included data such as live car park occupancy, traffic surveys, and air quality monitoring.")]),e._v(" "),t("p",[e._v("Getting involved in civic data publishing led me to explore data software, tools, and standards. I’ve used the Frictionless standards of Table Schema and CSV Dialect, as well as the code libraries that can be utilised to implement these. Data standards are an essential tool for data publishers in order to make data easily usable and reproducible across different organisations.")]),e._v(" "),t("p",[e._v("Public library services in England are managed by 150 local government organisations. The central government department for Digital, Culture, Media, and Sport (DCMS) hold responsibility for superintending those services. In September 2019 they convened a meeting about public library data.")]),e._v(" "),t("p",[e._v("Library data, of many kinds, is not well utilised in England.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Lack of public data")]),e._v(". There are relatively few library services sharing data about themselves for public use.")]),e._v(" "),t("li",[t("strong",[e._v("Low expectations")]),e._v(". There is no guidance on what data to share. Some services will publish certain datasets, but these will likely be different to the ones other publish.")]),e._v(" "),t("li",[t("strong",[e._v("Few standards")]),e._v(". The structure of any published data will be unique to each library service. For example, there are published lists of library branches from "),t("a",{attrs:{href:"https://www.opendatanottingham.org.uk/dataset.aspx?id=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nottinghamshire County Council"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://data.gov.uk/dataset/9342032d-ab88-462f-b31c-4fb07fd4da6f/libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("North Somerset Council"),t("OutboundLink")],1),e._v(". Both are out of date, and have different fields, field names, field types, and file formats.")])]),e._v(" "),t("p",[e._v("The meeting discussed these issues, amongst others. The problems are understood, but difficult to tackle, as no organisation has direct responsibility for library data. There are also difficult underlying causes - low skills and funding being two major ones.")]),e._v(" "),t("p",[e._v("Large scale culture change will take many years. But to begin some sector-led collaborative work, a group of the attendees agreed to define the fields for a core selection of library datasets. The project would involve data practitioners from across English library services.")]),e._v(" "),t("p",[e._v("The datasets would cover:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Events")]),e._v(": the events that happen in libraries, their attendance, and outcomes")]),e._v(" "),t("li",[t("strong",[e._v("Library branches")]),e._v(": physical building locations, opening hours, and contact details")]),e._v(" "),t("li",[t("strong",[e._v("Loans")]),e._v(": the items lent from libraries, with counts, time periods, and categories")]),e._v(" "),t("li",[t("strong",[e._v("Stock")]),e._v(": the number of items held in libraries, with categories")]),e._v(" "),t("li",[t("strong",[e._v("Mobile library stops")]),e._v(": locations of mobile library stops, and their timetabled frequency")]),e._v(" "),t("li",[t("strong",[e._v("Physical visits")]),e._v(": how many people visit library premises")]),e._v(" "),t("li",[t("strong",[e._v("Membership")]),e._v(": counts of people who are library members, at small-area geographies.")])]),e._v(" "),t("p",[e._v("These can be split into 3 categories:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Registers")]),e._v(". Data that should be updated when it changes. A list of library branches is a permanent register, to be updated when there are changes to those branches.")]),e._v(" "),t("li",[t("strong",[e._v("Snapshot")]),e._v(". Data that is released as a point in time representation. Library membership will be continually changing, but a snapshot of membership counts should be released at regular intervals.")]),e._v(" "),t("li",[t("strong",[e._v("Time-series")]),e._v(". Data that is new every time it is published. Loans data should be published at regular intervals, each published file being an addition to the existing set.")])]),e._v(" "),t("p",[e._v("To work on these, we held an in-person workshop at the DCMS offices. This featured an exciting interruption by a fire drill, and we had to relocate to a nearby café (difficult for a meeting with many people held in in London!). We also formed an online group using Slack to trial and discuss the data.")]),e._v(" "),t("h2",{attrs:{id:"schemas-and-frictionless-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#schemas-and-frictionless-data"}},[e._v("#")]),e._v(" Schemas and Frictionless Data")]),e._v(" "),t("p",[e._v("The majority of our discussions were practical rather than technical, such as what data would be most useful, whether or not it was currently used locally by services, and common problems.")]),e._v(" "),t("p",[e._v("However, to formalise how data should be structured, it became clear that it would be necessary to create technical 'data schemas’.")]),e._v(" "),t("p",[e._v("It can be easy to decide on the data you want, but fail to describe it properly. For example, we could provide people with a spreadsheet that included a column title such as ‘Closed date’. I’d expect people to enter a date in that column, but we’d end up with all kinds of formats.")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),t("OutboundLink")],1),e._v(" specification for defining data, from Frictionless Data, provided a good option for tackling this problem. Not only would it allow us to create a detailed description for the data fields, but we could use other frictionless tools such as "),t("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Good Tables"),t("OutboundLink")],1),e._v(". This would allow library services to validate their data before publishing. Things like mismatching date formats would be picked up by the validator, and it would give instructions for how to fix the issue. We would additionally also provide ‘human-readable’ guidance on the datasets.")]),e._v(" "),t("p",[e._v("Frictionless Data is an "),t("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),t("OutboundLink")],1),e._v(" project, and using tools from an internationally renowned body was also a good practice. The schemas are UK-centric but could be adapted and reused by international library services.")]),e._v(" "),t("p",[e._v("The schemas are all documented at "),t("a",{attrs:{href:"https://schema.librarydata.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Public Library Open Data"),t("OutboundLink")],1),e._v(", including guidance, links to sample data, and the technical definition files.")]),e._v(" "),t("h2",{attrs:{id:"lessons-learned"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lessons-learned"}},[e._v("#")]),e._v(" Lessons learned")]),e._v(" "),t("p",[e._v("The initial datasets are not comprehensive. They are designed to be a starting point, allowing more to be developed from service requirements.")]),e._v(" "),t("p",[e._v("They are overly focussed towards ‘physical’ library services. It wasn’t long after these meetings that public libraries adjusted to provide all-digital services due to lockdowns. There is nothing here to cover valuable usage datasets like the video views that library services receive on YouTube and Facebook.")]),e._v(" "),t("p",[e._v("There are some that have become even more important. The physical visits schema describes how to structure library footfall data, allowing for differences in collection methods and intervals. This kind of data is now in high demand, to analyse how library service visits recover.")]),e._v(" "),t("p",[e._v("Some of the discussions we had were fascinating. It was important to involve the people who work with this data on a daily basis. They will know how easy it is to extract and manipulate, and many of the pitfalls that come with interpreting it.")]),e._v(" "),t("h3",{attrs:{id:"complexity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#complexity"}},[e._v("#")]),e._v(" Complexity")]),e._v(" "),t("p",[e._v("There was often a battle between complexity and simplicity. Complex data is good, it often means it is more robust, such as using external identifiers. But simplicity is also good, for data publishers and consumers.")]),e._v(" "),t("p",[e._v("Public library services will primarily employ data workers who are not formally trained in using data. Where there are complex concepts (e.g. Table Schema itself), they are used because they make data publishing easier and more consistent.")]),e._v(" "),t("p",[e._v("Public data should also be made as accessible as possible for the public, while being detailed enough to be useful. In this way the data schemas tend towards simplicity.")]),e._v(" "),t("h3",{attrs:{id:"standards-not-standardisation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#standards-not-standardisation"}},[e._v("#")]),e._v(" Standards not standardisation")]),e._v(" "),t("p",[e._v("There is a difference between a standard format for data, and standardised data. The schemas are primarily aimed at getting data from multiple services into the same format, to share analysis techniques between library services, and to have usable data when merged with other services.")]),e._v(" "),t("p",[e._v("There were some cases where we decided against standardising the actual data within data fields. For example, there is a column in the loans and the stock datasets called ‘Item type’. This is a category description of the library item, such as ‘Adult fiction’. In some other previous examples of data collection this data is standardised into a uniform set of categories, in order to make it easily comparable.")]),e._v(" "),t("p",[e._v("That kind of exercise defies reality though. Library services may have their own set of categories, many of them interesting and unique. To use a standard set would mean that library services would have to convert their underlying data. As well as extra work, it would be a loss of data. It would also mean that library services would be unlikely to use the converted data themselves. Why use such data if it doesn’t reflect what you actually hold?")]),e._v(" "),t("p",[e._v("The downside is that anyone analysing combined data would have to decide themselves how to compare data in those fields. However, that would be at least a clear task for the data analyst - and would most likely be an easier exercise to do in bulk.")]),e._v(" "),t("h3",{attrs:{id:"detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#detail"}},[e._v("#")]),e._v(" Detail")]),e._v(" "),t("p",[e._v("In my ideal world, data would be as detailed as possible. Instead of knowing how many items a library lent every month, I want that data for every hour. In fact I want to have every lending record! But feasibly that would make the data unwieldy and difficult to work with, and wouldn’t be in-line with the statistics libraries are used to.")]),e._v(" "),t("p",[e._v("We primarily made decisions based upon what library services already do. In a lot of cases this was data aggregated into monthly counts, with fields such as library branch and item type used to break down that data.")]),e._v(" "),t("h2",{attrs:{id:"the-future"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-future"}},[e._v("#")]),e._v(" The future")]),e._v(" "),t("p",[e._v("The initial meetings were held over two years ago, and it seems longer than that! A lot has happened in the meantime. We are still in a global pandemic that from library perspectives has de-prioritised anything other than core services.")]),e._v(" "),t("p",[e._v("However, there are good examples of the data in action. Barnet libraries "),t("a",{attrs:{href:"https://open.barnet.gov.uk/dataset/e14dj/library-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("publish 5 out of the 7 data schemas"),t("OutboundLink")],1),e._v(" on a regular basis.")]),e._v(" "),t("p",[e._v("I have also been creating tools that highlight how the data can be used such as "),t("a",{attrs:{href:"https://www.librarymap.co.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Library map"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://www.mobilelibraries.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mobile libraries"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("There is national work underway that can make use of these schemas. The British Library is working on a "),t("a",{attrs:{href:"https://www.artscouncil.org.uk/blog/single-digital-presence-libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("Single Digital Presence"),t("OutboundLink")],1),e._v(" project that will require data from library services in a standard form.")]),e._v(" "),t("p",[e._v("Internationally there are calls for more public library open data. The International Federation of Library Associations and Institutions (IFLA) has "),t("a",{attrs:{href:"https://www.ifla.org/news/ifla-releases-statement-on-open-library-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("released a statement on Open Library Data"),t("OutboundLink")],1),e._v(" calling for “governments to ensure, either directly or through supporting others, the collection and open publication of data about libraries and their use”. It would be great to work with organisations like IFLA to promote schemas that could be reused Internationally as well as for local services. There could also be the opportunity to use other Frictionless Data tools to aid in publishing data, such as "),t("a",{attrs:{href:"https://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Hopefully in the future there can be workshops, training events, and conferences that allow these data schemas to be discussed and further developed.")])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{686:function(e,a,t){"use strict";t.r(a);var r=t(29),i=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("I started the "),t("a",{attrs:{href:"https://www.librarieshacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Libraries Hacked"),t("OutboundLink")],1),e._v(" project in 2014. Inspired by ‘tech for good’ open data groups and hackathons, I wanted to explore how libraries could leverage data for innovation and service improvement. I had already been involved in the work of the group "),t("a",{attrs:{href:"https://www.bathhacked.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bath Hacked"),t("OutboundLink")],1),e._v(", and worked at the local Council in Bath, releasing large amounts of open data that was well used by the community. That included data such as live car park occupancy, traffic surveys, and air quality monitoring.")]),e._v(" "),t("p",[e._v("Getting involved in civic data publishing led me to explore data software, tools, and standards. I’ve used the Frictionless standards of Table Schema and CSV Dialect, as well as the code libraries that can be utilised to implement these. Data standards are an essential tool for data publishers in order to make data easily usable and reproducible across different organisations.")]),e._v(" "),t("p",[e._v("Public library services in England are managed by 150 local government organisations. The central government department for Digital, Culture, Media, and Sport (DCMS) hold responsibility for superintending those services. In September 2019 they convened a meeting about public library data.")]),e._v(" "),t("p",[e._v("Library data, of many kinds, is not well utilised in England.")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Lack of public data")]),e._v(". There are relatively few library services sharing data about themselves for public use.")]),e._v(" "),t("li",[t("strong",[e._v("Low expectations")]),e._v(". There is no guidance on what data to share. Some services will publish certain datasets, but these will likely be different to the ones other publish.")]),e._v(" "),t("li",[t("strong",[e._v("Few standards")]),e._v(". The structure of any published data will be unique to each library service. For example, there are published lists of library branches from "),t("a",{attrs:{href:"https://www.opendatanottingham.org.uk/dataset.aspx?id=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nottinghamshire County Council"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://data.gov.uk/dataset/9342032d-ab88-462f-b31c-4fb07fd4da6f/libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("North Somerset Council"),t("OutboundLink")],1),e._v(". Both are out of date, and have different fields, field names, field types, and file formats.")])]),e._v(" "),t("p",[e._v("The meeting discussed these issues, amongst others. The problems are understood, but difficult to tackle, as no organisation has direct responsibility for library data. There are also difficult underlying causes - low skills and funding being two major ones.")]),e._v(" "),t("p",[e._v("Large scale culture change will take many years. But to begin some sector-led collaborative work, a group of the attendees agreed to define the fields for a core selection of library datasets. The project would involve data practitioners from across English library services.")]),e._v(" "),t("p",[e._v("The datasets would cover:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Events")]),e._v(": the events that happen in libraries, their attendance, and outcomes")]),e._v(" "),t("li",[t("strong",[e._v("Library branches")]),e._v(": physical building locations, opening hours, and contact details")]),e._v(" "),t("li",[t("strong",[e._v("Loans")]),e._v(": the items lent from libraries, with counts, time periods, and categories")]),e._v(" "),t("li",[t("strong",[e._v("Stock")]),e._v(": the number of items held in libraries, with categories")]),e._v(" "),t("li",[t("strong",[e._v("Mobile library stops")]),e._v(": locations of mobile library stops, and their timetabled frequency")]),e._v(" "),t("li",[t("strong",[e._v("Physical visits")]),e._v(": how many people visit library premises")]),e._v(" "),t("li",[t("strong",[e._v("Membership")]),e._v(": counts of people who are library members, at small-area geographies.")])]),e._v(" "),t("p",[e._v("These can be split into 3 categories:")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("Registers")]),e._v(". Data that should be updated when it changes. A list of library branches is a permanent register, to be updated when there are changes to those branches.")]),e._v(" "),t("li",[t("strong",[e._v("Snapshot")]),e._v(". Data that is released as a point in time representation. Library membership will be continually changing, but a snapshot of membership counts should be released at regular intervals.")]),e._v(" "),t("li",[t("strong",[e._v("Time-series")]),e._v(". Data that is new every time it is published. Loans data should be published at regular intervals, each published file being an addition to the existing set.")])]),e._v(" "),t("p",[e._v("To work on these, we held an in-person workshop at the DCMS offices. This featured an exciting interruption by a fire drill, and we had to relocate to a nearby café (difficult for a meeting with many people held in in London!). We also formed an online group using Slack to trial and discuss the data.")]),e._v(" "),t("h2",{attrs:{id:"schemas-and-frictionless-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#schemas-and-frictionless-data"}},[e._v("#")]),e._v(" Schemas and Frictionless Data")]),e._v(" "),t("p",[e._v("The majority of our discussions were practical rather than technical, such as what data would be most useful, whether or not it was currently used locally by services, and common problems.")]),e._v(" "),t("p",[e._v("However, to formalise how data should be structured, it became clear that it would be necessary to create technical 'data schemas’.")]),e._v(" "),t("p",[e._v("It can be easy to decide on the data you want, but fail to describe it properly. For example, we could provide people with a spreadsheet that included a column title such as ‘Closed date’. I’d expect people to enter a date in that column, but we’d end up with all kinds of formats.")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),t("OutboundLink")],1),e._v(" specification for defining data, from Frictionless Data, provided a good option for tackling this problem. Not only would it allow us to create a detailed description for the data fields, but we could use other frictionless tools such as "),t("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Good Tables"),t("OutboundLink")],1),e._v(". This would allow library services to validate their data before publishing. Things like mismatching date formats would be picked up by the validator, and it would give instructions for how to fix the issue. We would additionally also provide ‘human-readable’ guidance on the datasets.")]),e._v(" "),t("p",[e._v("Frictionless Data is an "),t("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),t("OutboundLink")],1),e._v(" project, and using tools from an internationally renowned body was also a good practice. The schemas are UK-centric but could be adapted and reused by international library services.")]),e._v(" "),t("p",[e._v("The schemas are all documented at "),t("a",{attrs:{href:"https://schema.librarydata.uk/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Public Library Open Data"),t("OutboundLink")],1),e._v(", including guidance, links to sample data, and the technical definition files.")]),e._v(" "),t("h2",{attrs:{id:"lessons-learned"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#lessons-learned"}},[e._v("#")]),e._v(" Lessons learned")]),e._v(" "),t("p",[e._v("The initial datasets are not comprehensive. They are designed to be a starting point, allowing more to be developed from service requirements.")]),e._v(" "),t("p",[e._v("They are overly focussed towards ‘physical’ library services. It wasn’t long after these meetings that public libraries adjusted to provide all-digital services due to lockdowns. There is nothing here to cover valuable usage datasets like the video views that library services receive on YouTube and Facebook.")]),e._v(" "),t("p",[e._v("There are some that have become even more important. The physical visits schema describes how to structure library footfall data, allowing for differences in collection methods and intervals. This kind of data is now in high demand, to analyse how library service visits recover.")]),e._v(" "),t("p",[e._v("Some of the discussions we had were fascinating. It was important to involve the people who work with this data on a daily basis. They will know how easy it is to extract and manipulate, and many of the pitfalls that come with interpreting it.")]),e._v(" "),t("h3",{attrs:{id:"complexity"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#complexity"}},[e._v("#")]),e._v(" Complexity")]),e._v(" "),t("p",[e._v("There was often a battle between complexity and simplicity. Complex data is good, it often means it is more robust, such as using external identifiers. But simplicity is also good, for data publishers and consumers.")]),e._v(" "),t("p",[e._v("Public library services will primarily employ data workers who are not formally trained in using data. Where there are complex concepts (e.g. Table Schema itself), they are used because they make data publishing easier and more consistent.")]),e._v(" "),t("p",[e._v("Public data should also be made as accessible as possible for the public, while being detailed enough to be useful. In this way the data schemas tend towards simplicity.")]),e._v(" "),t("h3",{attrs:{id:"standards-not-standardisation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#standards-not-standardisation"}},[e._v("#")]),e._v(" Standards not standardisation")]),e._v(" "),t("p",[e._v("There is a difference between a standard format for data, and standardised data. The schemas are primarily aimed at getting data from multiple services into the same format, to share analysis techniques between library services, and to have usable data when merged with other services.")]),e._v(" "),t("p",[e._v("There were some cases where we decided against standardising the actual data within data fields. For example, there is a column in the loans and the stock datasets called ‘Item type’. This is a category description of the library item, such as ‘Adult fiction’. In some other previous examples of data collection this data is standardised into a uniform set of categories, in order to make it easily comparable.")]),e._v(" "),t("p",[e._v("That kind of exercise defies reality though. Library services may have their own set of categories, many of them interesting and unique. To use a standard set would mean that library services would have to convert their underlying data. As well as extra work, it would be a loss of data. It would also mean that library services would be unlikely to use the converted data themselves. Why use such data if it doesn’t reflect what you actually hold?")]),e._v(" "),t("p",[e._v("The downside is that anyone analysing combined data would have to decide themselves how to compare data in those fields. However, that would be at least a clear task for the data analyst - and would most likely be an easier exercise to do in bulk.")]),e._v(" "),t("h3",{attrs:{id:"detail"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#detail"}},[e._v("#")]),e._v(" Detail")]),e._v(" "),t("p",[e._v("In my ideal world, data would be as detailed as possible. Instead of knowing how many items a library lent every month, I want that data for every hour. In fact I want to have every lending record! But feasibly that would make the data unwieldy and difficult to work with, and wouldn’t be in-line with the statistics libraries are used to.")]),e._v(" "),t("p",[e._v("We primarily made decisions based upon what library services already do. In a lot of cases this was data aggregated into monthly counts, with fields such as library branch and item type used to break down that data.")]),e._v(" "),t("h2",{attrs:{id:"the-future"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#the-future"}},[e._v("#")]),e._v(" The future")]),e._v(" "),t("p",[e._v("The initial meetings were held over two years ago, and it seems longer than that! A lot has happened in the meantime. We are still in a global pandemic that from library perspectives has de-prioritised anything other than core services.")]),e._v(" "),t("p",[e._v("However, there are good examples of the data in action. Barnet libraries "),t("a",{attrs:{href:"https://open.barnet.gov.uk/dataset/e14dj/library-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("publish 5 out of the 7 data schemas"),t("OutboundLink")],1),e._v(" on a regular basis.")]),e._v(" "),t("p",[e._v("I have also been creating tools that highlight how the data can be used such as "),t("a",{attrs:{href:"https://www.librarymap.co.uk",target:"_blank",rel:"noopener noreferrer"}},[e._v("Library map"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://www.mobilelibraries.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mobile libraries"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("There is national work underway that can make use of these schemas. The British Library is working on a "),t("a",{attrs:{href:"https://www.artscouncil.org.uk/blog/single-digital-presence-libraries",target:"_blank",rel:"noopener noreferrer"}},[e._v("Single Digital Presence"),t("OutboundLink")],1),e._v(" project that will require data from library services in a standard form.")]),e._v(" "),t("p",[e._v("Internationally there are calls for more public library open data. The International Federation of Library Associations and Institutions (IFLA) has "),t("a",{attrs:{href:"https://www.ifla.org/news/ifla-releases-statement-on-open-library-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("released a statement on Open Library Data"),t("OutboundLink")],1),e._v(" calling for “governments to ensure, either directly or through supporting others, the collection and open publication of data about libraries and their use”. It would be great to work with organisations like IFLA to promote schemas that could be reused Internationally as well as for local services. There could also be the opportunity to use other Frictionless Data tools to aid in publishing data, such as "),t("a",{attrs:{href:"https://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Hopefully in the future there can be workshops, training events, and conferences that allow these data schemas to be discussed and further developed.")])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/153.7b25b3e7.js b/assets/js/153.53c6673a.js similarity index 98% rename from assets/js/153.7b25b3e7.js rename to assets/js/153.53c6673a.js index 8544a19cd..4f8a83ed2 100644 --- a/assets/js/153.7b25b3e7.js +++ b/assets/js/153.53c6673a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{686:function(e,t,a){"use strict";a.r(t);var r=a(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that we responded to a "),a("a",{attrs:{href:"https://sam.gov/opp/869f4051df38475591fa48fce5b0868d/view",target:"_blank",rel:"noopener noreferrer"}},[e._v("request for information"),a("OutboundLink")],1),e._v(" that was recently published by NASA for its "),a("a",{attrs:{href:"https://science.nasa.gov/earth-science/earth-system-observatory",target:"_blank",rel:"noopener noreferrer"}},[e._v("Earth System Observatory (ESO)"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("What is ESO? It is a set of (mainly satellite) missions providing information on planet Earth, which can guide efforts related to climate change, natural hazard mitigation, fighting forest fires, and improving real-time agricultural processes.")]),e._v(" "),a("p",[e._v("With this request for information, ESO wants to gather expert advice on ways to find a more integrated approach to enhance data architecture efficiency and promote the open science principles.")]),e._v(" "),a("p",[a("strong",[e._v("We believe Frictionless Data would benefit the mission science data processing in several ways.")]),e._v(" Here’s how:")]),e._v(" "),a("p",[e._v("First, Frictionless automatically infers metadata and schemas from a data file, and allows users to edit that information. Creating good metadata is vital for downstream data users – if you can’t understand the data, you can’t use it (or can’t "),a("em",[e._v("easily")]),e._v(" use it). Similarly, having a data schema is useful for interoperability, promoting the usefulness of datasets.")]),e._v(" "),a("p",[e._v("The second Frictionless function we think will be helpful is data validation. Frictionless validates both the structure and content of a dataset, using built-in and custom checks. For instance, Frictionless will check for missing values, incorrect data types, or other constraints (e.g. temperature data points that exceed a certain threshold). If any errors are detected, Frictionless will generate a report for the user detailing the error so the user can fix the data during processing.")]),e._v(" "),a("p",[e._v("Finally, users can write reproducible data transformation pipelines with Frictionless. Writing declarative transform pipelines allows humans and machines to understand the data cleaning steps and repeat those processes if needed in the future. Collectively, these functions create well documented, high quality, clean data that can then be used in further downstream analysis.")]),e._v(" "),a("p",[e._v("We provided them with two examples of relevant collaboration:")]),e._v(" "),a("h3",{attrs:{id:"use-case-1"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-case-1"}},[e._v("#")]),e._v(" Use Case 1")]),e._v(" "),a("p",[e._v("The "),a("a",{attrs:{href:"https://www.bco-dmo.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Biological and Chemical Oceanography Data Management Office (BCO-DMO)"),a("OutboundLink")],1),e._v(" cleans and hosts a wide variety of open oceanography data sets for use by researchers. A main problem for them was data being submitted to them was messy and not standardized, and it was time consuming and difficult for their data managers to clean in a reproducible, documented way. They implemented Frictionless code to create a new data transformation pipeline that ingests the messy data, performs defined cleaning/transforming steps, documents those steps, and produces a cleaned, standardized dataset. It also produces a (human and machine-readable) document detailing all the transformation steps so that downstream users could understand what happened to the data and undo/repeat if necessary. This process not only helps data managers clean data faster and more efficiently, it also drives open science by making the hosted data more understandable and usable while preserving provenance.")]),e._v(" "),a("p",[e._v("More info on this use case "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"use-case-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-case-2"}},[e._v("#")]),e._v(" Use Case 2")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://datadryad.org/stash",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad"),a("OutboundLink")],1),e._v(" is a biological data repository with a large user base. In our collaboration, their main issue was that they do not have the people-power to curate all the submitted datasets, so they implemented Frictionless tooling to help data submitters curate their data as they submit it. When data is submitted on the Dryad platform, Frictionless performs validation checks, and generates a report if any errors are found. The data submitter can then fix that error (e.g. there are no headers in row 1) and resubmit. Creating easy-to-understand error reports helps submitters understand how to create more useable, standardized data, and also frees up valuable time for the Dryad data management team. Ultimately, now the Dryad data repository hosts higher quality open science data.")]),e._v(" "),a("p",[e._v("More info on this use case "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/09/dryad-pilot/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Are there other ways you think Frictionless Data could help the ESO project? Let us know!")]),e._v(" "),a("p",[a("em",[e._v("Image used: Antarctica Eclipsed. NASA image courtesy of the DSCOVR EPIC team. NASA Earth Observatory images by Joshua Stevens, using Landsat data from the U.S. Geological Survey. Story by Sara E. Pratt.")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{687:function(e,t,a){"use strict";a.r(t);var r=a(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that we responded to a "),a("a",{attrs:{href:"https://sam.gov/opp/869f4051df38475591fa48fce5b0868d/view",target:"_blank",rel:"noopener noreferrer"}},[e._v("request for information"),a("OutboundLink")],1),e._v(" that was recently published by NASA for its "),a("a",{attrs:{href:"https://science.nasa.gov/earth-science/earth-system-observatory",target:"_blank",rel:"noopener noreferrer"}},[e._v("Earth System Observatory (ESO)"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("What is ESO? It is a set of (mainly satellite) missions providing information on planet Earth, which can guide efforts related to climate change, natural hazard mitigation, fighting forest fires, and improving real-time agricultural processes.")]),e._v(" "),a("p",[e._v("With this request for information, ESO wants to gather expert advice on ways to find a more integrated approach to enhance data architecture efficiency and promote the open science principles.")]),e._v(" "),a("p",[a("strong",[e._v("We believe Frictionless Data would benefit the mission science data processing in several ways.")]),e._v(" Here’s how:")]),e._v(" "),a("p",[e._v("First, Frictionless automatically infers metadata and schemas from a data file, and allows users to edit that information. Creating good metadata is vital for downstream data users – if you can’t understand the data, you can’t use it (or can’t "),a("em",[e._v("easily")]),e._v(" use it). Similarly, having a data schema is useful for interoperability, promoting the usefulness of datasets.")]),e._v(" "),a("p",[e._v("The second Frictionless function we think will be helpful is data validation. Frictionless validates both the structure and content of a dataset, using built-in and custom checks. For instance, Frictionless will check for missing values, incorrect data types, or other constraints (e.g. temperature data points that exceed a certain threshold). If any errors are detected, Frictionless will generate a report for the user detailing the error so the user can fix the data during processing.")]),e._v(" "),a("p",[e._v("Finally, users can write reproducible data transformation pipelines with Frictionless. Writing declarative transform pipelines allows humans and machines to understand the data cleaning steps and repeat those processes if needed in the future. Collectively, these functions create well documented, high quality, clean data that can then be used in further downstream analysis.")]),e._v(" "),a("p",[e._v("We provided them with two examples of relevant collaboration:")]),e._v(" "),a("h3",{attrs:{id:"use-case-1"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-case-1"}},[e._v("#")]),e._v(" Use Case 1")]),e._v(" "),a("p",[e._v("The "),a("a",{attrs:{href:"https://www.bco-dmo.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Biological and Chemical Oceanography Data Management Office (BCO-DMO)"),a("OutboundLink")],1),e._v(" cleans and hosts a wide variety of open oceanography data sets for use by researchers. A main problem for them was data being submitted to them was messy and not standardized, and it was time consuming and difficult for their data managers to clean in a reproducible, documented way. They implemented Frictionless code to create a new data transformation pipeline that ingests the messy data, performs defined cleaning/transforming steps, documents those steps, and produces a cleaned, standardized dataset. It also produces a (human and machine-readable) document detailing all the transformation steps so that downstream users could understand what happened to the data and undo/repeat if necessary. This process not only helps data managers clean data faster and more efficiently, it also drives open science by making the hosted data more understandable and usable while preserving provenance.")]),e._v(" "),a("p",[e._v("More info on this use case "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"use-case-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#use-case-2"}},[e._v("#")]),e._v(" Use Case 2")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://datadryad.org/stash",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dryad"),a("OutboundLink")],1),e._v(" is a biological data repository with a large user base. In our collaboration, their main issue was that they do not have the people-power to curate all the submitted datasets, so they implemented Frictionless tooling to help data submitters curate their data as they submit it. When data is submitted on the Dryad platform, Frictionless performs validation checks, and generates a report if any errors are found. The data submitter can then fix that error (e.g. there are no headers in row 1) and resubmit. Creating easy-to-understand error reports helps submitters understand how to create more useable, standardized data, and also frees up valuable time for the Dryad data management team. Ultimately, now the Dryad data repository hosts higher quality open science data.")]),e._v(" "),a("p",[e._v("More info on this use case "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/08/09/dryad-pilot/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Are there other ways you think Frictionless Data could help the ESO project? Let us know!")]),e._v(" "),a("p",[a("em",[e._v("Image used: Antarctica Eclipsed. NASA image courtesy of the DSCOVR EPIC team. NASA Earth Observatory images by Joshua Stevens, using Landsat data from the U.S. Geological Survey. Story by Sara E. Pratt.")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/154.f147514e.js b/assets/js/154.63d3df53.js similarity index 98% rename from assets/js/154.f147514e.js rename to assets/js/154.63d3df53.js index 21c864504..cc3ad0a16 100644 --- a/assets/js/154.f147514e.js +++ b/assets/js/154.63d3df53.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{687:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our second community call of the year, on February 24"),r("sup",[e._v("th")]),e._v(", we had Ilya Kreymer and Ed Summers from "),r("a",{attrs:{href:"https://webrecorder.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webrecorder"),r("OutboundLink")],1),e._v(" updating us on their effort in standardising the WAZC format (which they discussed with us already when it was still at an early development stage, in the community call of December 2020 (you can read the blog "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/12/17/december-virtual-hangout/#a-recap-from-our-december-community-call",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Webrecorder is a suite of open source tools and packages to capture interactive websites and replay them at a later time as accurately as possible. They created the WACZ format to have a portable format for archived web content that can be distributed and contain additional useful metadata about the web archives, using the Frictionless Data Package standard.")]),e._v(" "),r("p",[e._v("Ed & Ilya also hoped to discuss with the community the possibility of signing these Data Packages, in order to provide an optional mechanism to make web archives bundled in WACZ more trusted, because a cryptographic proof of who the author of a Data Package is might be interesting for other projects as well. Unfortunately the call was rather empty. Maybe it was because of the change of time, but in case there are other reasons why you did not come, please let us know (dropping an email at "),r("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(" or with a direct message on Discord/Matrix).")]),e._v(" "),r("p",[e._v("We did record the call though, so in case anyone is interested in having that discussion, we could always try to have it asynchronously on "),r("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/TIyOTEyAu7k",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("Their current proposal to create signed WACZ packages is summarised in "),r("a",{attrs:{href:"https://github.com/webrecorder/wacz-auth-spec/blob/main/spec.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),r("OutboundLink")],1),e._v(", so you can always reach out to them there as well.")]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Next community call is on March 31"),r("sup",[e._v("st")]),e._v(". We are going to hear from Johan Richer from Multi, who is going to present the latest prototype of Etalab and his theory of "),r("a",{attrs:{href:"https://jailbreak.gitlab.io/investigation-catalogue/synthese.html#/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal vs catalogue"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/ukxLQCdyndc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{689:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our second community call of the year, on February 24"),r("sup",[e._v("th")]),e._v(", we had Ilya Kreymer and Ed Summers from "),r("a",{attrs:{href:"https://webrecorder.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Webrecorder"),r("OutboundLink")],1),e._v(" updating us on their effort in standardising the WAZC format (which they discussed with us already when it was still at an early development stage, in the community call of December 2020 (you can read the blog "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/12/17/december-virtual-hangout/#a-recap-from-our-december-community-call",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Webrecorder is a suite of open source tools and packages to capture interactive websites and replay them at a later time as accurately as possible. They created the WACZ format to have a portable format for archived web content that can be distributed and contain additional useful metadata about the web archives, using the Frictionless Data Package standard.")]),e._v(" "),r("p",[e._v("Ed & Ilya also hoped to discuss with the community the possibility of signing these Data Packages, in order to provide an optional mechanism to make web archives bundled in WACZ more trusted, because a cryptographic proof of who the author of a Data Package is might be interesting for other projects as well. Unfortunately the call was rather empty. Maybe it was because of the change of time, but in case there are other reasons why you did not come, please let us know (dropping an email at "),r("a",{attrs:{href:"mailto:sara.petti@okfn.org"}},[e._v("sara.petti@okfn.org")]),e._v(" or with a direct message on Discord/Matrix).")]),e._v(" "),r("p",[e._v("We did record the call though, so in case anyone is interested in having that discussion, we could always try to have it asynchronously on "),r("a",{attrs:{href:"https://discord.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/TIyOTEyAu7k",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("Their current proposal to create signed WACZ packages is summarised in "),r("a",{attrs:{href:"https://github.com/webrecorder/wacz-auth-spec/blob/main/spec.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),r("OutboundLink")],1),e._v(", so you can always reach out to them there as well.")]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Next community call is on March 31"),r("sup",[e._v("st")]),e._v(". We are going to hear from Johan Richer from Multi, who is going to present the latest prototype of Etalab and his theory of "),r("a",{attrs:{href:"https://jailbreak.gitlab.io/investigation-catalogue/synthese.html#/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal vs catalogue"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/ukxLQCdyndc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("As usual, you can join us on "),r("a",{attrs:{href:"https://discord.com/invite/j9DNFNw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(" or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/155.42825827.js b/assets/js/155.f236890f.js similarity index 99% rename from assets/js/155.42825827.js rename to assets/js/155.f236890f.js index e571f6245..4315b176a 100644 --- a/assets/js/155.42825827.js +++ b/assets/js/155.f236890f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{688:function(e,t,a){"use strict";a.r(t);var n=a(29),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("During these past tumultuous years, it has been striking to witness the role that information has played in furthering suffering: misinformation, lack of data transparency, and closed technology have worsened the pandemic, increased political strife, and hurt climate policy. Building on these observations, the team at Open Knowledge Foundation are refocusing our energies on how we can come together to empower people, communities, and organisations to create and use open knowledge to solve the most urgent issues of our time, including climate change, inequality, and access to knowledge . Undaunted by these substantial challenges, we entered 2022 with enthusiasm for finding ways to work together, starting with climate data.")]),e._v(" "),a("p",[e._v("To start this year fresh and inspired, we convened two gatherings of climate researchers, activists, and organisations to brainstorm ways to collaborate to make open climate data more usable, accessible, and impactful. Over 30 experts attended the two sessions, from organisations around the world, and we identified and discussed many problems in the climate data space. We confirmed our initial theory that many of us are working siloed and that combining skills, knowledge and networks can result in a powerful alliance across tech communities, data experts and climate crisis activists.")]),e._v(" "),a("p",[e._v("Now, we want to share with you some common themes from these sessions and ask: how can we work together to solve these pressing climate issues?")]),e._v(" "),a("p",[e._v("A primary concern of attendees was "),a("strong",[e._v("the disconnect between how (and why) data is produced and how data can (and should) be used")]),e._v(". This disconnect shows up as frictions for data use: we know that much existing “open” data isn’t actually usable. During the call, many participants mentioned they frequently can’t find open data, and even when they can find it, they can’t easily access it. Even when they can access the data, they often can’t easily use it.")]),e._v(" "),a("p",[e._v("So why is it so hard to find, access, and use climate data? First, climate data is not particularly well standardised or curated, and data creators need better training in data management best practices. Another issue is that many climate data users don’t have technical training or knowledge required to clean messy data, greatly slowing down their research or policy work.")]),e._v(" "),a("h3",{attrs:{id:"how-will-the-open-knowledge-foundation-fix-the-identified-problems-skills-standards-and-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-will-the-open-knowledge-foundation-fix-the-identified-problems-skills-standards-and-community"}},[e._v("#")]),e._v(" How will the Open Knowledge Foundation fix the identified problems? Skills, standards and community.")]),e._v(" "),a("p",[e._v("An aim for this work will be to bridge the gaps between data creators and users. We plan to host several workshops in the future to work with both these groups, focusing on identifying both skills gaps and data gaps, then working towards capacity building.")]),e._v(" "),a("p",[e._v("Our goal with capacity building will be to give a data platform to those most affected by climate change. How do we make it easier for less technical or newer data users to effectively use climate data? Our future workshops will focus on training data creators and users with the "),a("a",{attrs:{href:"https://frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Frictionless Data tooling"),a("OutboundLink")],1),e._v(" to better manage data, create higher quality data, and share data in impactful ways that will empower trained researchers and activists alike. For instance, the Frictionless toolbox can help data creators generate clean data that is easy to understand, share, and use, and the new Frictionless tool Livemark can help data consumers easily share climate data with impactful visualisations and narratives.")]),e._v(" "),a("p",[e._v("Another theme that emerged from the brainstorm sessions was the role data plays in generating knowledge versus the role knowledge plays in generating data, and how this interplay can be maximised to create change. For instance, "),a("strong",[e._v("we need to take a hard look at how “open” replicates cycles of inequalities")]),e._v(". Several people brought up the great work citizen scientists are doing for climate research, but how these efforts are rarely recognised by governments or other official research channels. So much vital data on local impacts of climate change are being lost as they aren’t being incorporated into official datasets. How do we make data more equitable, ensuring that those being most affected by climate change can use data to tell their stories?")]),e._v(" "),a("p",[e._v("We call on data organisations, climate researchers, and activists to join us in these efforts. How can we best work together to solve pressing climate change issues? Would you like to partner with us for workshops, or do you have other ideas for collaborations? Let us know! We would like to give our utmost thanks to the organisations that joined our brainstorming sessions for paving the way in this important work. To continue planning this work, we are creating a space to talk in our Frictionless Data community chat, and we invite all interested parties to join us. We are currently migrating our community from Discord to Slack. We encourage you to join the Slack channel, which will soon be populated with all Frictionless community members: "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-14x9bxnkm-2y~uQcmmrqarSP2kV39_Kg",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://join.slack.com/t/frictionlessdata/shared_invite/zt-14x9bxnkm-2y~uQcmmrqarSP2kV39_Kg"),a("OutboundLink")],1),a("br"),e._v("\n(We also have a Matrix mirror if you prefer Matrix: "),a("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://matrix.to/#/#frictionless-data:matrix.org"),a("OutboundLink")],1),e._v(")")]),e._v(" "),a("p",[e._v("Finally, we’d like to share this list of resources that attendees shared during the calls:")]),e._v(" "),a("ul",[a("li",[e._v("Patrick J McGovern Data for Climate 2022 Accelerator: "),a("a",{attrs:{href:"https://www.mcgovern.org/foundation-awards-4-5m-including-new-accelerator-grants-to-advance-data-driven-climate-solutions/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.mcgovern.org/foundation-awards-4-5m-including-new-accelerator-grants-to-advance-data-driven-climate-solutions/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Open Climate: "),a("a",{attrs:{href:"https://www.appropedia.org/OpenClimate",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.appropedia.org/OpenClimate"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Environmental Data and Governance Initiative: "),a("a",{attrs:{href:"https://envirodatagov.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://envirodatagov.org/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Earth Science Information Partners: "),a("a",{attrs:{href:"https://www.esipfed.org/about",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.esipfed.org/about"),a("OutboundLink")],1),a("br"),e._v("\nCourse on environmental data journalism by School of Data Brazil: "),a("a",{attrs:{href:"https://escoladedados.org/courses/jornalismo-de-dados-ambientais/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://escoladedados.org/courses/jornalismo-de-dados-ambientais/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Catalogue of environmental databases in Brazil by School of Data Brazil: "),a("a",{attrs:{href:"https://bit.ly/dados-ambientais",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://bit.ly/dados-ambientais"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("A monthly meetup for small companies to share best practices (and data): "),a("a",{attrs:{href:"https://climatiq.io/blog/climate-action-net-zero-ambition-best-practices-for-sme",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://climatiq.io/blog/climate-action-net-zero-ambition-best-practices-for-sme"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Reddit Datasets: "),a("a",{attrs:{href:"https://www.reddit.com/r/datasets/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.reddit.com/r/datasets/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Hardware information standard: "),a("a",{attrs:{href:"https://barbal.co/the-open-know-how-manifest-specification-version-1-0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://barbal.co/the-open-know-how-manifest-specification-version-1-0/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Catalyst Cooperative: "),a("a",{attrs:{href:"https://github.com/catalyst-cooperative/pudl",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/catalyst-cooperative/pudl"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://zenodo.org/communities/catalyst-cooperative/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://zenodo.org/communities/catalyst-cooperative/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Research Data Alliance Agriculture: "),a("a",{attrs:{href:"https://www.rd-alliance.org/rda-disciplines/rda-and-agriculture",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.rd-alliance.org/rda-disciplines/rda-and-agriculture"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Open Climate Now!: "),a("a",{attrs:{href:"https://branch.climateaction.tech/issues/issue-2/open-climate-now/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://branch.climateaction.tech/issues/issue-2/open-climate-now/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Metadata Game Changers: "),a("a",{attrs:{href:"https://metadatagamechangers.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://metadatagamechangers.com"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Excellent lecture by J McGlade bridging attitudes etc. to the data story and behaviour change effects: "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=eIRlLlrnmBM&t=1561s",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.youtube.com/watch?v=eIRlLlrnmBM&t=1561s"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("The Integrated-Assessment Modeling Community (IAMC) is developing a Python package “pyam” for scenario analysis & data visualization: "),a("a",{attrs:{href:"https://pyam-iamc.readthedocs.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://pyam-iamc.readthedocs.io"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("IIASA is hosting numerous scenario ensemble databases, see "),a("a",{attrs:{href:"https://data.ece.iiasa.ac.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://data.ece.iiasa.ac.at"),a("OutboundLink")],1),e._v(", most importantly the scenario ensemble supporting the quantitative assessment in the IPCC 1.5°C Special Report (2018), and a similar database will be released in two months together with IPCC AR6 WG3")]),e._v(" "),a("li",[e._v("Letter to IEA by the openmod community, "),a("a",{attrs:{href:"https://forum.openmod.org/t/open-letter-to-iea-and-member-countries-requesting-open-data/2949",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://forum.openmod.org/t/open-letter-to-iea-and-member-countries-requesting-open-data/2949"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{690:function(e,t,a){"use strict";a.r(t);var n=a(29),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("During these past tumultuous years, it has been striking to witness the role that information has played in furthering suffering: misinformation, lack of data transparency, and closed technology have worsened the pandemic, increased political strife, and hurt climate policy. Building on these observations, the team at Open Knowledge Foundation are refocusing our energies on how we can come together to empower people, communities, and organisations to create and use open knowledge to solve the most urgent issues of our time, including climate change, inequality, and access to knowledge . Undaunted by these substantial challenges, we entered 2022 with enthusiasm for finding ways to work together, starting with climate data.")]),e._v(" "),a("p",[e._v("To start this year fresh and inspired, we convened two gatherings of climate researchers, activists, and organisations to brainstorm ways to collaborate to make open climate data more usable, accessible, and impactful. Over 30 experts attended the two sessions, from organisations around the world, and we identified and discussed many problems in the climate data space. We confirmed our initial theory that many of us are working siloed and that combining skills, knowledge and networks can result in a powerful alliance across tech communities, data experts and climate crisis activists.")]),e._v(" "),a("p",[e._v("Now, we want to share with you some common themes from these sessions and ask: how can we work together to solve these pressing climate issues?")]),e._v(" "),a("p",[e._v("A primary concern of attendees was "),a("strong",[e._v("the disconnect between how (and why) data is produced and how data can (and should) be used")]),e._v(". This disconnect shows up as frictions for data use: we know that much existing “open” data isn’t actually usable. During the call, many participants mentioned they frequently can’t find open data, and even when they can find it, they can’t easily access it. Even when they can access the data, they often can’t easily use it.")]),e._v(" "),a("p",[e._v("So why is it so hard to find, access, and use climate data? First, climate data is not particularly well standardised or curated, and data creators need better training in data management best practices. Another issue is that many climate data users don’t have technical training or knowledge required to clean messy data, greatly slowing down their research or policy work.")]),e._v(" "),a("h3",{attrs:{id:"how-will-the-open-knowledge-foundation-fix-the-identified-problems-skills-standards-and-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-will-the-open-knowledge-foundation-fix-the-identified-problems-skills-standards-and-community"}},[e._v("#")]),e._v(" How will the Open Knowledge Foundation fix the identified problems? Skills, standards and community.")]),e._v(" "),a("p",[e._v("An aim for this work will be to bridge the gaps between data creators and users. We plan to host several workshops in the future to work with both these groups, focusing on identifying both skills gaps and data gaps, then working towards capacity building.")]),e._v(" "),a("p",[e._v("Our goal with capacity building will be to give a data platform to those most affected by climate change. How do we make it easier for less technical or newer data users to effectively use climate data? Our future workshops will focus on training data creators and users with the "),a("a",{attrs:{href:"https://frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Frictionless Data tooling"),a("OutboundLink")],1),e._v(" to better manage data, create higher quality data, and share data in impactful ways that will empower trained researchers and activists alike. For instance, the Frictionless toolbox can help data creators generate clean data that is easy to understand, share, and use, and the new Frictionless tool Livemark can help data consumers easily share climate data with impactful visualisations and narratives.")]),e._v(" "),a("p",[e._v("Another theme that emerged from the brainstorm sessions was the role data plays in generating knowledge versus the role knowledge plays in generating data, and how this interplay can be maximised to create change. For instance, "),a("strong",[e._v("we need to take a hard look at how “open” replicates cycles of inequalities")]),e._v(". Several people brought up the great work citizen scientists are doing for climate research, but how these efforts are rarely recognised by governments or other official research channels. So much vital data on local impacts of climate change are being lost as they aren’t being incorporated into official datasets. How do we make data more equitable, ensuring that those being most affected by climate change can use data to tell their stories?")]),e._v(" "),a("p",[e._v("We call on data organisations, climate researchers, and activists to join us in these efforts. How can we best work together to solve pressing climate change issues? Would you like to partner with us for workshops, or do you have other ideas for collaborations? Let us know! We would like to give our utmost thanks to the organisations that joined our brainstorming sessions for paving the way in this important work. To continue planning this work, we are creating a space to talk in our Frictionless Data community chat, and we invite all interested parties to join us. We are currently migrating our community from Discord to Slack. We encourage you to join the Slack channel, which will soon be populated with all Frictionless community members: "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-14x9bxnkm-2y~uQcmmrqarSP2kV39_Kg",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://join.slack.com/t/frictionlessdata/shared_invite/zt-14x9bxnkm-2y~uQcmmrqarSP2kV39_Kg"),a("OutboundLink")],1),a("br"),e._v("\n(We also have a Matrix mirror if you prefer Matrix: "),a("a",{attrs:{href:"https://matrix.to/#/#frictionless-data:matrix.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://matrix.to/#/#frictionless-data:matrix.org"),a("OutboundLink")],1),e._v(")")]),e._v(" "),a("p",[e._v("Finally, we’d like to share this list of resources that attendees shared during the calls:")]),e._v(" "),a("ul",[a("li",[e._v("Patrick J McGovern Data for Climate 2022 Accelerator: "),a("a",{attrs:{href:"https://www.mcgovern.org/foundation-awards-4-5m-including-new-accelerator-grants-to-advance-data-driven-climate-solutions/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.mcgovern.org/foundation-awards-4-5m-including-new-accelerator-grants-to-advance-data-driven-climate-solutions/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Open Climate: "),a("a",{attrs:{href:"https://www.appropedia.org/OpenClimate",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.appropedia.org/OpenClimate"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Environmental Data and Governance Initiative: "),a("a",{attrs:{href:"https://envirodatagov.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://envirodatagov.org/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Earth Science Information Partners: "),a("a",{attrs:{href:"https://www.esipfed.org/about",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.esipfed.org/about"),a("OutboundLink")],1),a("br"),e._v("\nCourse on environmental data journalism by School of Data Brazil: "),a("a",{attrs:{href:"https://escoladedados.org/courses/jornalismo-de-dados-ambientais/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://escoladedados.org/courses/jornalismo-de-dados-ambientais/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Catalogue of environmental databases in Brazil by School of Data Brazil: "),a("a",{attrs:{href:"https://bit.ly/dados-ambientais",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://bit.ly/dados-ambientais"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("A monthly meetup for small companies to share best practices (and data): "),a("a",{attrs:{href:"https://climatiq.io/blog/climate-action-net-zero-ambition-best-practices-for-sme",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://climatiq.io/blog/climate-action-net-zero-ambition-best-practices-for-sme"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Reddit Datasets: "),a("a",{attrs:{href:"https://www.reddit.com/r/datasets/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.reddit.com/r/datasets/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Hardware information standard: "),a("a",{attrs:{href:"https://barbal.co/the-open-know-how-manifest-specification-version-1-0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://barbal.co/the-open-know-how-manifest-specification-version-1-0/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Catalyst Cooperative: "),a("a",{attrs:{href:"https://github.com/catalyst-cooperative/pudl",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/catalyst-cooperative/pudl"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://zenodo.org/communities/catalyst-cooperative/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://zenodo.org/communities/catalyst-cooperative/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Research Data Alliance Agriculture: "),a("a",{attrs:{href:"https://www.rd-alliance.org/rda-disciplines/rda-and-agriculture",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.rd-alliance.org/rda-disciplines/rda-and-agriculture"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Open Climate Now!: "),a("a",{attrs:{href:"https://branch.climateaction.tech/issues/issue-2/open-climate-now/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://branch.climateaction.tech/issues/issue-2/open-climate-now/"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Metadata Game Changers: "),a("a",{attrs:{href:"https://metadatagamechangers.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://metadatagamechangers.com"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Excellent lecture by J McGlade bridging attitudes etc. to the data story and behaviour change effects: "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=eIRlLlrnmBM&t=1561s",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.youtube.com/watch?v=eIRlLlrnmBM&t=1561s"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("The Integrated-Assessment Modeling Community (IAMC) is developing a Python package “pyam” for scenario analysis & data visualization: "),a("a",{attrs:{href:"https://pyam-iamc.readthedocs.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://pyam-iamc.readthedocs.io"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("IIASA is hosting numerous scenario ensemble databases, see "),a("a",{attrs:{href:"https://data.ece.iiasa.ac.at",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://data.ece.iiasa.ac.at"),a("OutboundLink")],1),e._v(", most importantly the scenario ensemble supporting the quantitative assessment in the IPCC 1.5°C Special Report (2018), and a similar database will be released in two months together with IPCC AR6 WG3")]),e._v(" "),a("li",[e._v("Letter to IEA by the openmod community, "),a("a",{attrs:{href:"https://forum.openmod.org/t/open-letter-to-iea-and-member-countries-requesting-open-data/2949",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://forum.openmod.org/t/open-letter-to-iea-and-member-countries-requesting-open-data/2949"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/156.8334f792.js b/assets/js/156.5c3dc938.js similarity index 98% rename from assets/js/156.8334f792.js rename to assets/js/156.5c3dc938.js index 630701e79..d89280ad7 100644 --- a/assets/js/156.8334f792.js +++ b/assets/js/156.5c3dc938.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{689:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last community call on March 31"),a("sup",[e._v("st")]),e._v(", we had a discussion with Johan Richer from "),a("a",{attrs:{href:"https://www.multi.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi"),a("OutboundLink")],1),e._v(" around his theory of portal vs catalogue.")]),e._v(" "),a("p",[e._v("The discussion started with a presentation of the latest catalogue prototype by "),a("a",{attrs:{href:"https://www.data.gouv.fr/fr/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Etalab"),a("OutboundLink")],1),e._v(" currently in development: "),a("a",{attrs:{href:"https://github.com/etalab/catalogage-donnees",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/etalab/catalogage-donnees"),a("OutboundLink")],1),e._v(". Data cataloguing has become a major component of open data policies in France, but there are issues related to the maintainability of the catalogue and the traceability of the data.")]),e._v(" "),a("p",[e._v("In the beginning the data producers were also the data publishers, and therefore the purpose of a portal was to catalogue, publish, and store the data. Recently the process became more complicated, and the cataloguing became a prerequisite to publication. Instead of publishing by default, data producers want to make sure that the data is clean before injecting it into the portal. This started a new workflow of internal data management, that the portals were not made for. So how can we restore the broken link between catalogue and portal? Johan thinks data lineage is key.")]),e._v(" "),a("p",[e._v("If you want to know more about it, you can go and have a look at Johan’s presentation "),a("a",{attrs:{href:"https://jailbreak.gitlab.io/investigation-catalogue/synthese.html#/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" (in French, but "),a("a",{attrs:{href:"https://jailbreak-gitlab-io.translate.goog/investigation-catalogue/synthese.html?_x_tr_sl=fr&_x_tr_tl=en#/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a shortcut to the Google translation"),a("OutboundLink")],1),e._v(" if you’d rather have it in English), or watch the recording:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MvrMJhn4xMo",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"news-from-the-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),a("p",[e._v("Our community chat has moved from Discord to Slack! In the community survey we ran last year, many people suggested moving to Slack, and the terms of services are definitely better (ranking B vs E for Discord, according to "),a("a",{attrs:{href:"https://tosdr.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://tosdr.org/"),a("OutboundLink")],1),e._v(" ). We will also be able to organise the questions & answer better, and that will definitely be an added value for the community.")]),e._v(" "),a("p",[e._v("To join our community chat: "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/messages/general",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.slack.com/messages/general"),a("OutboundLink")],1)]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on April 28"),a("sup",[e._v("th")]),e._v(". We are going to hear about open science practices at the Turing Way from former Frictionless Fellow Anne Lee Steele."),a("br"),e._v("\nYou can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/CCa0g-hYSUg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("Join us on "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/messages/general",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{691:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last community call on March 31"),a("sup",[e._v("st")]),e._v(", we had a discussion with Johan Richer from "),a("a",{attrs:{href:"https://www.multi.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi"),a("OutboundLink")],1),e._v(" around his theory of portal vs catalogue.")]),e._v(" "),a("p",[e._v("The discussion started with a presentation of the latest catalogue prototype by "),a("a",{attrs:{href:"https://www.data.gouv.fr/fr/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Etalab"),a("OutboundLink")],1),e._v(" currently in development: "),a("a",{attrs:{href:"https://github.com/etalab/catalogage-donnees",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/etalab/catalogage-donnees"),a("OutboundLink")],1),e._v(". Data cataloguing has become a major component of open data policies in France, but there are issues related to the maintainability of the catalogue and the traceability of the data.")]),e._v(" "),a("p",[e._v("In the beginning the data producers were also the data publishers, and therefore the purpose of a portal was to catalogue, publish, and store the data. Recently the process became more complicated, and the cataloguing became a prerequisite to publication. Instead of publishing by default, data producers want to make sure that the data is clean before injecting it into the portal. This started a new workflow of internal data management, that the portals were not made for. So how can we restore the broken link between catalogue and portal? Johan thinks data lineage is key.")]),e._v(" "),a("p",[e._v("If you want to know more about it, you can go and have a look at Johan’s presentation "),a("a",{attrs:{href:"https://jailbreak.gitlab.io/investigation-catalogue/synthese.html#/3",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" (in French, but "),a("a",{attrs:{href:"https://jailbreak-gitlab-io.translate.goog/investigation-catalogue/synthese.html?_x_tr_sl=fr&_x_tr_tl=en#/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a shortcut to the Google translation"),a("OutboundLink")],1),e._v(" if you’d rather have it in English), or watch the recording:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MvrMJhn4xMo",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"news-from-the-community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),a("p",[e._v("Our community chat has moved from Discord to Slack! In the community survey we ran last year, many people suggested moving to Slack, and the terms of services are definitely better (ranking B vs E for Discord, according to "),a("a",{attrs:{href:"https://tosdr.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://tosdr.org/"),a("OutboundLink")],1),e._v(" ). We will also be able to organise the questions & answer better, and that will definitely be an added value for the community.")]),e._v(" "),a("p",[e._v("To join our community chat: "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/messages/general",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionlessdata.slack.com/messages/general"),a("OutboundLink")],1)]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on April 28"),a("sup",[e._v("th")]),e._v(". We are going to hear about open science practices at the Turing Way from former Frictionless Fellow Anne Lee Steele."),a("br"),e._v("\nYou can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),a("OutboundLink")],1)]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call recording:")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/CCa0g-hYSUg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("Join us on "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/messages/general",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/157.bf973c85.js b/assets/js/157.d3eac80a.js similarity index 98% rename from assets/js/157.bf973c85.js rename to assets/js/157.d3eac80a.js index c214b4cea..c0ac7d3f0 100644 --- a/assets/js/157.bf973c85.js +++ b/assets/js/157.d3eac80a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{690:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("At our last community call on April 28"),o("sup",[e._v("th")]),e._v(", we had a discussion around open science best practices and the Turing Way with Anne Lee Steele, who - you might remember, was part of the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/09/01/hello-fellows-cohort2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("second cohort of Frictionless Fellows"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The Turing Way is an open source and community-led handbook for reproducible, ethical and collaborative research. It is composed of more than 240 pages created by ~300 researchers over the course of 3 years, written collaboratively via GitHub PRs - contrasting to the notion of single/small-authorship papers.")]),e._v(" "),o("p",[e._v("There is currently an effort to make the Turing way develop meta-practices that can be applied to other areas as well, one example is documentation.")]),e._v(" "),o("p",[e._v("A great outcome of the call was the proposal to have a closer cooperation between the Frictionless Data community and the Turing Way’s one, possibly developing a chapter for Open Infrastructures for research to contribute upstream. This chapter would set the context and provide a vision for how to evaluate tools and platforms with a Turing Way perspective on reproducibility, ethical alternatives and collaboration in practice. For more info about this proposal, check "),o("a",{attrs:{href:"https://github.com/alan-turing-institute/the-turing-way/issues/2337",target:"_blank",rel:"noopener noreferrer"}},[e._v("this issue"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("If you want to know more about the Turing Way, have a look at the "),o("a",{attrs:{href:"https://the-turing-way.netlify.app/welcome.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("project website"),o("OutboundLink")],1),e._v(". You can also check out the full recording of the call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/-RyRFcMAGCE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"news-from-the-community"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("You’re all invited to join the Frictionless Fellows for a free virtual workshop on Open Science best practices on May 25 at 2pm UTC!"),o("br"),e._v("\nIn this beginner-friendly workshop, Fellows will demonstrate how to use the Frictionless tools to make research data more understandable, usable, and open. You will learn how to use the Frictionless non-coding tools to manipulate metadata and schemas (and why that is important!) and how to validate data in a hands-on format. Learn more & sign up on the Fellows website: "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fellows.frictionlessdata.io/"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("Reminder that our community chat has moved to Slack. Join us "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("there"),o("OutboundLink")],1),e._v(". We now also have a fully operating "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(", so if you prefer you can join us from there as well.")])])]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on May 26"),o("sup",[e._v("th")]),e._v(". We are going to hear Nick Kellett from Deploy Solutions explain to us how to build citizen science and climate change solutions, using Frictionless.")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Join us on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{692:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("At our last community call on April 28"),o("sup",[e._v("th")]),e._v(", we had a discussion around open science best practices and the Turing Way with Anne Lee Steele, who - you might remember, was part of the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/09/01/hello-fellows-cohort2/",target:"_blank",rel:"noopener noreferrer"}},[e._v("second cohort of Frictionless Fellows"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The Turing Way is an open source and community-led handbook for reproducible, ethical and collaborative research. It is composed of more than 240 pages created by ~300 researchers over the course of 3 years, written collaboratively via GitHub PRs - contrasting to the notion of single/small-authorship papers.")]),e._v(" "),o("p",[e._v("There is currently an effort to make the Turing way develop meta-practices that can be applied to other areas as well, one example is documentation.")]),e._v(" "),o("p",[e._v("A great outcome of the call was the proposal to have a closer cooperation between the Frictionless Data community and the Turing Way’s one, possibly developing a chapter for Open Infrastructures for research to contribute upstream. This chapter would set the context and provide a vision for how to evaluate tools and platforms with a Turing Way perspective on reproducibility, ethical alternatives and collaboration in practice. For more info about this proposal, check "),o("a",{attrs:{href:"https://github.com/alan-turing-institute/the-turing-way/issues/2337",target:"_blank",rel:"noopener noreferrer"}},[e._v("this issue"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("If you want to know more about the Turing Way, have a look at the "),o("a",{attrs:{href:"https://the-turing-way.netlify.app/welcome.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("project website"),o("OutboundLink")],1),e._v(". You can also check out the full recording of the call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/-RyRFcMAGCE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"news-from-the-community"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#news-from-the-community"}},[e._v("#")]),e._v(" News from the community")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("You’re all invited to join the Frictionless Fellows for a free virtual workshop on Open Science best practices on May 25 at 2pm UTC!"),o("br"),e._v("\nIn this beginner-friendly workshop, Fellows will demonstrate how to use the Frictionless tools to make research data more understandable, usable, and open. You will learn how to use the Frictionless non-coding tools to manipulate metadata and schemas (and why that is important!) and how to validate data in a hands-on format. Learn more & sign up on the Fellows website: "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fellows.frictionlessdata.io/"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("Reminder that our community chat has moved to Slack. Join us "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("there"),o("OutboundLink")],1),e._v(". We now also have a fully operating "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(", so if you prefer you can join us from there as well.")])])]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on May 26"),o("sup",[e._v("th")]),e._v(". We are going to hear Nick Kellett from Deploy Solutions explain to us how to build citizen science and climate change solutions, using Frictionless.")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Join us on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(" to say hi or ask any questions. See you there!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/158.49452f10.js b/assets/js/158.8106bdaf.js similarity index 99% rename from assets/js/158.49452f10.js rename to assets/js/158.8106bdaf.js index 79fcd5122..ddf6f87eb 100644 --- a/assets/js/158.49452f10.js +++ b/assets/js/158.8106bdaf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{692:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Is reproducing someone else’s research data a Frictionless experience? As we have seen with all the previous cohorts of Frictionless Fellows (you can read the blog "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/10/fellows-reproducing/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v("), most often than not it is sadly not the case.")]),e._v(" "),a("p",[e._v("To prove that the “reproducibility crisis” is a real problem in scientific research at the moment, we challenged the Fellows to exchange their data to see if they could reproduce each other’s Data Packages. Read about their experience:")]),e._v(" "),a("h2",{attrs:{id:"melvin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#melvin"}},[e._v("#")]),e._v(" Melvin")]),e._v(" "),a("p",[e._v("We had an interesting task for our frictionless fellow activity that involved exchanging our data sets with our fellow colleagues (pairwise) and trying to reproduce their work. My partner for this assignment was Lindsay, who is a librarian.")]),e._v(" "),a("p",[e._v("In data science, replicability and reproducibility are some of the keys to data "),a("a",{attrs:{href:"http://integrity.It",target:"_blank",rel:"noopener noreferrer"}},[e._v("integrity.It"),a("OutboundLink")],1),e._v(" creates more opportunities for new insights and reduces errors. In order to ensure reproducibility of data, one must first make sure that the raw data is available. In this regard, my partner Lindsay shared with me her data that was on her Github account to facilitate the process.")]),e._v(" "),a("p",[e._v("This process and activity were really useful and humbling. As we got to discuss our data sets with Lindsay, I realized key things such as Tidy data principles, which was the highlight for me in this whole process, besides the point that it’s not easy to understand someone else’s data without further metadata to accompany the data set. Imagine the frustration researchers go through trying to understand and reproduce other people’s data without more information on the data."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Melvin’s blog"),a("OutboundLink")],1),e._v(" to see how she managed to reproduce her fellows’ data package.")]),e._v(" "),a("h2",{attrs:{id:"victoria"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#victoria"}},[e._v("#")]),e._v(" Victoria")]),e._v(" "),a("p",[e._v("My data package partner, Zarena is an awesome social scientist in the human rights sphere. She has a background in mental health research and interests ranging from epistemic injustice to intersectionality - two terms I had to double check my understanding of. In poking around Zarena’s profile, particularly interesting was her focus on "),a("a",{attrs:{href:"https://www.universityaffairs.ca/features/feature-article/mad-studies/",target:"_blank",rel:"noopener noreferrer"}},[e._v("mad studies"),a("OutboundLink")],1),e._v(", a young interdisciplinary field dealing with identity and the marginalisation of individuals with alternative mental states. This idea - broadly accepting a spectrum of human states instead of subjecting them to a black/white absolute interpretation - was completely new to me and fascinating! But being a social theory noob, I suspected to encounter a barrier to understanding her data.")]),e._v(" "),a("p",[e._v("Zarena’s data was publicly available in her GitHub fellows repository. I clocked a couple of things off the bat: the repo contained a csv called “data-dp.csv”, as well as a "),a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1),e._v(" and several schema files. When in doubt of where to start, a good place to look is the README."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/victoria-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Victoria’s blog"),a("OutboundLink")],1),e._v(" to see how she reproduced her fellow’s data packages.")]),e._v(" "),a("h2",{attrs:{id:"kevin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#kevin"}},[e._v("#")]),e._v(" Kevin")]),e._v(" "),a("p",[e._v("Data reproducibility is where other researchers use same data to attain the same results by using same methods. Research reproducibility allows other scientist to gain new insights from your data as well as improve quality of research by checking the correctness of your findings. The aim of this assignment was to try and reproduce my colleague’s data package and validate the tabular data using frictionless browser tools, that is, data package creator and good tables, respectively.")]),e._v(" "),a("p",[e._v("First, Guo-Qiang shared the links to his datasets and the data package to me which I freely accessed from his GitHub repository. His data was a summary of clinical evidence of various health effects of menopausal hormone therapy in menopausal women."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kk-data-trading-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Kevin’s blog"),a("OutboundLink")],1),e._v(" to see how he managed to reproduce Guo-Qiang’s datapackages.")]),e._v(" "),a("h2",{attrs:{id:"zarena"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#zarena"}},[e._v("#")]),e._v(" Zarena")]),e._v(" "),a("p",[e._v("Before joining the Frictionless Data Fellowship Programme, I did not realise the importance of research reproducibility. To tell the truth, I really did not have such a concept in my professional vocabulary despite having an MSc degree in Social Science Research Methods and working in different social research projects. But, maybe, that was the reason why I did not know this concept and never practised it in my research projects. Like many of my social science colleagues, especially the ones working with qualitative - and often sensitive - data, for me it was important to ensure that data I collect are safely stored in a password-protected platform and then - upon completion of a project - are deleted. But now working for the Frictionless Data Fellowship Programme and managing different sorts of data, including bibliometric metadata, I see that if we want social sciences and humanities to progress, it is vital to integrate such practices as reproducing, replicating, and reusing data into our research.")]),e._v(" "),a("p",[e._v("So, in "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/zarena-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this blog"),a("OutboundLink")],1),e._v(", I will try to explain my first attempt to reproduce my Frictionless fellow’s dataset, which is openly shared in "),a("a",{attrs:{href:"https://github.com/vyelnats/frictionless-v",target:"_blank",rel:"noopener noreferrer"}},[e._v("the GitHub repository"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"lindsay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#lindsay"}},[e._v("#")]),e._v(" Lindsay")]),e._v(" "),a("p",[e._v("Our most recent Fricitonless Fellows project is to trade data and create a Data Package using another Fellow’s data. I traded data with the fabulous Melvin! Melvin is a pathologist and soil scientist.")]),e._v(" "),a("p",[e._v("While this seems like a fun project, I was frustrated at first. I had to find my partner’s data. After reading her "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Blog"),a("OutboundLink")],1),e._v(" and poking around "),a("a",{attrs:{href:"https://github.com/frictionlessdata/fellows",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),a("OutboundLink")],1),e._v(", I could not find her data. I eventually realized: we are mimicking the process of reusing reproducible research data. The first hurdle any researcher must overcome is finding the data."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lindsay-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Lindsay’s blog"),a("OutboundLink")],1),e._v(" to understand what happened while reproducing Melvin’s Data Packages.")]),e._v(" "),a("h1",{attrs:{id:"about-the-frictionless-data-fellowship"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#about-the-frictionless-data-fellowship"}},[e._v("#")]),e._v(" About the Frictionless Data Fellowship")]),e._v(" "),a("p",[e._v("With the Frictionless Data Reproducible Research Fellows Programme, supported by the Sloan Foundation and Open Knowledge Foundation, we are recruiting and training early career researchers to become champions of the Frictionless Data tools and approaches in their field. Fellows learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. To know more about the programme, visit "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the dedicated website"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{695:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("Is reproducing someone else’s research data a Frictionless experience? As we have seen with all the previous cohorts of Frictionless Fellows (you can read the blog "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/10/fellows-reproducing/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v("), most often than not it is sadly not the case.")]),e._v(" "),a("p",[e._v("To prove that the “reproducibility crisis” is a real problem in scientific research at the moment, we challenged the Fellows to exchange their data to see if they could reproduce each other’s Data Packages. Read about their experience:")]),e._v(" "),a("h2",{attrs:{id:"melvin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#melvin"}},[e._v("#")]),e._v(" Melvin")]),e._v(" "),a("p",[e._v("We had an interesting task for our frictionless fellow activity that involved exchanging our data sets with our fellow colleagues (pairwise) and trying to reproduce their work. My partner for this assignment was Lindsay, who is a librarian.")]),e._v(" "),a("p",[e._v("In data science, replicability and reproducibility are some of the keys to data "),a("a",{attrs:{href:"http://integrity.It",target:"_blank",rel:"noopener noreferrer"}},[e._v("integrity.It"),a("OutboundLink")],1),e._v(" creates more opportunities for new insights and reduces errors. In order to ensure reproducibility of data, one must first make sure that the raw data is available. In this regard, my partner Lindsay shared with me her data that was on her Github account to facilitate the process.")]),e._v(" "),a("p",[e._v("This process and activity were really useful and humbling. As we got to discuss our data sets with Lindsay, I realized key things such as Tidy data principles, which was the highlight for me in this whole process, besides the point that it’s not easy to understand someone else’s data without further metadata to accompany the data set. Imagine the frustration researchers go through trying to understand and reproduce other people’s data without more information on the data."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Melvin’s blog"),a("OutboundLink")],1),e._v(" to see how she managed to reproduce her fellows’ data package.")]),e._v(" "),a("h2",{attrs:{id:"victoria"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#victoria"}},[e._v("#")]),e._v(" Victoria")]),e._v(" "),a("p",[e._v("My data package partner, Zarena is an awesome social scientist in the human rights sphere. She has a background in mental health research and interests ranging from epistemic injustice to intersectionality - two terms I had to double check my understanding of. In poking around Zarena’s profile, particularly interesting was her focus on "),a("a",{attrs:{href:"https://www.universityaffairs.ca/features/feature-article/mad-studies/",target:"_blank",rel:"noopener noreferrer"}},[e._v("mad studies"),a("OutboundLink")],1),e._v(", a young interdisciplinary field dealing with identity and the marginalisation of individuals with alternative mental states. This idea - broadly accepting a spectrum of human states instead of subjecting them to a black/white absolute interpretation - was completely new to me and fascinating! But being a social theory noob, I suspected to encounter a barrier to understanding her data.")]),e._v(" "),a("p",[e._v("Zarena’s data was publicly available in her GitHub fellows repository. I clocked a couple of things off the bat: the repo contained a csv called “data-dp.csv”, as well as a "),a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1),e._v(" and several schema files. When in doubt of where to start, a good place to look is the README."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/victoria-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Victoria’s blog"),a("OutboundLink")],1),e._v(" to see how she reproduced her fellow’s data packages.")]),e._v(" "),a("h2",{attrs:{id:"kevin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#kevin"}},[e._v("#")]),e._v(" Kevin")]),e._v(" "),a("p",[e._v("Data reproducibility is where other researchers use same data to attain the same results by using same methods. Research reproducibility allows other scientist to gain new insights from your data as well as improve quality of research by checking the correctness of your findings. The aim of this assignment was to try and reproduce my colleague’s data package and validate the tabular data using frictionless browser tools, that is, data package creator and good tables, respectively.")]),e._v(" "),a("p",[e._v("First, Guo-Qiang shared the links to his datasets and the data package to me which I freely accessed from his GitHub repository. His data was a summary of clinical evidence of various health effects of menopausal hormone therapy in menopausal women."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kk-data-trading-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Kevin’s blog"),a("OutboundLink")],1),e._v(" to see how he managed to reproduce Guo-Qiang’s datapackages.")]),e._v(" "),a("h2",{attrs:{id:"zarena"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#zarena"}},[e._v("#")]),e._v(" Zarena")]),e._v(" "),a("p",[e._v("Before joining the Frictionless Data Fellowship Programme, I did not realise the importance of research reproducibility. To tell the truth, I really did not have such a concept in my professional vocabulary despite having an MSc degree in Social Science Research Methods and working in different social research projects. But, maybe, that was the reason why I did not know this concept and never practised it in my research projects. Like many of my social science colleagues, especially the ones working with qualitative - and often sensitive - data, for me it was important to ensure that data I collect are safely stored in a password-protected platform and then - upon completion of a project - are deleted. But now working for the Frictionless Data Fellowship Programme and managing different sorts of data, including bibliometric metadata, I see that if we want social sciences and humanities to progress, it is vital to integrate such practices as reproducing, replicating, and reusing data into our research.")]),e._v(" "),a("p",[e._v("So, in "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/zarena-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("this blog"),a("OutboundLink")],1),e._v(", I will try to explain my first attempt to reproduce my Frictionless fellow’s dataset, which is openly shared in "),a("a",{attrs:{href:"https://github.com/vyelnats/frictionless-v",target:"_blank",rel:"noopener noreferrer"}},[e._v("the GitHub repository"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"lindsay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#lindsay"}},[e._v("#")]),e._v(" Lindsay")]),e._v(" "),a("p",[e._v("Our most recent Fricitonless Fellows project is to trade data and create a Data Package using another Fellow’s data. I traded data with the fabulous Melvin! Melvin is a pathologist and soil scientist.")]),e._v(" "),a("p",[e._v("While this seems like a fun project, I was frustrated at first. I had to find my partner’s data. After reading her "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Blog"),a("OutboundLink")],1),e._v(" and poking around "),a("a",{attrs:{href:"https://github.com/frictionlessdata/fellows",target:"_blank",rel:"noopener noreferrer"}},[e._v("on GitHub"),a("OutboundLink")],1),e._v(", I could not find her data. I eventually realized: we are mimicking the process of reusing reproducible research data. The first hurdle any researcher must overcome is finding the data."),a("br"),e._v(" "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lindsay-trade-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Read Lindsay’s blog"),a("OutboundLink")],1),e._v(" to understand what happened while reproducing Melvin’s Data Packages.")]),e._v(" "),a("h1",{attrs:{id:"about-the-frictionless-data-fellowship"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#about-the-frictionless-data-fellowship"}},[e._v("#")]),e._v(" About the Frictionless Data Fellowship")]),e._v(" "),a("p",[e._v("With the Frictionless Data Reproducible Research Fellows Programme, supported by the Sloan Foundation and Open Knowledge Foundation, we are recruiting and training early career researchers to become champions of the Frictionless Data tools and approaches in their field. Fellows learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science. To know more about the programme, visit "),a("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the dedicated website"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/159.3f041c20.js b/assets/js/159.6f580678.js similarity index 98% rename from assets/js/159.3f041c20.js rename to assets/js/159.6f580678.js index 50b00f3bb..c3936949f 100644 --- a/assets/js/159.3f041c20.js +++ b/assets/js/159.6f580678.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{695:function(e,t,o){"use strict";o.r(t);var a=o(29),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("At our last community call on May 28"),o("sup",[e._v("th")]),e._v(", we heard about citizen science and climate change solutions using Frictionless Data from Nick Kellett, Pan Khantidhara and Justin Mosbey from "),o("a",{attrs:{href:"https://www.deploy.solutions/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Deploy Solutions"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Deploy Solutions builds software that can help with climate change disruptions, and they are using Frictionless Data to help! They develop cloud-hosted solutions using big data from satellites, and, since 2019, they have adopted a citizen focus in climate change research."),o("br"),e._v("\nThey researched and identified the main problems that prevent people and communities from acting in case of climate change disasters:")]),e._v(" "),o("ul",[o("li",[e._v("Citizens feel overwhelmed by the volume of information received.")]),e._v(" "),o("li",[e._v("They feel the information they get is not personalised to their needs.")]),e._v(" "),o("li",[e._v("Authorities have difficulties directly collaborating and sharing information with citizens.")])]),e._v(" "),o("p",[e._v("The solution they propose is the creation of a complete map-centred web-application that can be built very quickly (~4 hours) with basic functionalities to provide basic and reliable information for disaster response, while allowing users to upload citizen science observations.")]),e._v(" "),o("p",[e._v("The app takes Earth observations imagery from satellites, and associates them with imagery that citizens are taking on the ground, to check that the machine learning algorithms applied are correctly predicting the disaster extent.")]),e._v(" "),o("p",[e._v("It also visualises the data coming in to look for trends, gathering historic data and comparing with what is predicted. The quantity of information needed for such an app is huge, and most often than not, it comes from different sources and does not follow any standards. It is therefore tricky to describe it and validate it. You might have guessed it by now, Frictionless Data is helping with that.")]),e._v(" "),o("p",[e._v("If you are interested in knowing more about Deploy Solutions and how they are using Frictionless Data, you can watch the full presentation (including Pan Khantidhara’s demo!):")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/CSvVbl8Egqk",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("If you have questions or feedback, you can let us know in "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(", or you can reach out to Deploy Solutions directly.")]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on June 30"),o("sup",[e._v("th")]),e._v(". Join us to meet the 3"),o("sup",[e._v("rd")]),e._v(" cohort of Frictionless Fellows and hear about their reproducibility and open science journey!")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Join our community on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:"),o("br"),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/RqAA8YCy1AU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{696:function(e,t,o){"use strict";o.r(t);var a=o(29),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("At our last community call on May 28"),o("sup",[e._v("th")]),e._v(", we heard about citizen science and climate change solutions using Frictionless Data from Nick Kellett, Pan Khantidhara and Justin Mosbey from "),o("a",{attrs:{href:"https://www.deploy.solutions/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Deploy Solutions"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Deploy Solutions builds software that can help with climate change disruptions, and they are using Frictionless Data to help! They develop cloud-hosted solutions using big data from satellites, and, since 2019, they have adopted a citizen focus in climate change research."),o("br"),e._v("\nThey researched and identified the main problems that prevent people and communities from acting in case of climate change disasters:")]),e._v(" "),o("ul",[o("li",[e._v("Citizens feel overwhelmed by the volume of information received.")]),e._v(" "),o("li",[e._v("They feel the information they get is not personalised to their needs.")]),e._v(" "),o("li",[e._v("Authorities have difficulties directly collaborating and sharing information with citizens.")])]),e._v(" "),o("p",[e._v("The solution they propose is the creation of a complete map-centred web-application that can be built very quickly (~4 hours) with basic functionalities to provide basic and reliable information for disaster response, while allowing users to upload citizen science observations.")]),e._v(" "),o("p",[e._v("The app takes Earth observations imagery from satellites, and associates them with imagery that citizens are taking on the ground, to check that the machine learning algorithms applied are correctly predicting the disaster extent.")]),e._v(" "),o("p",[e._v("It also visualises the data coming in to look for trends, gathering historic data and comparing with what is predicted. The quantity of information needed for such an app is huge, and most often than not, it comes from different sources and does not follow any standards. It is therefore tricky to describe it and validate it. You might have guessed it by now, Frictionless Data is helping with that.")]),e._v(" "),o("p",[e._v("If you are interested in knowing more about Deploy Solutions and how they are using Frictionless Data, you can watch the full presentation (including Pan Khantidhara’s demo!):")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/CSvVbl8Egqk",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("If you have questions or feedback, you can let us know in "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(", or you can reach out to Deploy Solutions directly.")]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on June 30"),o("sup",[e._v("th")]),e._v(". Join us to meet the 3"),o("sup",[e._v("rd")]),e._v(" cohort of Frictionless Fellows and hear about their reproducibility and open science journey!")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here:"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Join our community on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:"),o("br"),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/RqAA8YCy1AU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/161.0c948627.js b/assets/js/161.49e34383.js similarity index 98% rename from assets/js/161.0c948627.js rename to assets/js/161.49e34383.js index 1b45bedea..3e3537b41 100644 --- a/assets/js/161.0c948627.js +++ b/assets/js/161.49e34383.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{697:function(e,a,t){"use strict";t.r(a);var n=t(29),s=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Originally published on: "),t("a",{attrs:{href:"https://blog.okfn.org/2022/07/05/frictionless-planet-and-lacuna-fund-discuss-gaps-in-climate-datasets-for-machine-learning/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2022/07/05/frictionless-planet-and-lacuna-fund-discuss-gaps-in-climate-datasets-for-machine-learning/"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("On 24 June we hosted a conversation with the Lacuna Fund about datasets for climate change where we heard all about the Lacuna Fund’s recently launched Request for Proposals around Datasets for Climate Applications. We were joined by climate data users and creators from around the globe. This conversation is a part of Open Knowledge Foundation’s recent work on building a Frictionless Planet by using open tools and design principles to tackle the world’s largest problems, including climate change.")]),e._v(" "),t("p",[e._v("A lacuna is a gap, a blank space or a missing part of an item. Today there are gaps in the datasets that are available to train and evaluate machine learning models. This is especially true when it comes to specific populations and geographies. The Lacuna Fund was created to support data scientists in closing those gaps in machine learning datasets needed to better understand and tackle urgent problems in their communities, like those linked to the climate crisis.")]),e._v(" "),t("p",[e._v("Lacuna Fund is currently accepting proposals for two climate tracks: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Climate & Energy"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Climate & Health"),t("OutboundLink")],1),e._v(". The first track is looking at the intersection between energy, climate, and green recovery, and the second focuses on health and strategies to mitigate the impact of the climate crisis. Proposals should focus on machine learning datasets, either collecting and annotating new data, annotating and releasing existing data, or expanding existing datasets and increasing usability. Lacuna Fund’s guiding principles include equity, ethics, and participatory approach, and those values are very important for this work. Accordingly, proposals should include a plan for data management and licencing, privacy, and how the data will be shared. The target audience for this call is data scientists, with a focus on under-represented communities in Africa, Asia, and Latin America.")]),e._v(" "),t("p",[e._v("During the call, we also discussed if participants have specific data gaps in their fields, like a lack of data on how extreme heat events affect human health. The response was a strong “Yes”! Participants described working in “data deserts” where there is often missing data, leading to less accurate machine learning algorithms. Another common issue is data quality and trust in data, especially from “official” sources. Tackling data transparency will be important for creating impactful climate policy. We’d like to ask you the same question: If your group could have access to one data set that would have a large impact on your work, what is that data set?")]),e._v(" "),t("ul",[t("li",[e._v("If you are interested in applying for the Lacuna Fund’s open requests for proposals (RFP), please check out these resources here:")]),e._v(" "),t("li",[e._v("Apply page: "),t("a",{attrs:{href:"https://lacunafund.org/apply/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://lacunafund.org/apply/"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Q&A (questions from potential applicants): "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/06/QA-Climate-2022.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/06/QA-Climate-2022.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("RFP for Climate & Energy: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("RFP for Climate & Health: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Applicant webinar recording: "),t("a",{attrs:{href:"https://vimeo.com/711365252",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://vimeo.com/711365252"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Proposals are due 17th July")])])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{699:function(e,a,t){"use strict";t.r(a);var n=t(29),s=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Originally published on: "),t("a",{attrs:{href:"https://blog.okfn.org/2022/07/05/frictionless-planet-and-lacuna-fund-discuss-gaps-in-climate-datasets-for-machine-learning/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2022/07/05/frictionless-planet-and-lacuna-fund-discuss-gaps-in-climate-datasets-for-machine-learning/"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("On 24 June we hosted a conversation with the Lacuna Fund about datasets for climate change where we heard all about the Lacuna Fund’s recently launched Request for Proposals around Datasets for Climate Applications. We were joined by climate data users and creators from around the globe. This conversation is a part of Open Knowledge Foundation’s recent work on building a Frictionless Planet by using open tools and design principles to tackle the world’s largest problems, including climate change.")]),e._v(" "),t("p",[e._v("A lacuna is a gap, a blank space or a missing part of an item. Today there are gaps in the datasets that are available to train and evaluate machine learning models. This is especially true when it comes to specific populations and geographies. The Lacuna Fund was created to support data scientists in closing those gaps in machine learning datasets needed to better understand and tackle urgent problems in their communities, like those linked to the climate crisis.")]),e._v(" "),t("p",[e._v("Lacuna Fund is currently accepting proposals for two climate tracks: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Climate & Energy"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("Climate & Health"),t("OutboundLink")],1),e._v(". The first track is looking at the intersection between energy, climate, and green recovery, and the second focuses on health and strategies to mitigate the impact of the climate crisis. Proposals should focus on machine learning datasets, either collecting and annotating new data, annotating and releasing existing data, or expanding existing datasets and increasing usability. Lacuna Fund’s guiding principles include equity, ethics, and participatory approach, and those values are very important for this work. Accordingly, proposals should include a plan for data management and licencing, privacy, and how the data will be shared. The target audience for this call is data scientists, with a focus on under-represented communities in Africa, Asia, and Latin America.")]),e._v(" "),t("p",[e._v("During the call, we also discussed if participants have specific data gaps in their fields, like a lack of data on how extreme heat events affect human health. The response was a strong “Yes”! Participants described working in “data deserts” where there is often missing data, leading to less accurate machine learning algorithms. Another common issue is data quality and trust in data, especially from “official” sources. Tackling data transparency will be important for creating impactful climate policy. We’d like to ask you the same question: If your group could have access to one data set that would have a large impact on your work, what is that data set?")]),e._v(" "),t("ul",[t("li",[e._v("If you are interested in applying for the Lacuna Fund’s open requests for proposals (RFP), please check out these resources here:")]),e._v(" "),t("li",[e._v("Apply page: "),t("a",{attrs:{href:"https://lacunafund.org/apply/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://lacunafund.org/apply/"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Q&A (questions from potential applicants): "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/06/QA-Climate-2022.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/06/QA-Climate-2022.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("RFP for Climate & Energy: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Energy-RFP-Final.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("RFP for Climate & Health: "),t("a",{attrs:{href:"https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://s31207.pcdn.co/wp-content/uploads/sites/11/2022/04/Climate-and-Health-RFP-Final.pdf"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Applicant webinar recording: "),t("a",{attrs:{href:"https://vimeo.com/711365252",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://vimeo.com/711365252"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Proposals are due 17th July")])])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/162.c239e347.js b/assets/js/162.9db603ef.js similarity index 99% rename from assets/js/162.c239e347.js rename to assets/js/162.9db603ef.js index a0c614020..19df76c9f 100644 --- a/assets/js/162.c239e347.js +++ b/assets/js/162.9db603ef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{696:function(e,t,a){"use strict";a.r(t);var r=a(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("Originally posted on: "),a("a",{attrs:{href:"https://medium.com/opendatacoop/announcing-flatterer-converting-structured-data-into-tabular-data-c4652eae27c9",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://medium.com/opendatacoop/announcing-flatterer-converting-structured-data-into-tabular-data-c4652eae27c9"),a("OutboundLink")],1)])]),e._v(" "),a("p",[a("em",[e._v("In this blog post, we introduce Flatterer - a new tool that helps convert JSON into tabular data. To hear more about Flatterer, "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up"),a("OutboundLink")],1),e._v(" to join David Raznick at the Frictionless Data community call on July 28th.")])]),e._v(" "),a("p",[e._v("Open data needs to be available in formats people want to work with. In our experience at "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Services"),a("OutboundLink")],1),e._v(", we’ve found that developers often want access to structured data (for example, JSON) while analysts are used to working with flat data (in CSV files or tables).")]),e._v(" "),a("p",[e._v("More and more data is being published as JSON, but for most analysts this isn’t particularly useful. For many, working with JSON means needing to spend time converting the structured data into tables before they can get started.")]),e._v(" "),a("p",[e._v("That’s where "),a("a",{attrs:{href:"https://github.com/kindly/flatterer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flatterer"),a("OutboundLink")],1),e._v(" comes in. Flatterer is an opinionated JSON to CSV/XLSX/SQLITE/PARQUET converter. It helps people to convert JSON into relational, tabular data that can be easily analysed. It’s fast and memory efficient, and can be run either in the "),a("a",{attrs:{href:"https://flatterer.opendata.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("command line"),a("OutboundLink")],1),e._v(" or as a "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-FWeGccp_QKCu1WAEGQ0mEQ",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python library"),a("OutboundLink")],1),e._v(". The Python library supports creating data frames for all the flattened data, making it easy to analyse and visualise.")]),e._v(" "),a("h2",{attrs:{id:"what-does-it-do"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-does-it-do"}},[e._v("#")]),e._v(" What does it do?")]),e._v(" "),a("p",[e._v("With Flatterer you can:")]),e._v(" "),a("ul",[a("li",[e._v("easily convert JSON to flat relational data such as CSV, XLSX, Database Tables, Pandas Dataframes and Parquet;")]),e._v(" "),a("li",[e._v("convert JSON into data packages, so you can use Frictionless data to convert into any database format;")]),e._v(" "),a("li",[e._v("create a data dictionary that contains metadata about the conversion, including fields contained in the dataset, to help you understand the data you are looking at;")]),e._v(" "),a("li",[e._v("create a new table for each one-to-many relationship, alongside _link fields that help to join the data together.")])]),e._v(" "),a("h2",{attrs:{id:"why-we-built-it"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-we-built-it"}},[e._v("#")]),e._v(" Why we built it")]),e._v(" "),a("p",[e._v("When you receive a JSON file where the structure is deeply nested or not well specified, it’s hard to determine what the data contains. Even if you know the JSON structure, it can still be time consuming to work out how to flatten the JSON into a relational structure for data analysis, and to be part of a data pipeline."),a("br"),e._v("\nFlatterer aims to be the first tool to go to when faced with this problem. Although you may still need to handwrite code, Flatterer has a number of benefits over most handwritten approaches:")]),e._v(" "),a("ul",[a("li",[e._v("it’s fast – written in Rust but with Python bindings for ease of use. It can be 10x faster than hand written Python flattening;")]),e._v(" "),a("li",[e._v("it’s memory efficient – flatterer uses a custom streaming JSON parser which means that a long list of objects nested with the JSON will be streamed, so less data needs to be loaded into memory at once;")]),e._v(" "),a("li",[e._v("it gives you fast, memory efficient output to CSV/XLSX/SQLITE/PARQUET;")]),e._v(" "),a("li",[e._v("it uses best practice that has been learnt from our experience flattening JSON countless times, such as generating keys to link one-to-many tables to their parents.")])]),e._v(" "),a("h2",{attrs:{id:"using-flatterer-in-the-openownership-data-pipeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-flatterer-in-the-openownership-data-pipeline"}},[e._v("#")]),e._v(" Using Flatterer in the OpenOwnership data pipeline")]),e._v(" "),a("p",[e._v("As an example, we’ve used "),a("a",{attrs:{href:"https://github.com/kindly/flatterer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flatterer"),a("OutboundLink")],1),e._v(" to help "),a("a",{attrs:{href:"https://www.openownership.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenOwnership"),a("OutboundLink")],1),e._v(" create a data pipeline to make information about who owns and controls companies available in a "),a("a",{attrs:{href:"https://bods-data.openownership.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("variety of data formats"),a("OutboundLink")],1),e._v(". In the example below, we’ve used Flatterer to convert beneficial ownership data from the Register of Enterprises of the Republic of Latvia and the OpenOwnership Register from JSON into CSV, SQLite, Postgresql, Big Query and Datasette formats.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058338-08ce8ea1-9b1f-4c4c-b59c-64b04cd450f6.png",alt:"img-1-flatterer"}})]),e._v(" "),a("p",[e._v("Alongside converting the data into different formats, Flatterer has created a data dictionary that shows the fields contained in the dataset, alongside the field type and field counts. In the example below, we show how this dictionary interprets person_statement fields contained in the Beneficial Ownership Data Standard.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058526-19694210-514e-4215-bf9d-f6abc7ef5400.png",alt:"img-2-flatterer"}})]),e._v(" "),a("p",[e._v("Finally, you can see Flatterer has created special _link fields, to help with joining the tables together. The example below shows how the _link field helps join "),a("a",{attrs:{href:"https://medium.com/opendatacoop/why-do-open-organisational-identifiers-matter-46af05ab30a",target:"_blank",rel:"noopener noreferrer"}},[e._v("entity identifiers"),a("OutboundLink")],1),e._v(" to statements about beneficial ownership.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058657-ae4ab534-9fdb-4d6d-ad59-56521f0218e0.png",alt:"img-3-flatterer"}})]),e._v(" "),a("h2",{attrs:{id:"what-s-next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-s-next"}},[e._v("#")]),e._v(" What’s next?")]),e._v(" "),a("p",[e._v("Next, we’ll be working to make Flatterer more user friendly. We’ll be exploring creating a desktop interface, improving type guessing for fields, and giving more summary statistics about the input data. We welcome feedback on the tool through "),a("a",{attrs:{href:"https://github.com/kindly/flatterer/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),a("OutboundLink")],1),e._v(", and are really interested to find out what kind of improvements you’d like to see.")]),e._v(" "),a("p",[e._v("More information about using Flatterer is available on "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-FWeGccp_QKCu1WAEGQ0mEQ",target:"_blank",rel:"noopener noreferrer"}},[e._v("deepnote"),a("OutboundLink")],1),e._v(". To hear more about Flatterer, you can join David Raznick at Frictionless Data’s monthly community call on July 28th.")]),e._v(" "),a("h4",{attrs:{id:"at-open-data-services-cooperative-we-re-always-happy-to-discuss-how-developing-or-implementing-open-data-standards-could-support-your-goals-find-out-more-about-our-work-and-get-in-touch"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-open-data-services-cooperative-we-re-always-happy-to-discuss-how-developing-or-implementing-open-data-standards-could-support-your-goals-find-out-more-about-our-work-and-get-in-touch"}},[e._v("#")]),e._v(" At Open Data Services Cooperative we’re always happy to discuss how developing or implementing open data standards could support your goals. Find out more about "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our work"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://opendataservices.coop/#contact",target:"_blank",rel:"noopener noreferrer"}},[e._v("get in touch"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{697:function(e,t,a){"use strict";a.r(t);var r=a(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[a("em",[e._v("Originally posted on: "),a("a",{attrs:{href:"https://medium.com/opendatacoop/announcing-flatterer-converting-structured-data-into-tabular-data-c4652eae27c9",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://medium.com/opendatacoop/announcing-flatterer-converting-structured-data-into-tabular-data-c4652eae27c9"),a("OutboundLink")],1)])]),e._v(" "),a("p",[a("em",[e._v("In this blog post, we introduce Flatterer - a new tool that helps convert JSON into tabular data. To hear more about Flatterer, "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform",target:"_blank",rel:"noopener noreferrer"}},[e._v("sign up"),a("OutboundLink")],1),e._v(" to join David Raznick at the Frictionless Data community call on July 28th.")])]),e._v(" "),a("p",[e._v("Open data needs to be available in formats people want to work with. In our experience at "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Services"),a("OutboundLink")],1),e._v(", we’ve found that developers often want access to structured data (for example, JSON) while analysts are used to working with flat data (in CSV files or tables).")]),e._v(" "),a("p",[e._v("More and more data is being published as JSON, but for most analysts this isn’t particularly useful. For many, working with JSON means needing to spend time converting the structured data into tables before they can get started.")]),e._v(" "),a("p",[e._v("That’s where "),a("a",{attrs:{href:"https://github.com/kindly/flatterer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flatterer"),a("OutboundLink")],1),e._v(" comes in. Flatterer is an opinionated JSON to CSV/XLSX/SQLITE/PARQUET converter. It helps people to convert JSON into relational, tabular data that can be easily analysed. It’s fast and memory efficient, and can be run either in the "),a("a",{attrs:{href:"https://flatterer.opendata.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("command line"),a("OutboundLink")],1),e._v(" or as a "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-FWeGccp_QKCu1WAEGQ0mEQ",target:"_blank",rel:"noopener noreferrer"}},[e._v("Python library"),a("OutboundLink")],1),e._v(". The Python library supports creating data frames for all the flattened data, making it easy to analyse and visualise.")]),e._v(" "),a("h2",{attrs:{id:"what-does-it-do"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-does-it-do"}},[e._v("#")]),e._v(" What does it do?")]),e._v(" "),a("p",[e._v("With Flatterer you can:")]),e._v(" "),a("ul",[a("li",[e._v("easily convert JSON to flat relational data such as CSV, XLSX, Database Tables, Pandas Dataframes and Parquet;")]),e._v(" "),a("li",[e._v("convert JSON into data packages, so you can use Frictionless data to convert into any database format;")]),e._v(" "),a("li",[e._v("create a data dictionary that contains metadata about the conversion, including fields contained in the dataset, to help you understand the data you are looking at;")]),e._v(" "),a("li",[e._v("create a new table for each one-to-many relationship, alongside _link fields that help to join the data together.")])]),e._v(" "),a("h2",{attrs:{id:"why-we-built-it"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-we-built-it"}},[e._v("#")]),e._v(" Why we built it")]),e._v(" "),a("p",[e._v("When you receive a JSON file where the structure is deeply nested or not well specified, it’s hard to determine what the data contains. Even if you know the JSON structure, it can still be time consuming to work out how to flatten the JSON into a relational structure for data analysis, and to be part of a data pipeline."),a("br"),e._v("\nFlatterer aims to be the first tool to go to when faced with this problem. Although you may still need to handwrite code, Flatterer has a number of benefits over most handwritten approaches:")]),e._v(" "),a("ul",[a("li",[e._v("it’s fast – written in Rust but with Python bindings for ease of use. It can be 10x faster than hand written Python flattening;")]),e._v(" "),a("li",[e._v("it’s memory efficient – flatterer uses a custom streaming JSON parser which means that a long list of objects nested with the JSON will be streamed, so less data needs to be loaded into memory at once;")]),e._v(" "),a("li",[e._v("it gives you fast, memory efficient output to CSV/XLSX/SQLITE/PARQUET;")]),e._v(" "),a("li",[e._v("it uses best practice that has been learnt from our experience flattening JSON countless times, such as generating keys to link one-to-many tables to their parents.")])]),e._v(" "),a("h2",{attrs:{id:"using-flatterer-in-the-openownership-data-pipeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#using-flatterer-in-the-openownership-data-pipeline"}},[e._v("#")]),e._v(" Using Flatterer in the OpenOwnership data pipeline")]),e._v(" "),a("p",[e._v("As an example, we’ve used "),a("a",{attrs:{href:"https://github.com/kindly/flatterer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flatterer"),a("OutboundLink")],1),e._v(" to help "),a("a",{attrs:{href:"https://www.openownership.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenOwnership"),a("OutboundLink")],1),e._v(" create a data pipeline to make information about who owns and controls companies available in a "),a("a",{attrs:{href:"https://bods-data.openownership.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("variety of data formats"),a("OutboundLink")],1),e._v(". In the example below, we’ve used Flatterer to convert beneficial ownership data from the Register of Enterprises of the Republic of Latvia and the OpenOwnership Register from JSON into CSV, SQLite, Postgresql, Big Query and Datasette formats.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058338-08ce8ea1-9b1f-4c4c-b59c-64b04cd450f6.png",alt:"img-1-flatterer"}})]),e._v(" "),a("p",[e._v("Alongside converting the data into different formats, Flatterer has created a data dictionary that shows the fields contained in the dataset, alongside the field type and field counts. In the example below, we show how this dictionary interprets person_statement fields contained in the Beneficial Ownership Data Standard.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058526-19694210-514e-4215-bf9d-f6abc7ef5400.png",alt:"img-2-flatterer"}})]),e._v(" "),a("p",[e._v("Finally, you can see Flatterer has created special _link fields, to help with joining the tables together. The example below shows how the _link field helps join "),a("a",{attrs:{href:"https://medium.com/opendatacoop/why-do-open-organisational-identifiers-matter-46af05ab30a",target:"_blank",rel:"noopener noreferrer"}},[e._v("entity identifiers"),a("OutboundLink")],1),e._v(" to statements about beneficial ownership.")]),e._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/179058657-ae4ab534-9fdb-4d6d-ad59-56521f0218e0.png",alt:"img-3-flatterer"}})]),e._v(" "),a("h2",{attrs:{id:"what-s-next"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-s-next"}},[e._v("#")]),e._v(" What’s next?")]),e._v(" "),a("p",[e._v("Next, we’ll be working to make Flatterer more user friendly. We’ll be exploring creating a desktop interface, improving type guessing for fields, and giving more summary statistics about the input data. We welcome feedback on the tool through "),a("a",{attrs:{href:"https://github.com/kindly/flatterer/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),a("OutboundLink")],1),e._v(", and are really interested to find out what kind of improvements you’d like to see.")]),e._v(" "),a("p",[e._v("More information about using Flatterer is available on "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-FWeGccp_QKCu1WAEGQ0mEQ",target:"_blank",rel:"noopener noreferrer"}},[e._v("deepnote"),a("OutboundLink")],1),e._v(". To hear more about Flatterer, you can join David Raznick at Frictionless Data’s monthly community call on July 28th.")]),e._v(" "),a("h4",{attrs:{id:"at-open-data-services-cooperative-we-re-always-happy-to-discuss-how-developing-or-implementing-open-data-standards-could-support-your-goals-find-out-more-about-our-work-and-get-in-touch"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at-open-data-services-cooperative-we-re-always-happy-to-discuss-how-developing-or-implementing-open-data-standards-could-support-your-goals-find-out-more-about-our-work-and-get-in-touch"}},[e._v("#")]),e._v(" At Open Data Services Cooperative we’re always happy to discuss how developing or implementing open data standards could support your goals. Find out more about "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our work"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://opendataservices.coop/#contact",target:"_blank",rel:"noopener noreferrer"}},[e._v("get in touch"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/163.eb2e4458.js b/assets/js/163.9cdaa5d1.js similarity index 98% rename from assets/js/163.eb2e4458.js rename to assets/js/163.9cdaa5d1.js index 8f42bd37a..90d81efb7 100644 --- a/assets/js/163.eb2e4458.js +++ b/assets/js/163.9cdaa5d1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{704:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Dear Frictionless community,")]),e._v(" "),o("p",[e._v("I’m writing to let you all know that this is my final week working on Frictionless Data with Open Knowledge Foundation. It has been a true pleasure to get to interact with you all over the last four years! Rest assured that Frictionless Data is in good hands with the team at Open Knowledge (Evgeny, Sara, Shashi, Edgar, and the rest of the OKF tech team).")]),e._v(" "),o("p",[e._v("What’s next for me? I’m still staying in the data space, moving to product at data.world (did you know they export data as datapackages?)! Maybe you’ll see me presenting a demo at an upcoming Frictionless community call 😉")]),e._v(" "),o("p",[e._v("If you’ll allow me to reminisce for a few minutes, here are some of my favourite Frictionless memories from my time working on this project:")]),e._v(" "),o("p",[o("strong",[e._v("The Frictionless Hackathon:")]),e._v(" In October 2021, we hosted the first-ever Frictionless Hackathon (virtually of course), and it was so cool to see all the projects and contributors from around the world! You can read all about it in "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/10/13/hackathon-wrap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the summary blog here"),o("OutboundLink")],1),e._v(". Should we do another Hackathon? Let Sara know what you think! (Special shout-out to Oleg who set up the Hackathon software and inspired the entire event!)")]),e._v(" "),o("p",[o("strong",[e._v("Pilot collaborations")]),e._v(": We started our first Reproducible Research pilot collaboration with the Biological and Chemical Oceanographic Data Management Office (BCO-DMO) team in 2019, and learned so much from this implementation! This resulted in a new data processing pipeline for BCO-DMO data managers that used Frictionless to reproducibly clean and document data. This work ultimately led to the creation of the Frictionless Framework. You can check out all the other "),o("a",{attrs:{href:"https://frictionlessdata.io/adoption/#pilot-collaborations",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pilots on the Adoption page"),o("OutboundLink")],1),e._v(" too.")]),e._v(" "),o("p",[o("strong",[e._v("Fellows")]),e._v(": Getting to mentor and teach 17 Fellows was truly a spectacular experience. These current (and future) leaders in open science and open scholarship are people to keep an eye on – they are brilliant! You can read all about their experience as Fellows on "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("their blog"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("The Frictionless Team at OKF")]),e._v(": I’ve been very lucky to get to work with the best team while being at OKF! Many of you already know how helpful and smart my colleagues are, but in case you don’t know, I will tell you! Evgeny has been carefully leading the technical development of Frictionless with a clear vision, making my job easy and fun. Sara has transformed how the community feels and works, which is no small feat! Shashi and Edgar have only been working on the project for less than a year, but their contributions to the code base and to help answer questions have already made a big impact! I will miss working with these excellent humans, and all of you in the community that have made Frictionless a special place!")]),e._v(" "),o("p",[e._v("Thank you all for being a part of the Frictionless community and for working with me in the past! I wish you all the best, and maybe I will see some of you in Buenos Aires in April for "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf,v7"),o("OutboundLink")],1),e._v("?")]),e._v(" "),o("p",[e._v("Cheers!")]),e._v(" "),o("p",[e._v("– "),o("a",{attrs:{href:"https://lwinfree.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lilly"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{698:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("Dear Frictionless community,")]),e._v(" "),o("p",[e._v("I’m writing to let you all know that this is my final week working on Frictionless Data with Open Knowledge Foundation. It has been a true pleasure to get to interact with you all over the last four years! Rest assured that Frictionless Data is in good hands with the team at Open Knowledge (Evgeny, Sara, Shashi, Edgar, and the rest of the OKF tech team).")]),e._v(" "),o("p",[e._v("What’s next for me? I’m still staying in the data space, moving to product at data.world (did you know they export data as datapackages?)! Maybe you’ll see me presenting a demo at an upcoming Frictionless community call 😉")]),e._v(" "),o("p",[e._v("If you’ll allow me to reminisce for a few minutes, here are some of my favourite Frictionless memories from my time working on this project:")]),e._v(" "),o("p",[o("strong",[e._v("The Frictionless Hackathon:")]),e._v(" In October 2021, we hosted the first-ever Frictionless Hackathon (virtually of course), and it was so cool to see all the projects and contributors from around the world! You can read all about it in "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/10/13/hackathon-wrap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the summary blog here"),o("OutboundLink")],1),e._v(". Should we do another Hackathon? Let Sara know what you think! (Special shout-out to Oleg who set up the Hackathon software and inspired the entire event!)")]),e._v(" "),o("p",[o("strong",[e._v("Pilot collaborations")]),e._v(": We started our first Reproducible Research pilot collaboration with the Biological and Chemical Oceanographic Data Management Office (BCO-DMO) team in 2019, and learned so much from this implementation! This resulted in a new data processing pipeline for BCO-DMO data managers that used Frictionless to reproducibly clean and document data. This work ultimately led to the creation of the Frictionless Framework. You can check out all the other "),o("a",{attrs:{href:"https://frictionlessdata.io/adoption/#pilot-collaborations",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pilots on the Adoption page"),o("OutboundLink")],1),e._v(" too.")]),e._v(" "),o("p",[o("strong",[e._v("Fellows")]),e._v(": Getting to mentor and teach 17 Fellows was truly a spectacular experience. These current (and future) leaders in open science and open scholarship are people to keep an eye on – they are brilliant! You can read all about their experience as Fellows on "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("their blog"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("The Frictionless Team at OKF")]),e._v(": I’ve been very lucky to get to work with the best team while being at OKF! Many of you already know how helpful and smart my colleagues are, but in case you don’t know, I will tell you! Evgeny has been carefully leading the technical development of Frictionless with a clear vision, making my job easy and fun. Sara has transformed how the community feels and works, which is no small feat! Shashi and Edgar have only been working on the project for less than a year, but their contributions to the code base and to help answer questions have already made a big impact! I will miss working with these excellent humans, and all of you in the community that have made Frictionless a special place!")]),e._v(" "),o("p",[e._v("Thank you all for being a part of the Frictionless community and for working with me in the past! I wish you all the best, and maybe I will see some of you in Buenos Aires in April for "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf,v7"),o("OutboundLink")],1),e._v("?")]),e._v(" "),o("p",[e._v("Cheers!")]),e._v(" "),o("p",[e._v("– "),o("a",{attrs:{href:"https://lwinfree.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lilly"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/164.a5e79699.js b/assets/js/164.731d26ae.js similarity index 98% rename from assets/js/164.a5e79699.js rename to assets/js/164.731d26ae.js index 6861c8f48..52e9766b1 100644 --- a/assets/js/164.a5e79699.js +++ b/assets/js/164.731d26ae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{700:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On the last community call on July 28"),a("sup",[e._v("th")]),e._v(", we heard David Raznick (an ex OKFer, now working at "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Services"),a("OutboundLink")],1),e._v(") presenting Flatterer, a tool he developed to convert structured JSON data into tabular data, using Frictionless Data specifications.")]),e._v(" "),a("p",[e._v("David has been working with many different open data standards functioning with deeply nested JSON. To make the data in standard formats more human readable, users often flatten JSON files with flattening tools, but the result they get are very large spreadsheets, which can be difficult to work with.")]),e._v(" "),a("p",[e._v("Flattening tools are also often used to unflatten tabular data in JSON. That way, the data, initially written in a more human readable format, can then be used according to the standards. Unfortunately the result is not optimal, the output of flattening tools is often not user-friendly and the user would probably still need to tweak it by hand, for example modifying headers’ names and/or the way tables are joined together.")]),e._v(" "),a("p",[e._v("Flatterer aims at making these processes easier and faster. It can convert in the blink of an eye your JSON file in the tabular format of your choice: csv, xlsx, parquet, postgres and sqlite. Flatterer will convert your JSON file into a main table, with keys to link one-to-many tables to their parents. That way the data is tidy and easier to work with.")]),e._v(" "),a("p",[e._v("If you are interested in knowing more about Flatterer, have a look at David’s presentation and demo:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Hi9tDGfteoA",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("You can also read more about the project here: "),a("a",{attrs:{href:"https://flatterer.opendata.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://flatterer.opendata.coop/"),a("OutboundLink")],1),e._v(", or have a look at "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-15678671-ca7f-40a0-aed5-6004190d2611",target:"_blank",rel:"noopener noreferrer"}},[e._v("the project documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on August 25"),a("sup",[e._v("th")]),e._v(". Frictionless Data developer Shashi Gharti will discuss with the community a tool she would like to add to the Frictionless Framework. Stay tuned to know more!")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Join our community on "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" (also via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v(") or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/hfGT6vAjjwU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{726:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On the last community call on July 28"),a("sup",[e._v("th")]),e._v(", we heard David Raznick (an ex OKFer, now working at "),a("a",{attrs:{href:"https://opendataservices.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Services"),a("OutboundLink")],1),e._v(") presenting Flatterer, a tool he developed to convert structured JSON data into tabular data, using Frictionless Data specifications.")]),e._v(" "),a("p",[e._v("David has been working with many different open data standards functioning with deeply nested JSON. To make the data in standard formats more human readable, users often flatten JSON files with flattening tools, but the result they get are very large spreadsheets, which can be difficult to work with.")]),e._v(" "),a("p",[e._v("Flattening tools are also often used to unflatten tabular data in JSON. That way, the data, initially written in a more human readable format, can then be used according to the standards. Unfortunately the result is not optimal, the output of flattening tools is often not user-friendly and the user would probably still need to tweak it by hand, for example modifying headers’ names and/or the way tables are joined together.")]),e._v(" "),a("p",[e._v("Flatterer aims at making these processes easier and faster. It can convert in the blink of an eye your JSON file in the tabular format of your choice: csv, xlsx, parquet, postgres and sqlite. Flatterer will convert your JSON file into a main table, with keys to link one-to-many tables to their parents. That way the data is tidy and easier to work with.")]),e._v(" "),a("p",[e._v("If you are interested in knowing more about Flatterer, have a look at David’s presentation and demo:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Hi9tDGfteoA",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),a("p",[e._v("You can also read more about the project here: "),a("a",{attrs:{href:"https://flatterer.opendata.coop/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://flatterer.opendata.coop/"),a("OutboundLink")],1),e._v(", or have a look at "),a("a",{attrs:{href:"https://deepnote.com/@david-raznick/Flatterer-Demo-15678671-ca7f-40a0-aed5-6004190d2611",target:"_blank",rel:"noopener noreferrer"}},[e._v("the project documentation"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on August 25"),a("sup",[e._v("th")]),e._v(". Frictionless Data developer Shashi Gharti will discuss with the community a tool she would like to add to the Frictionless Framework. Stay tuned to know more!")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Join our community on "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" (also via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v(") or "),a("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),a("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/hfGT6vAjjwU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/165.98cc2fc2.js b/assets/js/165.56161c6a.js similarity index 99% rename from assets/js/165.98cc2fc2.js rename to assets/js/165.56161c6a.js index efb5e8436..c4c622f5a 100644 --- a/assets/js/165.98cc2fc2.js +++ b/assets/js/165.56161c6a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{698:function(t,e,a){"use strict";a.r(e);var r=a(29),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("p",[t._v("We’re releasing a first beta of Firctionless Framework (v5)!"),a("br"),t._v("\nSince the initial Frictionless Framework release we’d been collecting feedback and analyzing both high-level users’ needs and bug reports to identify shortcomings and areas that can be improved in the next version for the framework. Once that process had been done we started working on a new v5 with a goal to make the framework more bullet-proof, easy to maintain and simplify user interface. Today, this version is almost stable and ready to be published. Let’s go through the main improvements we have made:")]),t._v(" "),a("h1",{attrs:{id:"improved-metadata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#improved-metadata"}},[t._v("#")]),t._v(" Improved Metadata")]),t._v(" "),a("p",[t._v("This year we started working on the Frictionless Application, at the same time, we were thinking about next steps for the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Standards"),a("OutboundLink")],1),t._v(". For both we need well-defined and an easy-to-understand metadata model. Partially it’s already published as standards like Table Schema and partially it’s going to be published as standards like File Dialect and possibly validation/transform metadata.")]),t._v(" "),a("h2",{attrs:{id:"dialect"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dialect"}},[t._v("#")]),t._v(" Dialect")]),t._v(" "),a("p",[t._v("In v4 of the framework we had Control/Dialect/Layout concepts to describe resource details related to different formats and schemes, as well as tabular details like header rows. In v5 it’s merged into the only one concept called Dialect which is going to be standardised as a File Dialect spec. Here is an example:")]),t._v(" "),a("h4",{attrs:{id:"yaml"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("header"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\nheaderRows"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\ncommentChar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#'")]),t._v("\ncsv"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n delimiter"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("';'")]),t._v("\n")])])]),a("p",[t._v("A dialect descriptor can be saved and reused within a resource. Technically, it’s possible to provide different schemes and formats settings within one Dialect (e.g. for CSV and Excel) so it’s possible to create e.g. one re-usable dialect for a data package. A legacy CSV Dialect spec is supported and will be supported forever so it’s possible to provide CSV properties on the root level:")]),t._v(" "),a("h4",{attrs:{id:"yaml-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-2"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("header"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\ndelimiter"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("';'")]),t._v("\n")])])]),a("p",[t._v("For performance and codebase maintainability reasons some marginal Layout features have been removed completely such as "),a("code",[t._v("skip/pick/limit/offsetFields/etc")]),t._v(". It’s possible to achieve the same results using the Pipeline concept as a part of the transformation workflow.")]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/dialect.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Dialect Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"checklist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checklist"}},[t._v("#")]),t._v(" Checklist")]),t._v(" "),a("p",[t._v("Checklist is a new concept introduced in v5. It’s basically a collection of validation steps and a few other settings to make “validation rules” sharable. For example:")]),t._v(" "),a("h4",{attrs:{id:"yaml-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-3"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("checks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ascii"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("value\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" row_constraint\n formula"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nskipErrors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" duplicate"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("label\n")])])]),a("p",[t._v("Having and sharing this checklist it’s possible to tune data quality requirements for some data file or set of data files. This concept will provide an ability for creating data quality “libraries” within projects or domains. We can use a checklist for validation:")]),t._v(" "),a("h4",{attrs:{id:"cli"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate table1.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("checklist checklist.yaml\nfrictionless validate table2.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("checklist checklist.yaml\n")])])]),a("p",[t._v("Here is a list of another changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Check(descriptor)")]),t._v(" "),a("td",[t._v("Check.from_descriptor(descriptor)")])]),t._v(" "),a("tr",[a("td",[t._v("check.code")]),t._v(" "),a("td",[t._v("check.type")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/checklist.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Checklist Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"pipeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pipeline"}},[t._v("#")]),t._v(" Pipeline")]),t._v(" "),a("p",[t._v("In v4 Pipeline was a complex concept similar to validation Inquiry. We reworked it for v5 to be a lightweight set of validation steps that can be applied to a data resource or a data package. For example:")]),t._v(" "),a("h4",{attrs:{id:"yaml-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-4"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("steps"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("normalize\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" cell"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("set\n fieldName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" version\n value"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" v5\n")])])]),a("p",[t._v("Similar to the Checklist concept, Pipeline is a reusable (data-abstract) object that can be saved to a descriptor and used in some complex data workflow:")]),t._v(" "),a("h4",{attrs:{id:"cli-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-2"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless transform table1.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("pipeline pipeline.yaml\nfrictionless transform table2.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("pipeline pipeline.yaml\n")])])]),a("p",[t._v("Here is another list of changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Step(descriptor)")]),t._v(" "),a("td",[t._v("Step.from_descriptor(descriptor)")])]),t._v(" "),a("tr",[a("td",[t._v("step.code")]),t._v(" "),a("td",[t._v("step.type")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/pipeline.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Pipeline Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resource"}},[t._v("#")]),t._v(" Resource")]),t._v(" "),a("p",[t._v("There are no changes in the Resource related to the standards although currently by default instead of "),a("code",[t._v("profile")]),t._v(" the "),a("code",[t._v("type")]),t._v(" property will be used to mark a resource as a table. It can be changed using the "),a("code",[t._v("--standards v1")]),t._v(" flag.")]),t._v(" "),a("p",[t._v("It’s now possible to set Checklist and Pipeline as a Resource property similar to Dialect and Schema:")]),t._v(" "),a("h4",{attrs:{id:"yaml-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-5"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# ...")]),t._v("\nchecklist"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n checks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ascii"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("value\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" row_constraint\n formula"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\npipeline"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" pipeline.yaml\n steps"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("normalize\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" cell"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("set\n fieldName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" version\n value"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" v5\n")])])]),a("p",[t._v("Or using dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-6"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# ...")]),t._v("\nchecklist"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" checklist.yaml\npipeline"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" pipeline.yaml\n")])])]),a("p",[t._v("In this case the validation/transformation will use it by default providing an ability to ship validation rules and transformation pipelines within resources and packages. This is an important development for data publishers who want to define what they consider to be valid for their datasets as well as sharing raw data with a cleaning pipeline steps:")]),t._v(" "),a("h4",{attrs:{id:"cli-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-3"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate resource.yaml "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# will use the checklist above")]),t._v("\nfrictionless transform resource.yaml "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# will use the pipeline above")]),t._v("\n")])])]),a("p",[t._v("There are minor changes in the "),a("code",[t._v("stats")]),t._v(" property. Now it uses named keys to simplify hash distinction (md5/sha256 are calculated by default and it’s not possible to change for performance reasons as it was in v4):")]),t._v(" "),a("h4",{attrs:{id:"python"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import describe\n\nresource "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" describe"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'table.csv'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" stats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("True"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nprint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("resource.stats"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'md5'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'6c2c61dd9b0e9c6876139a449ed87933'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'sha256'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'a1fd6c5ff3494f697874deeb07f69f8667e903dd94a7bc062dd57550cea26da8'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bytes'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rows'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Here is a list of another changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("for row in resource:")]),t._v(" "),a("td",[t._v("for row in resource.row_stream")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/resource.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"package"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#package"}},[t._v("#")]),t._v(" Package")]),t._v(" "),a("p",[t._v("There are no changes in the Package related to the standards although it’s now possible to use resource dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-7"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" package\nresources"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" resource1.yaml\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" resource2.yaml\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/package.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"catalog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#catalog"}},[t._v("#")]),t._v(" Catalog")]),t._v(" "),a("p",[t._v("Catalog is a new concept that is a collection of data packages that can be written inline or using dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-8"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" catalog\npackages"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" package1.yaml\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" package2.yaml\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/catalog.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Catalog Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"detector"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#detector"}},[t._v("#")]),t._v(" Detector")]),t._v(" "),a("p",[t._v("Detector is now a metadata class (it wasn’t in v4) so it can be saved and shared as other metadata classes:")]),t._v(" "),a("h4",{attrs:{id:"python-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python-2"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import Detector\n\ndetector "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Detector"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sample_size"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nprint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("detector"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'sampleSize'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/detector.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Detector Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"inquiry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inquiry"}},[t._v("#")]),t._v(" Inquiry")]),t._v(" "),a("p",[t._v("There are few changes in the Inquiry concept which is known for using in the "),a("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Repository"),a("OutboundLink")],1),t._v(" project:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.path")])]),t._v(" "),a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.resource")])]),t._v(" "),a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.package")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/inquiry.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Inquiry Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#report"}},[t._v("#")]),t._v(" Report")]),t._v(" "),a("p",[t._v("The Report concept has been significantly simplified by removing the "),a("code",[t._v("resource")]),t._v(" property from "),a("code",[t._v("reportTask")]),t._v(". It’s been replaced by "),a("code",[t._v("name/type/place/labels")]),t._v(" properties. Also "),a("code",[t._v("report.time")]),t._v(" is now "),a("code",[t._v("report.stats.seconds")]),t._v(". The "),a("code",[t._v("report/reportTask.warnings: List[str]")]),t._v(" have been added to provide non-error information like reached limits:")]),t._v(" "),a("h4",{attrs:{id:"cli-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-4"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate table.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("yaml\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("valid"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\nstats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n tasks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n seconds"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.091")]),t._v("\nwarnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nerrors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\ntasks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" valid"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table\n place"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n labels"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" id\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name\n stats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n md5"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("c2c61dd9b0e9c6876139a449ed87933\n sha256"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" a1fd6c5ff3494f697874deeb07f69f8667e903dd94a7bc062dd57550cea26da8\n bytes"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n rows"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n seconds"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.091")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("report.time")]),t._v(" "),a("td",[t._v("report.stats.seconds")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.time")]),t._v(" "),a("td",[t._v("reportTask.stats.seconds")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://reportTask.resource.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("reportTask.resource.name"),a("OutboundLink")],1)]),t._v(" "),a("td",[a("a",{attrs:{href:"http://reportTask.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("reportTask.name"),a("OutboundLink")],1)])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.profile")]),t._v(" "),a("td",[t._v("reportTask.type")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.path")]),t._v(" "),a("td",[t._v("reportTask.place")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.schema")]),t._v(" "),a("td",[t._v("reportTask.labels")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/report.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Report Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"schema"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schema"}},[t._v("#")]),t._v(" Schema")]),t._v(" "),a("p",[t._v("Changes in the Schema class:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Schema(descriptor)")]),t._v(" "),a("td",[t._v("Schema.from_descriptor(descriptor)")])])])]),t._v(" "),a("h2",{attrs:{id:"error"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#error"}},[t._v("#")]),t._v(" Error")]),t._v(" "),a("p",[t._v("There are a few changes in the Error data structure:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("error.code")]),t._v(" "),a("td",[t._v("error.type")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://error.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("error.name"),a("OutboundLink")],1)]),t._v(" "),a("td",[t._v("error.title")])]),t._v(" "),a("tr",[a("td",[t._v("error.rowPosition")]),t._v(" "),a("td",[t._v("error.rowNumber")])]),t._v(" "),a("tr",[a("td",[t._v("error.fieldPosition")]),t._v(" "),a("td",[t._v("error.fieldNumber")])])])]),t._v(" "),a("h2",{attrs:{id:"types"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#types"}},[t._v("#")]),t._v(" Types")]),t._v(" "),a("p",[t._v("Note that all the metadata entities that have multiple implementations in v5 are based on a unified "),a("code",[t._v("type")]),t._v(" model. It means that they use the type property to provide type information:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("resource.profile")]),t._v(" "),a("td",[t._v("resource.type")])]),t._v(" "),a("tr",[a("td",[t._v("check.code")]),t._v(" "),a("td",[t._v("check.type")])]),t._v(" "),a("tr",[a("td",[t._v("control.code")]),t._v(" "),a("td",[t._v("control.type")])]),t._v(" "),a("tr",[a("td",[t._v("error.code")]),t._v(" "),a("td",[t._v("error.type")])]),t._v(" "),a("tr",[a("td",[t._v("field.type")]),t._v(" "),a("td",[t._v("field.type")])]),t._v(" "),a("tr",[a("td",[t._v("step.type")]),t._v(" "),a("td",[t._v("step.type")])])])]),t._v(" "),a("p",[t._v("The new v5 version still supports old notation in descriptors for backward-compatibility.")]),t._v(" "),a("h1",{attrs:{id:"improved-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#improved-model"}},[t._v("#")]),t._v(" Improved Model")]),t._v(" "),a("p",[t._v("It’s been many years that Frictionless were mixing declarative metadata and object model for historical reasons. Since the first implementation of "),a("code",[t._v("datapackage")]),t._v(" library we used different approaches to sync internal state to provide both interfaces descriptor and object model. In Frictionless Framework v4 this technique had been taken to a really sophisticated level with special observables dictionary classes. It was quite smart and nice-to-use for quick prototyping in REPL but it was really hard to maintain and error-prone.")]),t._v(" "),a("p",[t._v("In Framework v5 we finally decided to follow the “right way” for handling this problem and split descriptors and object model completely.")]),t._v(" "),a("h2",{attrs:{id:"descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#descriptors"}},[t._v("#")]),t._v(" Descriptors")]),t._v(" "),a("p",[t._v("In the Frictionless World we deal with a lot of declarative metadata descriptors such as packages, schemas, pipelines, etc. Nothing changes in v5 regarding this. So for example here is a Table Schema:")]),t._v(" "),a("h4",{attrs:{id:"yaml-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-9"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("fields"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" integer\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" name\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string\n")])])]),a("h2",{attrs:{id:"object-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#object-model"}},[t._v("#")]),t._v(" Object Model")]),t._v(" "),a("p",[t._v("The difference comes here we we create a metadata instance based on this descriptor. In v4 all the metadata classes were a subclasses of the dict class providing a mix between a descriptor and object model for state management. In v5 there is a clear boundary between descriptor and object model. All the state are managed as it should be in a normal Python class using class attributes:")]),t._v(" "),a("h4",{attrs:{id:"python-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python-3"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import Schema\n\nschema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Schema.from_descriptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema.yaml'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here we deal with a proper object model")]),t._v("\ndescriptor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema.to_descriptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here we export it back to be a descriptor")]),t._v("\n")])])]),a("p",[t._v("There are a few important traits of the new model:")]),t._v(" "),a("p",[t._v("it’s not possible to create a metadata instance from an invalid descriptor"),a("br"),t._v("\nit’s almost always guaranteed that a metadata instance is valid"),a("br"),t._v("\nit’s not possible to mix dicts and classes in methods like "),a("code",[t._v("package.add_resource")]),a("br"),t._v("\nit’s not possible to export an invalid descriptor"),a("br"),t._v("\nThis separation might make one to add a few additional lines of code, but it gives us much less fragile programs in the end. It’s especially important for software integrators who want to be sure that they write working code. At the same time, for quick prototyping and discovery Frictionless still provides high-level actions like "),a("code",[t._v("validate")]),t._v(" function that are more forgiving regarding user input.")]),t._v(" "),a("h2",{attrs:{id:"static-typing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#static-typing"}},[t._v("#")]),t._v(" Static Typing")]),t._v(" "),a("p",[t._v("One of the most important consequences of “fixing” state management in Frictionless is our new ability to provide static typing for the framework codebase. This work is in progress but we have already added a lot of types and it successfully pass "),a("code",[t._v("pyright")]),t._v(" validation. We highly recommend enabling "),a("code",[t._v("pyright")]),t._v(" in your IDE to see all the type problems in-advance:")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296542-9ee89ed3-999e-44b3-b3e4-32f1df125f4e.png",alt:"type-error"}})]),t._v(" "),a("h1",{attrs:{id:"livemark-docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#livemark-docs"}},[t._v("#")]),t._v(" Livemark Docs")]),t._v(" "),a("p",[t._v("We’re happy to announce that we’re finally ready to drop a JavaScript dependency for the docs generation as we migrated it to Livemark. Moreover, Livemark’s ability to execute scripts inside the documentation and other nifty features like simple Tabs or a reference generator will save us hours and hours for writing better docs.")]),t._v(" "),a("h2",{attrs:{id:"script-execution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#script-execution"}},[t._v("#")]),t._v(" Script Execution")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296761-09eb95c9-7245-4d75-8753-8b1bee635f62.png",alt:"livemark-1"}})]),t._v(" "),a("h2",{attrs:{id:"reference-generation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reference-generation"}},[t._v("#")]),t._v(" Reference Generation")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296860-cb2cc587-c518-47c1-9534-0c1d3f57e552.png",alt:"livemark-2"}})]),t._v(" "),a("h2",{attrs:{id:"happy-contributors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#happy-contributors"}},[t._v("#")]),t._v(" Happy Contributors")]),t._v(" "),a("p",[t._v("We hope that Livemark docs writing experience will make our contributors happier and allow to grow our community of Frictionless Authors and Users. Let’s chat in our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack"),a("OutboundLink")],1),t._v(" if you have questions or just want to say hi.")]),t._v(" "),a("p",[t._v("Read "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/blog/2022/08-22-frictionless-framework-v5.html#:~:text=Read-,Livemark%20Docs,-for%20more%20information",target:"_blank",rel:"noopener noreferrer"}},[t._v("Livemark Docs"),a("OutboundLink")],1),t._v(" for more information.")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{700:function(t,e,a){"use strict";a.r(e);var r=a(29),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("p",[t._v("We’re releasing a first beta of Firctionless Framework (v5)!"),a("br"),t._v("\nSince the initial Frictionless Framework release we’d been collecting feedback and analyzing both high-level users’ needs and bug reports to identify shortcomings and areas that can be improved in the next version for the framework. Once that process had been done we started working on a new v5 with a goal to make the framework more bullet-proof, easy to maintain and simplify user interface. Today, this version is almost stable and ready to be published. Let’s go through the main improvements we have made:")]),t._v(" "),a("h1",{attrs:{id:"improved-metadata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#improved-metadata"}},[t._v("#")]),t._v(" Improved Metadata")]),t._v(" "),a("p",[t._v("This year we started working on the Frictionless Application, at the same time, we were thinking about next steps for the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Standards"),a("OutboundLink")],1),t._v(". For both we need well-defined and an easy-to-understand metadata model. Partially it’s already published as standards like Table Schema and partially it’s going to be published as standards like File Dialect and possibly validation/transform metadata.")]),t._v(" "),a("h2",{attrs:{id:"dialect"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dialect"}},[t._v("#")]),t._v(" Dialect")]),t._v(" "),a("p",[t._v("In v4 of the framework we had Control/Dialect/Layout concepts to describe resource details related to different formats and schemes, as well as tabular details like header rows. In v5 it’s merged into the only one concept called Dialect which is going to be standardised as a File Dialect spec. Here is an example:")]),t._v(" "),a("h4",{attrs:{id:"yaml"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("header"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\nheaderRows"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\ncommentChar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#'")]),t._v("\ncsv"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n delimiter"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("';'")]),t._v("\n")])])]),a("p",[t._v("A dialect descriptor can be saved and reused within a resource. Technically, it’s possible to provide different schemes and formats settings within one Dialect (e.g. for CSV and Excel) so it’s possible to create e.g. one re-usable dialect for a data package. A legacy CSV Dialect spec is supported and will be supported forever so it’s possible to provide CSV properties on the root level:")]),t._v(" "),a("h4",{attrs:{id:"yaml-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-2"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("header"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\ndelimiter"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("';'")]),t._v("\n")])])]),a("p",[t._v("For performance and codebase maintainability reasons some marginal Layout features have been removed completely such as "),a("code",[t._v("skip/pick/limit/offsetFields/etc")]),t._v(". It’s possible to achieve the same results using the Pipeline concept as a part of the transformation workflow.")]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/dialect.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Dialect Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"checklist"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#checklist"}},[t._v("#")]),t._v(" Checklist")]),t._v(" "),a("p",[t._v("Checklist is a new concept introduced in v5. It’s basically a collection of validation steps and a few other settings to make “validation rules” sharable. For example:")]),t._v(" "),a("h4",{attrs:{id:"yaml-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-3"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("checks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ascii"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("value\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" row_constraint\n formula"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nskipErrors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" duplicate"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("label\n")])])]),a("p",[t._v("Having and sharing this checklist it’s possible to tune data quality requirements for some data file or set of data files. This concept will provide an ability for creating data quality “libraries” within projects or domains. We can use a checklist for validation:")]),t._v(" "),a("h4",{attrs:{id:"cli"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate table1.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("checklist checklist.yaml\nfrictionless validate table2.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("checklist checklist.yaml\n")])])]),a("p",[t._v("Here is a list of another changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Check(descriptor)")]),t._v(" "),a("td",[t._v("Check.from_descriptor(descriptor)")])]),t._v(" "),a("tr",[a("td",[t._v("check.code")]),t._v(" "),a("td",[t._v("check.type")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/checklist.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Checklist Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"pipeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pipeline"}},[t._v("#")]),t._v(" Pipeline")]),t._v(" "),a("p",[t._v("In v4 Pipeline was a complex concept similar to validation Inquiry. We reworked it for v5 to be a lightweight set of validation steps that can be applied to a data resource or a data package. For example:")]),t._v(" "),a("h4",{attrs:{id:"yaml-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-4"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("steps"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("normalize\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" cell"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("set\n fieldName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" version\n value"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" v5\n")])])]),a("p",[t._v("Similar to the Checklist concept, Pipeline is a reusable (data-abstract) object that can be saved to a descriptor and used in some complex data workflow:")]),t._v(" "),a("h4",{attrs:{id:"cli-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-2"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless transform table1.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("pipeline pipeline.yaml\nfrictionless transform table2.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("pipeline pipeline.yaml\n")])])]),a("p",[t._v("Here is another list of changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Step(descriptor)")]),t._v(" "),a("td",[t._v("Step.from_descriptor(descriptor)")])]),t._v(" "),a("tr",[a("td",[t._v("step.code")]),t._v(" "),a("td",[t._v("step.type")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/pipeline.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Pipeline Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resource"}},[t._v("#")]),t._v(" Resource")]),t._v(" "),a("p",[t._v("There are no changes in the Resource related to the standards although currently by default instead of "),a("code",[t._v("profile")]),t._v(" the "),a("code",[t._v("type")]),t._v(" property will be used to mark a resource as a table. It can be changed using the "),a("code",[t._v("--standards v1")]),t._v(" flag.")]),t._v(" "),a("p",[t._v("It’s now possible to set Checklist and Pipeline as a Resource property similar to Dialect and Schema:")]),t._v(" "),a("h4",{attrs:{id:"yaml-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-5"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# ...")]),t._v("\nchecklist"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n checks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ascii"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("value\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" row_constraint\n formula"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\npipeline"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" pipeline.yaml\n steps"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("normalize\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" cell"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("set\n fieldName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" version\n value"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" v5\n")])])]),a("p",[t._v("Or using dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-6"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("path"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# ...")]),t._v("\nchecklist"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" checklist.yaml\npipeline"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" pipeline.yaml\n")])])]),a("p",[t._v("In this case the validation/transformation will use it by default providing an ability to ship validation rules and transformation pipelines within resources and packages. This is an important development for data publishers who want to define what they consider to be valid for their datasets as well as sharing raw data with a cleaning pipeline steps:")]),t._v(" "),a("h4",{attrs:{id:"cli-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-3"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate resource.yaml "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# will use the checklist above")]),t._v("\nfrictionless transform resource.yaml "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# will use the pipeline above")]),t._v("\n")])])]),a("p",[t._v("There are minor changes in the "),a("code",[t._v("stats")]),t._v(" property. Now it uses named keys to simplify hash distinction (md5/sha256 are calculated by default and it’s not possible to change for performance reasons as it was in v4):")]),t._v(" "),a("h4",{attrs:{id:"python"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import describe\n\nresource "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" describe"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'table.csv'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" stats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("True"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nprint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("resource.stats"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'md5'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'6c2c61dd9b0e9c6876139a449ed87933'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'sha256'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'a1fd6c5ff3494f697874deeb07f69f8667e903dd94a7bc062dd57550cea26da8'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bytes'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rows'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Here is a list of another changes:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("for row in resource:")]),t._v(" "),a("td",[t._v("for row in resource.row_stream")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/resource.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"package"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#package"}},[t._v("#")]),t._v(" Package")]),t._v(" "),a("p",[t._v("There are no changes in the Package related to the standards although it’s now possible to use resource dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-7"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" package\nresources"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" resource1.yaml\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" resource2.yaml\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/package.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"catalog"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#catalog"}},[t._v("#")]),t._v(" Catalog")]),t._v(" "),a("p",[t._v("Catalog is a new concept that is a collection of data packages that can be written inline or using dereference:")]),t._v(" "),a("h4",{attrs:{id:"yaml-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-8"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" catalog\npackages"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" package1.yaml\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" package2.yaml\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/catalog.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Catalog Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"detector"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#detector"}},[t._v("#")]),t._v(" Detector")]),t._v(" "),a("p",[t._v("Detector is now a metadata class (it wasn’t in v4) so it can be saved and shared as other metadata classes:")]),t._v(" "),a("h4",{attrs:{id:"python-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python-2"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import Detector\n\ndetector "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Detector"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sample_size"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nprint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("detector"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'sampleSize'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/detector.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Detector Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"inquiry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inquiry"}},[t._v("#")]),t._v(" Inquiry")]),t._v(" "),a("p",[t._v("There are few changes in the Inquiry concept which is known for using in the "),a("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Repository"),a("OutboundLink")],1),t._v(" project:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.path")])]),t._v(" "),a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.resource")])]),t._v(" "),a("tr",[a("td",[t._v("inquiryTask.source")]),t._v(" "),a("td",[t._v("inquiryTask.package")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/inquiry.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Inquiry Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"report"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#report"}},[t._v("#")]),t._v(" Report")]),t._v(" "),a("p",[t._v("The Report concept has been significantly simplified by removing the "),a("code",[t._v("resource")]),t._v(" property from "),a("code",[t._v("reportTask")]),t._v(". It’s been replaced by "),a("code",[t._v("name/type/place/labels")]),t._v(" properties. Also "),a("code",[t._v("report.time")]),t._v(" is now "),a("code",[t._v("report.stats.seconds")]),t._v(". The "),a("code",[t._v("report/reportTask.warnings: List[str]")]),t._v(" have been added to provide non-error information like reached limits:")]),t._v(" "),a("h4",{attrs:{id:"cli-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cli-4"}},[t._v("#")]),t._v(" CLI")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("frictionless validate table.csv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("yaml\n")])])]),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("valid"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\nstats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n tasks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n seconds"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.091")]),t._v("\nwarnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nerrors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\ntasks"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" valid"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" true\n name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table\n place"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" table.csv\n labels"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" id\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name\n stats"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n md5"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("c2c61dd9b0e9c6876139a449ed87933\n sha256"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" a1fd6c5ff3494f697874deeb07f69f8667e903dd94a7bc062dd57550cea26da8\n bytes"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v("\n fields"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n rows"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n seconds"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.091")]),t._v("\n warnings"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("report.time")]),t._v(" "),a("td",[t._v("report.stats.seconds")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.time")]),t._v(" "),a("td",[t._v("reportTask.stats.seconds")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://reportTask.resource.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("reportTask.resource.name"),a("OutboundLink")],1)]),t._v(" "),a("td",[a("a",{attrs:{href:"http://reportTask.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("reportTask.name"),a("OutboundLink")],1)])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.profile")]),t._v(" "),a("td",[t._v("reportTask.type")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.path")]),t._v(" "),a("td",[t._v("reportTask.place")])]),t._v(" "),a("tr",[a("td",[t._v("reportTask.resource.schema")]),t._v(" "),a("td",[t._v("reportTask.labels")])])])]),t._v(" "),a("p",[t._v("Read an article about "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/report.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Report Class"),a("OutboundLink")],1),t._v(" for more information.")]),t._v(" "),a("h2",{attrs:{id:"schema"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schema"}},[t._v("#")]),t._v(" Schema")]),t._v(" "),a("p",[t._v("Changes in the Schema class:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Schema(descriptor)")]),t._v(" "),a("td",[t._v("Schema.from_descriptor(descriptor)")])])])]),t._v(" "),a("h2",{attrs:{id:"error"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#error"}},[t._v("#")]),t._v(" Error")]),t._v(" "),a("p",[t._v("There are a few changes in the Error data structure:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("error.code")]),t._v(" "),a("td",[t._v("error.type")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://error.name",target:"_blank",rel:"noopener noreferrer"}},[t._v("error.name"),a("OutboundLink")],1)]),t._v(" "),a("td",[t._v("error.title")])]),t._v(" "),a("tr",[a("td",[t._v("error.rowPosition")]),t._v(" "),a("td",[t._v("error.rowNumber")])]),t._v(" "),a("tr",[a("td",[t._v("error.fieldPosition")]),t._v(" "),a("td",[t._v("error.fieldNumber")])])])]),t._v(" "),a("h2",{attrs:{id:"types"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#types"}},[t._v("#")]),t._v(" Types")]),t._v(" "),a("p",[t._v("Note that all the metadata entities that have multiple implementations in v5 are based on a unified "),a("code",[t._v("type")]),t._v(" model. It means that they use the type property to provide type information:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("From (v4)")]),t._v(" "),a("th",[t._v("To (v5)")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("resource.profile")]),t._v(" "),a("td",[t._v("resource.type")])]),t._v(" "),a("tr",[a("td",[t._v("check.code")]),t._v(" "),a("td",[t._v("check.type")])]),t._v(" "),a("tr",[a("td",[t._v("control.code")]),t._v(" "),a("td",[t._v("control.type")])]),t._v(" "),a("tr",[a("td",[t._v("error.code")]),t._v(" "),a("td",[t._v("error.type")])]),t._v(" "),a("tr",[a("td",[t._v("field.type")]),t._v(" "),a("td",[t._v("field.type")])]),t._v(" "),a("tr",[a("td",[t._v("step.type")]),t._v(" "),a("td",[t._v("step.type")])])])]),t._v(" "),a("p",[t._v("The new v5 version still supports old notation in descriptors for backward-compatibility.")]),t._v(" "),a("h1",{attrs:{id:"improved-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#improved-model"}},[t._v("#")]),t._v(" Improved Model")]),t._v(" "),a("p",[t._v("It’s been many years that Frictionless were mixing declarative metadata and object model for historical reasons. Since the first implementation of "),a("code",[t._v("datapackage")]),t._v(" library we used different approaches to sync internal state to provide both interfaces descriptor and object model. In Frictionless Framework v4 this technique had been taken to a really sophisticated level with special observables dictionary classes. It was quite smart and nice-to-use for quick prototyping in REPL but it was really hard to maintain and error-prone.")]),t._v(" "),a("p",[t._v("In Framework v5 we finally decided to follow the “right way” for handling this problem and split descriptors and object model completely.")]),t._v(" "),a("h2",{attrs:{id:"descriptors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#descriptors"}},[t._v("#")]),t._v(" Descriptors")]),t._v(" "),a("p",[t._v("In the Frictionless World we deal with a lot of declarative metadata descriptors such as packages, schemas, pipelines, etc. Nothing changes in v5 regarding this. So for example here is a Table Schema:")]),t._v(" "),a("h4",{attrs:{id:"yaml-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yaml-9"}},[t._v("#")]),t._v(" YAML")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("fields"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" id\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" integer\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" name"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" name\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string\n")])])]),a("h2",{attrs:{id:"object-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#object-model"}},[t._v("#")]),t._v(" Object Model")]),t._v(" "),a("p",[t._v("The difference comes here we we create a metadata instance based on this descriptor. In v4 all the metadata classes were a subclasses of the dict class providing a mix between a descriptor and object model for state management. In v5 there is a clear boundary between descriptor and object model. All the state are managed as it should be in a normal Python class using class attributes:")]),t._v(" "),a("h4",{attrs:{id:"python-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#python-3"}},[t._v("#")]),t._v(" Python")]),t._v(" "),a("div",{staticClass:"language-r extra-class"},[a("pre",{pre:!0,attrs:{class:"language-r"}},[a("code",[t._v("from frictionless import Schema\n\nschema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Schema.from_descriptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema.yaml'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here we deal with a proper object model")]),t._v("\ndescriptor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema.to_descriptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here we export it back to be a descriptor")]),t._v("\n")])])]),a("p",[t._v("There are a few important traits of the new model:")]),t._v(" "),a("p",[t._v("it’s not possible to create a metadata instance from an invalid descriptor"),a("br"),t._v("\nit’s almost always guaranteed that a metadata instance is valid"),a("br"),t._v("\nit’s not possible to mix dicts and classes in methods like "),a("code",[t._v("package.add_resource")]),a("br"),t._v("\nit’s not possible to export an invalid descriptor"),a("br"),t._v("\nThis separation might make one to add a few additional lines of code, but it gives us much less fragile programs in the end. It’s especially important for software integrators who want to be sure that they write working code. At the same time, for quick prototyping and discovery Frictionless still provides high-level actions like "),a("code",[t._v("validate")]),t._v(" function that are more forgiving regarding user input.")]),t._v(" "),a("h2",{attrs:{id:"static-typing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#static-typing"}},[t._v("#")]),t._v(" Static Typing")]),t._v(" "),a("p",[t._v("One of the most important consequences of “fixing” state management in Frictionless is our new ability to provide static typing for the framework codebase. This work is in progress but we have already added a lot of types and it successfully pass "),a("code",[t._v("pyright")]),t._v(" validation. We highly recommend enabling "),a("code",[t._v("pyright")]),t._v(" in your IDE to see all the type problems in-advance:")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296542-9ee89ed3-999e-44b3-b3e4-32f1df125f4e.png",alt:"type-error"}})]),t._v(" "),a("h1",{attrs:{id:"livemark-docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#livemark-docs"}},[t._v("#")]),t._v(" Livemark Docs")]),t._v(" "),a("p",[t._v("We’re happy to announce that we’re finally ready to drop a JavaScript dependency for the docs generation as we migrated it to Livemark. Moreover, Livemark’s ability to execute scripts inside the documentation and other nifty features like simple Tabs or a reference generator will save us hours and hours for writing better docs.")]),t._v(" "),a("h2",{attrs:{id:"script-execution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#script-execution"}},[t._v("#")]),t._v(" Script Execution")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296761-09eb95c9-7245-4d75-8753-8b1bee635f62.png",alt:"livemark-1"}})]),t._v(" "),a("h2",{attrs:{id:"reference-generation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reference-generation"}},[t._v("#")]),t._v(" Reference Generation")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://user-images.githubusercontent.com/74717970/187296860-cb2cc587-c518-47c1-9534-0c1d3f57e552.png",alt:"livemark-2"}})]),t._v(" "),a("h2",{attrs:{id:"happy-contributors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#happy-contributors"}},[t._v("#")]),t._v(" Happy Contributors")]),t._v(" "),a("p",[t._v("We hope that Livemark docs writing experience will make our contributors happier and allow to grow our community of Frictionless Authors and Users. Let’s chat in our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack"),a("OutboundLink")],1),t._v(" if you have questions or just want to say hi.")]),t._v(" "),a("p",[t._v("Read "),a("a",{attrs:{href:"https://framework.frictionlessdata.io/blog/2022/08-22-frictionless-framework-v5.html#:~:text=Read-,Livemark%20Docs,-for%20more%20information",target:"_blank",rel:"noopener noreferrer"}},[t._v("Livemark Docs"),a("OutboundLink")],1),t._v(" for more information.")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/166.7552b535.js b/assets/js/166.47347e73.js similarity index 98% rename from assets/js/166.7552b535.js rename to assets/js/166.47347e73.js index 254f671d1..a9706ceae 100644 --- a/assets/js/166.7552b535.js +++ b/assets/js/166.47347e73.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{699:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On the last community call on August 25"),r("sup",[e._v("th")]),e._v(", we had our very own Frictionless Data developer Shashi Gharti presenting to the community the new Frictionless GitHub integration, to read and write data packages from/to GitHub repositories.")]),e._v(" "),r("p",[e._v("Besides reading and writing packages, the integration also allows the creation of containers for data packages: the "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/catalog.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("catalog"),r("OutboundLink")],1),e._v(", a list of packages from multiple repositories in GitHub. To select which repository you want to be in the catalog, you can use any GitHub qualifier.")]),e._v(" "),r("p",[e._v("The Frictionless GitHub integration is part of the beta release of "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2022/08/29/frictionless-framework-release/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Framework version 5"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("If you are interested in knowing more about the Frictionless GitHub integration, have a look at Shashi’s presentation and demo:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/gURZK9WDpp0",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("You can also check out "),r("a",{attrs:{href:"https://docs.google.com/presentation/d/1hhHEgEqzIkIpzCZ_FW-DjJtImxPI8jdi7Ck5OXiiDsM/edit?usp=sharing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shashi’s slides"),r("OutboundLink")],1),e._v(" or have a look at "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/portals/github.html#reference-portals.githubcontrol",target:"_blank",rel:"noopener noreferrer"}},[e._v("the project documentation"),r("OutboundLink")],1),e._v(". If you use the Frictionless Framework v5 and its GitHub integration, please let us know! And if you have any feedback, feel free to open an issue in the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/framework",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),r("OutboundLink")],1)]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Next community call is on September 29"),r("sup",[e._v("th")]),e._v(". Frictionless Data lead developer Evgeny Karev will be presenting the Frictionless Framework version 5, so make sure not to miss it!")]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),r("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),r("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Join our community on "),r("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),r("OutboundLink")],1),e._v(" (also via "),r("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(") or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/9_VwniN4JKE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{701:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On the last community call on August 25"),r("sup",[e._v("th")]),e._v(", we had our very own Frictionless Data developer Shashi Gharti presenting to the community the new Frictionless GitHub integration, to read and write data packages from/to GitHub repositories.")]),e._v(" "),r("p",[e._v("Besides reading and writing packages, the integration also allows the creation of containers for data packages: the "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/framework/catalog.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("catalog"),r("OutboundLink")],1),e._v(", a list of packages from multiple repositories in GitHub. To select which repository you want to be in the catalog, you can use any GitHub qualifier.")]),e._v(" "),r("p",[e._v("The Frictionless GitHub integration is part of the beta release of "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2022/08/29/frictionless-framework-release/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Framework version 5"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("If you are interested in knowing more about the Frictionless GitHub integration, have a look at Shashi’s presentation and demo:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/gURZK9WDpp0",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),r("p",[e._v("You can also check out "),r("a",{attrs:{href:"https://docs.google.com/presentation/d/1hhHEgEqzIkIpzCZ_FW-DjJtImxPI8jdi7Ck5OXiiDsM/edit?usp=sharing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shashi’s slides"),r("OutboundLink")],1),e._v(" or have a look at "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/docs/portals/github.html#reference-portals.githubcontrol",target:"_blank",rel:"noopener noreferrer"}},[e._v("the project documentation"),r("OutboundLink")],1),e._v(". If you use the Frictionless Framework v5 and its GitHub integration, please let us know! And if you have any feedback, feel free to open an issue in the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/framework",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),r("OutboundLink")],1)]),e._v(" "),r("h1",{attrs:{id:"join-us-next-month"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),r("p",[e._v("Next community call is on September 29"),r("sup",[e._v("th")]),e._v(". Frictionless Data lead developer Evgeny Karev will be presenting the Frictionless Framework version 5, so make sure not to miss it!")]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),r("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),r("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Join our community on "),r("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),r("OutboundLink")],1),e._v(" (also via "),r("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),r("OutboundLink")],1),e._v(") or "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),r("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/9_VwniN4JKE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/167.bbe687fa.js b/assets/js/167.e71c3cb9.js similarity index 99% rename from assets/js/167.bbe687fa.js rename to assets/js/167.e71c3cb9.js index 87537ccce..670d8619b 100644 --- a/assets/js/167.bbe687fa.js +++ b/assets/js/167.e71c3cb9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{702:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call on October 27"),o("sup",[e._v("th")]),e._v(", we had our very own Frictionless Data developer Shashi Gharti presenting to the community the Frictionless Zenodo integration, to read and write data packages from and to Zenodo.")]),e._v(" "),o("p",[e._v("The integration is currently in development, but we decided to present this feature already in order to gather feedback from the community. It was a great idea because we got a lot of very useful inputs from all of you. Also how wonderful to see the community! We had really missed you all in the last two months, since we had to cancel the September call.")]),e._v(" "),o("p",[e._v("Back to Shashi’s presentation: what is Zenodo? For those of you who don’t know it, Zenodo is an open repository, allowing researchers to deposit papers, datasets, software, reports, etc.")]),e._v(" "),o("p",[e._v("Many members of our community are active users of Zenodo, and have asked for a plugin which would make it easier to use Frictionless Data and Zenodo together. Since our aim with Frictionless Data is to make data more easily shareable, transportable and interoperable, this feature made a lot of sense.")]),e._v(" "),o("p",[e._v("Similarly to "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2022/08/30/community-call-github-integration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the GitHub integration Shashi presented in August"),o("OutboundLink")],1),e._v(", the Zenodo integration will work with Frictionless-py v5, and has 3 different features to write data, read data and create a catalog from multiple Zenodo entries, searchable")]),e._v(" "),o("p",[e._v("If you are interested in knowing more about the feature, have a look at Shashi’s presentation and demo:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/KdblvfqIX7o",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("You can also check out "),o("a",{attrs:{href:"https://docs.google.com/presentation/d/1dMvHCR9yE4BewzpQBaW4osKg--aQR7JX6fex0T17YYA/edit?usp=sharing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shashi’s slides"),o("OutboundLink")],1),e._v(". If you use the Frictionless Framework v5 and its Zenodo integration, please let us know! We would love to hear what you think. And if you have any feedback, feel free to open an issue in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/framework",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"other-news-from-the-community"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#other-news-from-the-community"}},[e._v("#")]),e._v(" Other news from the community")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("We are co-organizing "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf v7"),o("OutboundLink")],1),e._v(" in Buenos Aires in April next year. csv,conf is a community event for datamakers from all around the world. Calls for proposals are open until November 25th. More info: "),o("a",{attrs:{href:"https://csvconf.com/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://csvconf.com/about/"),o("OutboundLink")],1)])]),e._v(" "),o("li",[o("p",[e._v("Peter Desmet is co-organising a conference on biodiversity data on November 9th, with a focus on camera trap data, for which he uses Frictionless Data standards as you may remember from his presentation at "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/11/23/november-community-call/",target:"_blank",rel:"noopener noreferrer"}},[e._v("last year’s community call"),o("OutboundLink")],1),e._v(". More info: "),o("a",{attrs:{href:"https://www.gbif.org/event/f68927-b5c1-4ac8-a4ac-7d47645/exploring-camera-trap-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.gbif.org/event/f68927-b5c1-4ac8-a4ac-7d47645/exploring-camera-trap-data"),o("OutboundLink")],1)])]),e._v(" "),o("li",[o("p",[e._v("We published an article on the Frictionless Data standards, and we talked about some community projects too, like Libraries Hacked, "),o("a",{attrs:{href:"http://data.gov.fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.gov.fr"),o("OutboundLink")],1),e._v(", "),o("a",{attrs:{href:"http://dados.gov.br",target:"_blank",rel:"noopener noreferrer"}},[e._v("dados.gov.br"),o("OutboundLink")],1),e._v(", and BCO-DMO. The article is part of Common Place, a space to discuss the digital infrastructures, cultures, and actions needed to distribute, constellate, and amplify knowledge for the public good. ​ Check it out: "),o("a",{attrs:{href:"https://commonplace.knowledgefutures.org/pub/8x7oeawa/release/1?readingCollection=10ba8b01",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://commonplace.knowledgefutures.org/pub/8x7oeawa/release/1?readingCollection=10ba8b01"),o("OutboundLink")],1)])])]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on December 1st (we are pushing it back one week because of the US Thanksgiving).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Join our community on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/woEiTllLp7A",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{704:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call on October 27"),o("sup",[e._v("th")]),e._v(", we had our very own Frictionless Data developer Shashi Gharti presenting to the community the Frictionless Zenodo integration, to read and write data packages from and to Zenodo.")]),e._v(" "),o("p",[e._v("The integration is currently in development, but we decided to present this feature already in order to gather feedback from the community. It was a great idea because we got a lot of very useful inputs from all of you. Also how wonderful to see the community! We had really missed you all in the last two months, since we had to cancel the September call.")]),e._v(" "),o("p",[e._v("Back to Shashi’s presentation: what is Zenodo? For those of you who don’t know it, Zenodo is an open repository, allowing researchers to deposit papers, datasets, software, reports, etc.")]),e._v(" "),o("p",[e._v("Many members of our community are active users of Zenodo, and have asked for a plugin which would make it easier to use Frictionless Data and Zenodo together. Since our aim with Frictionless Data is to make data more easily shareable, transportable and interoperable, this feature made a lot of sense.")]),e._v(" "),o("p",[e._v("Similarly to "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2022/08/30/community-call-github-integration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the GitHub integration Shashi presented in August"),o("OutboundLink")],1),e._v(", the Zenodo integration will work with Frictionless-py v5, and has 3 different features to write data, read data and create a catalog from multiple Zenodo entries, searchable")]),e._v(" "),o("p",[e._v("If you are interested in knowing more about the feature, have a look at Shashi’s presentation and demo:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/KdblvfqIX7o",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("You can also check out "),o("a",{attrs:{href:"https://docs.google.com/presentation/d/1dMvHCR9yE4BewzpQBaW4osKg--aQR7JX6fex0T17YYA/edit?usp=sharing",target:"_blank",rel:"noopener noreferrer"}},[e._v("Shashi’s slides"),o("OutboundLink")],1),e._v(". If you use the Frictionless Framework v5 and its Zenodo integration, please let us know! We would love to hear what you think. And if you have any feedback, feel free to open an issue in the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/framework",target:"_blank",rel:"noopener noreferrer"}},[e._v("repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"other-news-from-the-community"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#other-news-from-the-community"}},[e._v("#")]),e._v(" Other news from the community")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("We are co-organizing "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf v7"),o("OutboundLink")],1),e._v(" in Buenos Aires in April next year. csv,conf is a community event for datamakers from all around the world. Calls for proposals are open until November 25th. More info: "),o("a",{attrs:{href:"https://csvconf.com/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://csvconf.com/about/"),o("OutboundLink")],1)])]),e._v(" "),o("li",[o("p",[e._v("Peter Desmet is co-organising a conference on biodiversity data on November 9th, with a focus on camera trap data, for which he uses Frictionless Data standards as you may remember from his presentation at "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/11/23/november-community-call/",target:"_blank",rel:"noopener noreferrer"}},[e._v("last year’s community call"),o("OutboundLink")],1),e._v(". More info: "),o("a",{attrs:{href:"https://www.gbif.org/event/f68927-b5c1-4ac8-a4ac-7d47645/exploring-camera-trap-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.gbif.org/event/f68927-b5c1-4ac8-a4ac-7d47645/exploring-camera-trap-data"),o("OutboundLink")],1)])]),e._v(" "),o("li",[o("p",[e._v("We published an article on the Frictionless Data standards, and we talked about some community projects too, like Libraries Hacked, "),o("a",{attrs:{href:"http://data.gov.fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.gov.fr"),o("OutboundLink")],1),e._v(", "),o("a",{attrs:{href:"http://dados.gov.br",target:"_blank",rel:"noopener noreferrer"}},[e._v("dados.gov.br"),o("OutboundLink")],1),e._v(", and BCO-DMO. The article is part of Common Place, a space to discuss the digital infrastructures, cultures, and actions needed to distribute, constellate, and amplify knowledge for the public good. ​ Check it out: "),o("a",{attrs:{href:"https://commonplace.knowledgefutures.org/pub/8x7oeawa/release/1?readingCollection=10ba8b01",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://commonplace.knowledgefutures.org/pub/8x7oeawa/release/1?readingCollection=10ba8b01"),o("OutboundLink")],1)])])]),e._v(" "),o("h1",{attrs:{id:"join-us-next-month"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),o("p",[e._v("Next community call is on December 1st (we are pushing it back one week because of the US Thanksgiving).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("p",[e._v("Would you like to present at one of the next community calls? Please fill out "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Join our community on "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),o("OutboundLink")],1),e._v(" (also via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),o("OutboundLink")],1),e._v(") or "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),o("OutboundLink")],1),e._v(". See you there!")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/woEiTllLp7A",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/169.75839ea7.js b/assets/js/169.4cd6dd92.js similarity index 99% rename from assets/js/169.75839ea7.js rename to assets/js/169.4cd6dd92.js index bbe28ba66..361852afa 100644 --- a/assets/js/169.75839ea7.js +++ b/assets/js/169.4cd6dd92.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{706:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On December 22"),a("sup",[e._v("nd")]),e._v(", for our last community call of the year, we had a nice discussion with Oleg Lavrovsky, an old friend of Open Knowledge Foundation, board member of the Swiss chapter, and valued member of the Frictionless Data community, about Data Package as a Service.")]),e._v(" "),a("p",[e._v("Oleg together with Thorben Westerhuys (remember his "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/29/february-virtual-hangout/#a-recap-from-our-march-community-call",target:"_blank",rel:"noopener noreferrer"}},[e._v("spatiotemporal covid 19 vaccination tracker he presented in March 2021"),a("OutboundLink")],1),e._v("?) already made a first attempt at this in 2019, as you can see in this "),a("a",{attrs:{href:"https://github.com/datalets/daats",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo here"),a("OutboundLink")],1),e._v(". The repository works as a template to create a quick API around your Frictionless Data Package. This solution is based on the "),a("a",{attrs:{href:"http://falconframework.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Falcon micro framework"),a("OutboundLink")],1),e._v(" and the "),a("a",{attrs:{href:"https://github.com/rgieseke/pandas-datapackage-reader",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas Data Package Reader"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("More recently Edgar Zanella from the Frictionless Data core team also worked on an "),a("a",{attrs:{href:"https://github.com/aivuk/datapackage-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("experimental solution"),a("OutboundLink")],1),e._v(", converting a Data Package to SQLite database and using "),a("a",{attrs:{href:"https://datasette.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datasette"),a("OutboundLink")],1),e._v(" to have a "),a("a",{attrs:{href:"https://github.com/aivuk/datapackage-api/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON API"),a("OutboundLink")],1),e._v(" over the data. The advantage of this solution is that the way of querying the data is going to be familiar for those that knows "),a("a",{attrs:{href:"https://docs.datasette.io/en/stable/sql_queries.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("SQL"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Then in November 2022, during the GLAMhack 2022 in Mendrisio, an API for Frictionless Data Packages was needed again to be able to sort data and view it on a map. The end result was a "),a("a",{attrs:{href:"https://hack.glam.opendata.ch/project/177",target:"_blank",rel:"noopener noreferrer"}},[e._v("Living Herbarium app"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("So Oleg decided to pitch the idea of Frictionless Data Packages as services, as a challenge at the "),a("a",{attrs:{href:"https://hacknight.dinacon.ch/project/60",target:"_blank",rel:"noopener noreferrer"}},[e._v("DINAcon hacknights"),a("OutboundLink")],1),e._v(" in Bern. The challenge was not picked by anyone at the hackathon itself, but it sparked a conversation "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/archives/C0369JLDJ1Z/p1668597797541189",target:"_blank",rel:"noopener noreferrer"}},[e._v("in our community chat"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you are also interested in joining the conversation, just get on the thread in the community chat. If you need a bit of context, you can of course rewatch Oleg’s presentation:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/n_neCrY02jg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("p",[e._v("It was also noted during the call that 2 other excellent ways to get a quick API for Frictionless Data Packages are:")]),e._v(" "),a("ul",[a("li",[a("p",[e._v("The "),a("a",{attrs:{href:"https://githubnext.com/projects/flat-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flat Data project"),a("OutboundLink")],1),e._v(", developed on top of an idea by Simon Willison, allows (among other things) to have a quick API for your Data Package.")])]),e._v(" "),a("li",[a("p",[e._v("CKAN, since CKAN provides APIs. For example via "),a("a",{attrs:{href:"https://github.com/datalets/ckan-embed",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN-embed"),a("OutboundLink")],1),e._v(", a widget for embedding live data searches from CKAN data portals into external websites.")])])]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on January 26"),a("sup",[e._v("th")]),e._v(" and we are going to hear about Frictionless Data and DCAT from Matteo Fortini.")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("p",[e._v("And if you have a cool project that you would like to show to the community, please let us know! You can just fill out "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our community chat on "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" (also via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v("). See you there!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/hmr18OhY578",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{707:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On December 22"),a("sup",[e._v("nd")]),e._v(", for our last community call of the year, we had a nice discussion with Oleg Lavrovsky, an old friend of Open Knowledge Foundation, board member of the Swiss chapter, and valued member of the Frictionless Data community, about Data Package as a Service.")]),e._v(" "),a("p",[e._v("Oleg together with Thorben Westerhuys (remember his "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/03/29/february-virtual-hangout/#a-recap-from-our-march-community-call",target:"_blank",rel:"noopener noreferrer"}},[e._v("spatiotemporal covid 19 vaccination tracker he presented in March 2021"),a("OutboundLink")],1),e._v("?) already made a first attempt at this in 2019, as you can see in this "),a("a",{attrs:{href:"https://github.com/datalets/daats",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repo here"),a("OutboundLink")],1),e._v(". The repository works as a template to create a quick API around your Frictionless Data Package. This solution is based on the "),a("a",{attrs:{href:"http://falconframework.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Falcon micro framework"),a("OutboundLink")],1),e._v(" and the "),a("a",{attrs:{href:"https://github.com/rgieseke/pandas-datapackage-reader",target:"_blank",rel:"noopener noreferrer"}},[e._v("Pandas Data Package Reader"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("More recently Edgar Zanella from the Frictionless Data core team also worked on an "),a("a",{attrs:{href:"https://github.com/aivuk/datapackage-api",target:"_blank",rel:"noopener noreferrer"}},[e._v("experimental solution"),a("OutboundLink")],1),e._v(", converting a Data Package to SQLite database and using "),a("a",{attrs:{href:"https://datasette.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datasette"),a("OutboundLink")],1),e._v(" to have a "),a("a",{attrs:{href:"https://github.com/aivuk/datapackage-api/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JSON API"),a("OutboundLink")],1),e._v(" over the data. The advantage of this solution is that the way of querying the data is going to be familiar for those that knows "),a("a",{attrs:{href:"https://docs.datasette.io/en/stable/sql_queries.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("SQL"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Then in November 2022, during the GLAMhack 2022 in Mendrisio, an API for Frictionless Data Packages was needed again to be able to sort data and view it on a map. The end result was a "),a("a",{attrs:{href:"https://hack.glam.opendata.ch/project/177",target:"_blank",rel:"noopener noreferrer"}},[e._v("Living Herbarium app"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("So Oleg decided to pitch the idea of Frictionless Data Packages as services, as a challenge at the "),a("a",{attrs:{href:"https://hacknight.dinacon.ch/project/60",target:"_blank",rel:"noopener noreferrer"}},[e._v("DINAcon hacknights"),a("OutboundLink")],1),e._v(" in Bern. The challenge was not picked by anyone at the hackathon itself, but it sparked a conversation "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/archives/C0369JLDJ1Z/p1668597797541189",target:"_blank",rel:"noopener noreferrer"}},[e._v("in our community chat"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you are also interested in joining the conversation, just get on the thread in the community chat. If you need a bit of context, you can of course rewatch Oleg’s presentation:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/n_neCrY02jg",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("p",[e._v("It was also noted during the call that 2 other excellent ways to get a quick API for Frictionless Data Packages are:")]),e._v(" "),a("ul",[a("li",[a("p",[e._v("The "),a("a",{attrs:{href:"https://githubnext.com/projects/flat-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("Flat Data project"),a("OutboundLink")],1),e._v(", developed on top of an idea by Simon Willison, allows (among other things) to have a quick API for your Data Package.")])]),e._v(" "),a("li",[a("p",[e._v("CKAN, since CKAN provides APIs. For example via "),a("a",{attrs:{href:"https://github.com/datalets/ckan-embed",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN-embed"),a("OutboundLink")],1),e._v(", a widget for embedding live data searches from CKAN data portals into external websites.")])])]),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on January 26"),a("sup",[e._v("th")]),e._v(" and we are going to hear about Frictionless Data and DCAT from Matteo Fortini.")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("p",[e._v("And if you have a cool project that you would like to show to the community, please let us know! You can just fill out "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our community chat on "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" (also via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v("). See you there!")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/hmr18OhY578",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/170.e11e2e40.js b/assets/js/170.8724c2c6.js similarity index 98% rename from assets/js/170.e11e2e40.js rename to assets/js/170.8724c2c6.js index 00848a0d7..cb0a0eb86 100644 --- a/assets/js/170.e11e2e40.js +++ b/assets/js/170.8724c2c6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{707:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that we are going back to FOSDEM this year! Frictionless Data Technical Leader at Open Knowledge Foundation, Evgeny Karev, will give an overview of the main functionalities of the upcoming and much awaited Frictionless Application.")]),e._v(" "),a("p",[e._v("The talk will be featured in the Open Research Tools and Technology devroom, alongside other super interesting talks. Have a look at the schedule "),a("a",{attrs:{href:"https://fosdem.org/2023/schedule/track/open_research_tools_and_technology/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" to know more. This devroom provides a place and time to discuss the issues related to the creation and usage of open research technologies, with the ambition to foster discussions between designers, developers and users, bridging multiple knowledge-based communities together, and with the broader FLOSS community.")]),e._v(" "),a("p",[e._v("While FOSDEM is going back to Brussels for a physical event this year, the decision was made to keep part of the programme online to allow a broader audience to join. The Frictionless Application overview will be online as well, so you can follow it and participate in the discussion from wherever you are, even if you are not in Brussels.")]),e._v(" "),a("p",[e._v("This will be our 4th year at FOSDEM, and we are very proud to have been part of the Open Research devroom since its creation 4 years ago. To celebrate this, let’s look back at some of the great moments we shared:")]),e._v(" "),a("p",[e._v("In 2020 Lilly Winfree presented on-site “Frictionless Data for Reproducible Research” (you can watch the video recording "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=lFgZTfCZu5U&t=317s",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v("), a talk in which she discussed the technical ideas behind Frictionless Data for research, and showcased collaborative use cases, particularly the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BCO-DMO pilot"),a("OutboundLink")],1),e._v(", which was quite new at the time. Lilly showed how implementing Frictionless Data tooling into their data ingest pipelines allowed BCO-DMO to integrate disparate data while maintaining quality metadata in an easy to use interface. You can find all the info about this talk into the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2020/schedule/event/open_research_frictionless_data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("In 2021, for the first online FOSDEM due to Covid 19, Carles Pina i Estany presented "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/18/schema-collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema-collaboration"),a("OutboundLink")],1),e._v(", an open tool for reproducible research that helps data managers and researchers to collaborate on documenting datasets, built using the Frictionless Data specifications and software. Schema-collaboration was developed during the 2020 Tool Fund. For the FOSDEM presentation Carles gave an overview of the tool and did a demo as well."),a("br"),e._v("\nFind all the info (including a video recording of the presentation) on the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2021/schedule/event/open_research_schema_collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("In 2022 our Technical Lead, Evgeny Karev, presented the newly released (at the time) "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v(", a tool to publish data articles with interactive tables, charts, and other elements very easily, without leaving a text editor."),a("br"),e._v("\nHave a look at the presentation and find all the information about it on the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2022/schedule/event/open_research_livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("And what about this year? We wanted to release the Frictionless Application for FOSDEM, but we had to push that back a little bit. But as we said above, Evgeny is still giving "),a("a",{attrs:{href:"https://fosdem.org/2023/schedule/room/dresearch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("an overview of the Application"),a("OutboundLink")],1),e._v(" and some of its main features, which you should definitely not miss! See you online on Saturday, and happy FOSDEM weekend to you all!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{706:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce that we are going back to FOSDEM this year! Frictionless Data Technical Leader at Open Knowledge Foundation, Evgeny Karev, will give an overview of the main functionalities of the upcoming and much awaited Frictionless Application.")]),e._v(" "),a("p",[e._v("The talk will be featured in the Open Research Tools and Technology devroom, alongside other super interesting talks. Have a look at the schedule "),a("a",{attrs:{href:"https://fosdem.org/2023/schedule/track/open_research_tools_and_technology/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(" to know more. This devroom provides a place and time to discuss the issues related to the creation and usage of open research technologies, with the ambition to foster discussions between designers, developers and users, bridging multiple knowledge-based communities together, and with the broader FLOSS community.")]),e._v(" "),a("p",[e._v("While FOSDEM is going back to Brussels for a physical event this year, the decision was made to keep part of the programme online to allow a broader audience to join. The Frictionless Application overview will be online as well, so you can follow it and participate in the discussion from wherever you are, even if you are not in Brussels.")]),e._v(" "),a("p",[e._v("This will be our 4th year at FOSDEM, and we are very proud to have been part of the Open Research devroom since its creation 4 years ago. To celebrate this, let’s look back at some of the great moments we shared:")]),e._v(" "),a("p",[e._v("In 2020 Lilly Winfree presented on-site “Frictionless Data for Reproducible Research” (you can watch the video recording "),a("a",{attrs:{href:"https://www.youtube.com/watch?v=lFgZTfCZu5U&t=317s",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v("), a talk in which she discussed the technical ideas behind Frictionless Data for research, and showcased collaborative use cases, particularly the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BCO-DMO pilot"),a("OutboundLink")],1),e._v(", which was quite new at the time. Lilly showed how implementing Frictionless Data tooling into their data ingest pipelines allowed BCO-DMO to integrate disparate data while maintaining quality metadata in an easy to use interface. You can find all the info about this talk into the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2020/schedule/event/open_research_frictionless_data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("In 2021, for the first online FOSDEM due to Covid 19, Carles Pina i Estany presented "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/01/18/schema-collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema-collaboration"),a("OutboundLink")],1),e._v(", an open tool for reproducible research that helps data managers and researchers to collaborate on documenting datasets, built using the Frictionless Data specifications and software. Schema-collaboration was developed during the 2020 Tool Fund. For the FOSDEM presentation Carles gave an overview of the tool and did a demo as well."),a("br"),e._v("\nFind all the info (including a video recording of the presentation) on the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2021/schedule/event/open_research_schema_collaboration/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("In 2022 our Technical Lead, Evgeny Karev, presented the newly released (at the time) "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/06/22/livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),a("OutboundLink")],1),e._v(", a tool to publish data articles with interactive tables, charts, and other elements very easily, without leaving a text editor."),a("br"),e._v("\nHave a look at the presentation and find all the information about it on the FOSDEM archive "),a("a",{attrs:{href:"https://archive.fosdem.org/2022/schedule/event/open_research_livemark/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("And what about this year? We wanted to release the Frictionless Application for FOSDEM, but we had to push that back a little bit. But as we said above, Evgeny is still giving "),a("a",{attrs:{href:"https://fosdem.org/2023/schedule/room/dresearch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("an overview of the Application"),a("OutboundLink")],1),e._v(" and some of its main features, which you should definitely not miss! See you online on Saturday, and happy FOSDEM weekend to you all!")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/175.33e4d10e.js b/assets/js/175.7478e44c.js similarity index 98% rename from assets/js/175.33e4d10e.js rename to assets/js/175.7478e44c.js index 00618cde1..151ea7bea 100644 --- a/assets/js/175.33e4d10e.js +++ b/assets/js/175.7478e44c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{713:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last community call on May 25"),a("sup",[e._v("th")]),e._v(" Augusto Herrmann presented FastETL, a free and open source software library for Apache Airflow that makes it easier to integrate heterogeneous data sources and to publish open data (e.g. to CKAN data portals) using Apache Airflow.")]),e._v(" "),a("p",[e._v("Augusto told us how the data engineering team at the Secretariat for Management and Innovation in the Brazilian federal government has been using FastETL in combination with the Frictionless Framework, and Tabular Data Packages for processing data pipelines and to publish open data.")]),e._v(" "),a("p",[e._v("Augusto and his team have developed FastETL, among other things, to be able to periodically synchronise data sources in the data lake, publish open data on open data portals, and be notified about publications in the official gazette.")]),e._v(" "),a("p",[e._v("Some of the things that you can do with FastETL are:")]),e._v(" "),a("ul",[a("li",[e._v("Full or incremental replication of tables in SQL Server, and Postgres databases (and MySQL sources).")]),e._v(" "),a("li",[e._v("Load data from GSheets and from spreadsheets on Samba/Windows networks.")]),e._v(" "),a("li",[e._v("Extract CSVs from SQL.")]),e._v(" "),a("li",[e._v("Query the Brazilian National Official Gazette’s API, and get a notification when there is a new publication in the Official Gazette.")]),e._v(" "),a("li",[e._v("Use CKAN or "),a("a",{attrs:{href:"http://dados.gov.br",target:"_blank",rel:"noopener noreferrer"}},[e._v("dados.gov.br"),a("OutboundLink")],1),e._v("’s API to update dataset metadata.")]),e._v(" "),a("li",[e._v("Use Frictionless Tabular Data Packages to write data dictionaries in OpenDocument Text format.")])]),e._v(" "),a("p",[e._v("Would you like to know more? You can have a look at Augusto’s slides on "),a("a",{attrs:{href:"https://herrmann.tech/slide-decks/2023/05/integrating-data-sources-and-publishing-open-data-with-fastetl-airflow-and-frictionless",target:"_blank",rel:"noopener noreferrer"}},[e._v("his website here"),a("OutboundLink")],1),e._v(", or check out the "),a("a",{attrs:{href:"https://github.com/gestaogovbr/FastETL",target:"_blank",rel:"noopener noreferrer"}},[e._v("FastETL GitHub Repository"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nAnd if you want to better understand how to use FastETL, have a look at Augusto’s presentation, with some great data pipeline examples:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Z8bo6cyd-gw",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on June 29"),a("sup",[e._v("th")]),e._v(", and it will be a hands-on session on strange datasets and how to describe them! Jesper Zedlitz from the German federal state of Schleswig-Holstein will be bringing one. Let us know if you would also like to bring a dataset to this call, by emailing Sara Petti sara.petti[at]"),a("a",{attrs:{href:"http://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("okfn.org"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v(" (also accessible via a "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),a("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Z8bo6cyd-gw",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{714:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("At our last community call on May 25"),a("sup",[e._v("th")]),e._v(" Augusto Herrmann presented FastETL, a free and open source software library for Apache Airflow that makes it easier to integrate heterogeneous data sources and to publish open data (e.g. to CKAN data portals) using Apache Airflow.")]),e._v(" "),a("p",[e._v("Augusto told us how the data engineering team at the Secretariat for Management and Innovation in the Brazilian federal government has been using FastETL in combination with the Frictionless Framework, and Tabular Data Packages for processing data pipelines and to publish open data.")]),e._v(" "),a("p",[e._v("Augusto and his team have developed FastETL, among other things, to be able to periodically synchronise data sources in the data lake, publish open data on open data portals, and be notified about publications in the official gazette.")]),e._v(" "),a("p",[e._v("Some of the things that you can do with FastETL are:")]),e._v(" "),a("ul",[a("li",[e._v("Full or incremental replication of tables in SQL Server, and Postgres databases (and MySQL sources).")]),e._v(" "),a("li",[e._v("Load data from GSheets and from spreadsheets on Samba/Windows networks.")]),e._v(" "),a("li",[e._v("Extract CSVs from SQL.")]),e._v(" "),a("li",[e._v("Query the Brazilian National Official Gazette’s API, and get a notification when there is a new publication in the Official Gazette.")]),e._v(" "),a("li",[e._v("Use CKAN or "),a("a",{attrs:{href:"http://dados.gov.br",target:"_blank",rel:"noopener noreferrer"}},[e._v("dados.gov.br"),a("OutboundLink")],1),e._v("’s API to update dataset metadata.")]),e._v(" "),a("li",[e._v("Use Frictionless Tabular Data Packages to write data dictionaries in OpenDocument Text format.")])]),e._v(" "),a("p",[e._v("Would you like to know more? You can have a look at Augusto’s slides on "),a("a",{attrs:{href:"https://herrmann.tech/slide-decks/2023/05/integrating-data-sources-and-publishing-open-data-with-fastetl-airflow-and-frictionless",target:"_blank",rel:"noopener noreferrer"}},[e._v("his website here"),a("OutboundLink")],1),e._v(", or check out the "),a("a",{attrs:{href:"https://github.com/gestaogovbr/FastETL",target:"_blank",rel:"noopener noreferrer"}},[e._v("FastETL GitHub Repository"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nAnd if you want to better understand how to use FastETL, have a look at Augusto’s presentation, with some great data pipeline examples:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Z8bo6cyd-gw",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"join-us-next-month"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-next-month"}},[e._v("#")]),e._v(" Join us next month!")]),e._v(" "),a("p",[e._v("Next community call is on June 29"),a("sup",[e._v("th")]),e._v(", and it will be a hands-on session on strange datasets and how to describe them! Jesper Zedlitz from the German federal state of Schleswig-Holstein will be bringing one. Let us know if you would also like to bring a dataset to this call, by emailing Sara Petti sara.petti[at]"),a("a",{attrs:{href:"http://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("okfn.org"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v(" (also accessible via a "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),a("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/Z8bo6cyd-gw",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/176.74021178.js b/assets/js/176.920f2d07.js similarity index 98% rename from assets/js/176.74021178.js rename to assets/js/176.920f2d07.js index 0d78cdf55..a054e3d91 100644 --- a/assets/js/176.74021178.js +++ b/assets/js/176.920f2d07.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{715:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On June 29"),o("sup",[e._v("th")]),e._v(" we had our last monthly call, and it was kind of a special one! Instead of the usual project presentation, we had a hands-on session on strange datasets and how to describe them.")]),e._v(" "),o("p",[e._v("Our community member Jesper Zedlitz comes regularly across very weird datasets in his day-to-day work, and had asked in the May community call, whether it was possible to bring some of them to the call and check them out together with the community to try to make sense of them all together. This turned out to be an excellent idea for a fun call!")]),e._v(" "),o("p",[e._v("So what kind of problems is Jesper encountering?")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Sometimes we have extra information on the dataset, the licence, etc. at the beginning and comments at the end of the csv, so some rows need to be ignored. This is easy to do for the top part of the dataset, but it’s harder for the bottom part. Something we will definitely need to think about for the next iteration of the Frictionless specs, for example by giving the possibility to have a “headline row”, or something like that. This was a common problem for other community members too.")])]),e._v(" "),o("li",[o("p",[e._v("Sometimes we don’t have any information at all: Jesper showed us some CSVs without any headerlines, where it’s up to you to figure out what kind of data is in there.")])]),e._v(" "),o("li",[o("p",[e._v("The dialect (e.g. weird delimiters) and character encoding are sometimes tricky too, but that’s already easy to manage with the Frictionless specs.")])])]),e._v(" "),o("p",[e._v("Do you want to know more about the strange datasets that Jesper has shown us during the call? Then you should watch the full recording of the call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/WekfG2AZ-Dc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"join-us-in-august"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-august"}},[e._v("#")]),e._v(" Join us in August!")]),e._v(" "),o("p",[e._v("Exceptionally we won’t have any community call in July, so see you all on August 31"),o("sup",[e._v("st")]),e._v("!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{713:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On June 29"),o("sup",[e._v("th")]),e._v(" we had our last monthly call, and it was kind of a special one! Instead of the usual project presentation, we had a hands-on session on strange datasets and how to describe them.")]),e._v(" "),o("p",[e._v("Our community member Jesper Zedlitz comes regularly across very weird datasets in his day-to-day work, and had asked in the May community call, whether it was possible to bring some of them to the call and check them out together with the community to try to make sense of them all together. This turned out to be an excellent idea for a fun call!")]),e._v(" "),o("p",[e._v("So what kind of problems is Jesper encountering?")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Sometimes we have extra information on the dataset, the licence, etc. at the beginning and comments at the end of the csv, so some rows need to be ignored. This is easy to do for the top part of the dataset, but it’s harder for the bottom part. Something we will definitely need to think about for the next iteration of the Frictionless specs, for example by giving the possibility to have a “headline row”, or something like that. This was a common problem for other community members too.")])]),e._v(" "),o("li",[o("p",[e._v("Sometimes we don’t have any information at all: Jesper showed us some CSVs without any headerlines, where it’s up to you to figure out what kind of data is in there.")])]),e._v(" "),o("li",[o("p",[e._v("The dialect (e.g. weird delimiters) and character encoding are sometimes tricky too, but that’s already easy to manage with the Frictionless specs.")])])]),e._v(" "),o("p",[e._v("Do you want to know more about the strange datasets that Jesper has shown us during the call? Then you should watch the full recording of the call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/WekfG2AZ-Dc",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"join-us-in-august"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-august"}},[e._v("#")]),e._v(" Join us in August!")]),e._v(" "),o("p",[e._v("Exceptionally we won’t have any community call in July, so see you all on August 31"),o("sup",[e._v("st")]),e._v("!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/177.dac08e7c.js b/assets/js/177.6c30d8b5.js similarity index 98% rename from assets/js/177.dac08e7c.js rename to assets/js/177.6c30d8b5.js index 438833d74..1cbade261 100644 --- a/assets/js/177.dac08e7c.js +++ b/assets/js/177.6c30d8b5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{714:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("After 2 long months of absence, our monthly community call was finally back on September 28"),o("sup",[e._v("th")]),e._v(", with some very exciting news! Our Tech Lead Evgeny Karev presented the work that has absorbed so much of his and Shashi Gharti’s time in the last months: the Frictionless no-code application "),o("a",{attrs:{href:"https://opendataeditor.okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Editor"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The problem that inspired this new tool is that still today there is no easy tool to manage and publish data for those who don’t have technical skills. The new Open Data Editor offers the possibility to access all Frictionless functionalities without having to write one single line of code, nor open your shell. Like most Frictionless products, Open Data Editor focuses on tabular data, and it can easily open big files because it uses the "),o("code",[e._v("database")]),e._v(" under the hood (similarly to CKAN). You can use it to edit metadata, and declare some rules for opening that you can share with your collaborators, making your data more reproducible.")]),e._v(" "),o("p",[e._v("You can use it to create data visualisation with VegaLite, but Open Data Editor has also an AI support, which you can use to create charts for you, in case you don’t know how to use the VegaLite specifications. You can also publish data stories, and much much more! Check out Evgeny’s presentation to see all the great features of the Open Data Editor:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/a0IyJPSmJyY?si=xOfI7YmS4EsVcKlp",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("p",[e._v("The application is still a work in progress, but if you would like to try it out that’s of course absolutely possible, and we would love it if you could give us feedback, so please let us know if you spot anything weird. To make the experience smoother, we have a detailed "),o("a",{attrs:{href:"https://opendataeditor.okfn.org/documentation/getting-started/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation website"),o("OutboundLink")],1),e._v(" you can consult.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-october"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-october"}},[e._v("#")]),e._v(" Join us in October!")]),e._v(" "),o("p",[e._v("Next community call is on October 26"),o("sup",[e._v("th")]),e._v(", join us to hear exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kxB7NZiXF4A?si=5tb2LrJFJaChP-dR",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{715:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("After 2 long months of absence, our monthly community call was finally back on September 28"),o("sup",[e._v("th")]),e._v(", with some very exciting news! Our Tech Lead Evgeny Karev presented the work that has absorbed so much of his and Shashi Gharti’s time in the last months: the Frictionless no-code application "),o("a",{attrs:{href:"https://opendataeditor.okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Editor"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The problem that inspired this new tool is that still today there is no easy tool to manage and publish data for those who don’t have technical skills. The new Open Data Editor offers the possibility to access all Frictionless functionalities without having to write one single line of code, nor open your shell. Like most Frictionless products, Open Data Editor focuses on tabular data, and it can easily open big files because it uses the "),o("code",[e._v("database")]),e._v(" under the hood (similarly to CKAN). You can use it to edit metadata, and declare some rules for opening that you can share with your collaborators, making your data more reproducible.")]),e._v(" "),o("p",[e._v("You can use it to create data visualisation with VegaLite, but Open Data Editor has also an AI support, which you can use to create charts for you, in case you don’t know how to use the VegaLite specifications. You can also publish data stories, and much much more! Check out Evgeny’s presentation to see all the great features of the Open Data Editor:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/a0IyJPSmJyY?si=xOfI7YmS4EsVcKlp",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("p",[e._v("The application is still a work in progress, but if you would like to try it out that’s of course absolutely possible, and we would love it if you could give us feedback, so please let us know if you spot anything weird. To make the experience smoother, we have a detailed "),o("a",{attrs:{href:"https://opendataeditor.okfn.org/documentation/getting-started/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation website"),o("OutboundLink")],1),e._v(" you can consult.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-october"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-october"}},[e._v("#")]),e._v(" Join us in October!")]),e._v(" "),o("p",[e._v("Next community call is on October 26"),o("sup",[e._v("th")]),e._v(", join us to hear exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol) .")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("On a final note, here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/kxB7NZiXF4A?si=5tb2LrJFJaChP-dR",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}})])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/178.285273f4.js b/assets/js/178.c332415e.js similarity index 98% rename from assets/js/178.285273f4.js rename to assets/js/178.c332415e.js index 6bb98ec1a..67e1361af 100644 --- a/assets/js/178.285273f4.js +++ b/assets/js/178.c332415e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{717:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call on October 25"),o("sup",[e._v("th")]),e._v(", we started discussing with the community the Frictionless specs update. Thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, will be focusing on this for the coming months.")]),e._v(" "),o("h2",{attrs:{id:"what-is-this-update-all-about"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-is-this-update-all-about"}},[e._v("#")]),e._v(" What is this update all about?")]),e._v(" "),o("p",[e._v("Our main goal is really to make the current Frictionless specs a finished product. We have a list of GitHub issues that we will use as a starting point for this iteration, but we would like to follow decisions made by the working group.")]),e._v(" "),o("p",[e._v("Please note, there will be no breaking changes (we can hear your sigh of relief!).")]),e._v(" "),o("p",[e._v("As a next step, "),o("strong",[e._v("we will write a separate blog that will serve as a reference for the overarching goals and roadmap of the project.")])]),e._v(" "),o("p",[e._v("The core Frictionless team at Open Knowledge Foundation will also draft a governance model to apply to the review process and how things get merged. Ideally we would like to test and build a new governance model that would delegate more decisions to the community, and that would then stay in place beyond the v2 release, to improve the project sustainability.")]),e._v(" "),o("p",[e._v("Another key goal is to increase diversity to get better representation when we think about things. We have a couple of ideas in mind, but we welcome any suggestion you may have.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-november"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-november"}},[e._v("#")]),e._v(" Join us in November!")]),e._v(" "),o("p",[e._v("Next community call is on November 30"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/NVMZT19hlw0?si=wrFfKStzBFWNE4mI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members who joined the call and who keep all these discussions alive, and those who manifested their interest in joining the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{716:function(e,t,o){"use strict";o.r(t);var a=o(29),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call on October 25"),o("sup",[e._v("th")]),e._v(", we started discussing with the community the Frictionless specs update. Thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, will be focusing on this for the coming months.")]),e._v(" "),o("h2",{attrs:{id:"what-is-this-update-all-about"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-is-this-update-all-about"}},[e._v("#")]),e._v(" What is this update all about?")]),e._v(" "),o("p",[e._v("Our main goal is really to make the current Frictionless specs a finished product. We have a list of GitHub issues that we will use as a starting point for this iteration, but we would like to follow decisions made by the working group.")]),e._v(" "),o("p",[e._v("Please note, there will be no breaking changes (we can hear your sigh of relief!).")]),e._v(" "),o("p",[e._v("As a next step, "),o("strong",[e._v("we will write a separate blog that will serve as a reference for the overarching goals and roadmap of the project.")])]),e._v(" "),o("p",[e._v("The core Frictionless team at Open Knowledge Foundation will also draft a governance model to apply to the review process and how things get merged. Ideally we would like to test and build a new governance model that would delegate more decisions to the community, and that would then stay in place beyond the v2 release, to improve the project sustainability.")]),e._v(" "),o("p",[e._v("Another key goal is to increase diversity to get better representation when we think about things. We have a couple of ideas in mind, but we welcome any suggestion you may have.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-november"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-november"}},[e._v("#")]),e._v(" Join us in November!")]),e._v(" "),o("p",[e._v("Next community call is on November 30"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/NVMZT19hlw0?si=wrFfKStzBFWNE4mI",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members who joined the call and who keep all these discussions alive, and those who manifested their interest in joining the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/18.e6422f2f.js b/assets/js/18.bb9f8bad.js similarity index 99% rename from assets/js/18.e6422f2f.js rename to assets/js/18.bb9f8bad.js index 6bbc64ea6..eee86aece 100644 --- a/assets/js/18.e6422f2f.js +++ b/assets/js/18.bb9f8bad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{428:function(t,e,a){t.exports=a.p+"assets/img/zegami-2.bea8693b.gif"},429:function(t,e,a){t.exports=a.p+"assets/img/zegami-3.78fb1690.gif"},430:function(t,e,a){t.exports=a.p+"assets/img/zegami-1.3b35c73b.jpg"},579:function(t,e,a){"use strict";a.r(e);var s=a(29),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[s("a",{attrs:{href:"https://www.zegami.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Zegami"),s("OutboundLink")],1),t._v(" makes information more visual and accessible, enabling intuitive exploration, search and discovery of large data sets. Zegami combines the power of machine learning and human pattern recognition to reveal hidden insights and new perspectives.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(428),alt:"imagesearch"}}),t._v(" "),s("br"),t._v(" "),s("em",[t._v("image search on Zegami")])]),t._v(" "),s("p",[t._v("It provides a more powerful tool for visual data than what’s possible with spreadsheets or typical business intelligence tools. By presenting data within a single field of view, Zegami enables users to easily discover patterns and correlations. Facilitating new insights and discoveries that would otherwise not be possible.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(429),alt:"metadatasearch"}}),t._v(" "),s("br"),t._v(" "),s("em",[t._v("metadata search on Zegami")])]),t._v(" "),s("p",[t._v("For Zegami to shine, our users need to be able to easily import their data so they can get actionable insight with minimal fuss. In building an analytics platform we face the unique challenge of having to support a wide variety of data sources and formats. The challenge is compounded by the fact that the data we deal with is rarely clean.")]),t._v(" "),s("p",[t._v("At the onset, we also faced the challenge of how best to store and transmit data between our components and micro-services. In addition to an open, extensible and simple yet powerful data format, we wanted one that can preserve data types and formatting, and be parsed by all the client applications we use, which includes server-side applications, web clients and visualisation frameworks.")]),t._v(" "),s("p",[t._v("We first heard about messytables"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn1",id:"fnref1"}},[t._v("[1]")])]),t._v(" and of the data protocols site (currently Frictionless Data Specifications"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn2",id:"fnref2"}},[t._v("[2]")])]),t._v(") through a lightning talk at EuroSciPy 2015. This meant when we searched for various things around jsontableschema (now tableschema"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn3",id:"fnref3"}},[t._v("[3]")])]),t._v("), we landed on the Frictionless Data project.")]),t._v(" "),s("p",[t._v("We are currently using the specifications in the following ways:")]),t._v(" "),s("ul",[s("li",[t._v("We use tabulator.Stream"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn4",id:"fnref4"}},[t._v("[4]")])]),t._v(" to parse data on our back end.")]),t._v(" "),s("li",[t._v("We use schema infer from tableschema-py"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn5",id:"fnref5"}},[t._v("[5]")])]),t._v(" to store an extended json table schema to represent data structures in our system. We are also developing custom json parsers using json paths and the ijson library")])]),t._v(" "),s("p",[t._v("In the coming days, We plan on using")]),t._v(" "),s("ul",[s("li",[t._v("datapackage-pipelines"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn6",id:"fnref6"}},[t._v("[6]")])]),t._v(" as a spec for the way we treat joins and multi-step data operations in our system")]),t._v(" "),s("li",[t._v("tabulator in a polyglot persistence scenario"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn7",id:"fnref7"}},[t._v("[7]")])]),t._v(" - storing data in both storage buckets and either elasticsearch"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn8",id:"fnref8"}},[t._v("[8]")])]),t._v(" or another column store like "),s("a",{attrs:{href:"http://druid.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("druid.io"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("p",[s("img",{attrs:{src:a(430),alt:"Diagram"}})]),t._v(" "),s("p",[t._v("Moving forward it would be interesting to see tableschema and tabulator as a communication protocol over websockets. This would allow for a really smooth experience when using handsontable"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn9",id:"fnref9"}},[t._v("[9]")])]),t._v(" spreadsheets with a datapackage of some kind. A socket-to-socket version of datapackage-pipelines which runs on container orchestration systems would also be interesting. There are few protocols similar to datapackage-pipelines, such as Dask"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn10",id:"fnref10"}},[t._v("[10]")])]),t._v(" which, although similar, is not serialisable and therefor unsuitable for applications where front end communication is necessary or where the pipelines need to be used by non-coders.")]),t._v(" "),s("p",[t._v("We are also keen to know more about repositories around the world that use datapackages"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn11",id:"fnref11"}},[t._v("[11]")])]),t._v(" so that we can import the data and show users and owners of those repositories the benefits of browsing and visualising data in Zegami.")]),t._v(" "),s("p",[t._v("In terms of other potential use cases, it would be useful to create a python-based alternative to the dreamfactory API server"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn12",id:"fnref12"}},[t._v("[12]")])]),t._v(". "),s("a",{attrs:{href:"http://wq.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("wqio"),s("OutboundLink")],1),t._v(" is one example, but it is quite hard to use and a lighter version would be great. Perhaps CKAN"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn13",id:"fnref13"}},[t._v("[13]")])]),t._v(" datastore could be licensed in a more open way?")]),t._v(" "),s("p",[t._v("In terms of the next steps for us, we are currently working on a SaaS implementation of Zegami which will dramatically reduce the effort required in order to start working with Zegami. We are then planning on developing a series of APIs so developers can create their own data transformation pipelines. One of our developers, Andrew Stretton, will be running Frictionless Data sessions at PyData London"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn14",id:"fnref14"}},[t._v("[14]")])]),t._v(" on Tuesday, October 3 and PyCon UK"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn15",id:"fnref15"}},[t._v("[15]")])]),t._v(" on Friday, October 27.")]),t._v(" "),s("hr",{staticClass:"footnotes-sep"}),t._v(" "),s("section",{staticClass:"footnotes"},[s("ol",{staticClass:"footnotes-list"},[s("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[s("p",[t._v("Library for parsing messy tabular data: "),s("a",{attrs:{href:"https://github.com/okfn/messytables",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/okfn/messytables"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[s("p",[t._v("Frictionless Data Specifications: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("specs"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[s("p",[t._v("Table Schema: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://specs.frictionlessdata.io/table-schema"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[s("p",[t._v("Tabulator: library for reading and writing tabular data "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tabulator-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/tabulator-py"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[s("p",[t._v("Table Schema Python Library: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/tableschema-py"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[s("p",[t._v("Data Package Pipelines: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn7"}},[s("p",[t._v("Polyglot Persistence: "),s("a",{attrs:{href:"https://en.wikipedia.org/wiki/Polyglot_persistence",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://en.wikipedia.org/wiki/Polyglot_persistence"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref7"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn8"}},[s("p",[t._v("Elastic Search: "),s("a",{attrs:{href:"https://www.elastic.co/products/elasticsearch",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.elastic.co/products/elasticsearch"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref8"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn9"}},[s("p",[t._v("Handsontable: Javascript spreadsheet component for web apps: "),s("a",{attrs:{href:"https://handsontable.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://handsontable.com"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref9"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn10"}},[s("p",[t._v("Dask Custom Graphs: "),s("a",{attrs:{href:"http://dask.pydata.org/en/latest/custom-graphs.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://dask.pydata.org/en/latest/custom-graphs.html"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref10"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn11"}},[s("p",[t._v("Data Packages: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://specs.frictionlessdata.io/data-package"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref11"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn12"}},[s("p",[t._v("Dream Factory: "),s("a",{attrs:{href:"https://www.dreamfactory.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.dreamfactory.com/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref12"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn13"}},[s("p",[t._v("CKAN: Open Source Data Portal Platform: "),s("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://ckan.org"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref13"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn14"}},[s("p",[t._v("PyData London, October 2017 Meetup: "),s("a",{attrs:{href:"https://www.meetup.com/PyData-London-Meetup/events/243584161/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.meetup.com/PyData-London-Meetup/events/243584161/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref14"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn15"}},[s("p",[t._v("PyCon UK 2017 Schedule: "),s("a",{attrs:{href:"http://2017.pyconuk.org/schedule/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://2017.pyconuk.org/schedule/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref15"}},[t._v("↩︎")])])])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{428:function(t,e,a){t.exports=a.p+"assets/img/zegami-2.bea8693b.gif"},429:function(t,e,a){t.exports=a.p+"assets/img/zegami-3.78fb1690.gif"},430:function(t,e,a){t.exports=a.p+"assets/img/zegami-1.3b35c73b.jpg"},578:function(t,e,a){"use strict";a.r(e);var s=a(29),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[s("a",{attrs:{href:"https://www.zegami.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("Zegami"),s("OutboundLink")],1),t._v(" makes information more visual and accessible, enabling intuitive exploration, search and discovery of large data sets. Zegami combines the power of machine learning and human pattern recognition to reveal hidden insights and new perspectives.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(428),alt:"imagesearch"}}),t._v(" "),s("br"),t._v(" "),s("em",[t._v("image search on Zegami")])]),t._v(" "),s("p",[t._v("It provides a more powerful tool for visual data than what’s possible with spreadsheets or typical business intelligence tools. By presenting data within a single field of view, Zegami enables users to easily discover patterns and correlations. Facilitating new insights and discoveries that would otherwise not be possible.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(429),alt:"metadatasearch"}}),t._v(" "),s("br"),t._v(" "),s("em",[t._v("metadata search on Zegami")])]),t._v(" "),s("p",[t._v("For Zegami to shine, our users need to be able to easily import their data so they can get actionable insight with minimal fuss. In building an analytics platform we face the unique challenge of having to support a wide variety of data sources and formats. The challenge is compounded by the fact that the data we deal with is rarely clean.")]),t._v(" "),s("p",[t._v("At the onset, we also faced the challenge of how best to store and transmit data between our components and micro-services. In addition to an open, extensible and simple yet powerful data format, we wanted one that can preserve data types and formatting, and be parsed by all the client applications we use, which includes server-side applications, web clients and visualisation frameworks.")]),t._v(" "),s("p",[t._v("We first heard about messytables"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn1",id:"fnref1"}},[t._v("[1]")])]),t._v(" and of the data protocols site (currently Frictionless Data Specifications"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn2",id:"fnref2"}},[t._v("[2]")])]),t._v(") through a lightning talk at EuroSciPy 2015. This meant when we searched for various things around jsontableschema (now tableschema"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn3",id:"fnref3"}},[t._v("[3]")])]),t._v("), we landed on the Frictionless Data project.")]),t._v(" "),s("p",[t._v("We are currently using the specifications in the following ways:")]),t._v(" "),s("ul",[s("li",[t._v("We use tabulator.Stream"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn4",id:"fnref4"}},[t._v("[4]")])]),t._v(" to parse data on our back end.")]),t._v(" "),s("li",[t._v("We use schema infer from tableschema-py"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn5",id:"fnref5"}},[t._v("[5]")])]),t._v(" to store an extended json table schema to represent data structures in our system. We are also developing custom json parsers using json paths and the ijson library")])]),t._v(" "),s("p",[t._v("In the coming days, We plan on using")]),t._v(" "),s("ul",[s("li",[t._v("datapackage-pipelines"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn6",id:"fnref6"}},[t._v("[6]")])]),t._v(" as a spec for the way we treat joins and multi-step data operations in our system")]),t._v(" "),s("li",[t._v("tabulator in a polyglot persistence scenario"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn7",id:"fnref7"}},[t._v("[7]")])]),t._v(" - storing data in both storage buckets and either elasticsearch"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn8",id:"fnref8"}},[t._v("[8]")])]),t._v(" or another column store like "),s("a",{attrs:{href:"http://druid.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("druid.io"),s("OutboundLink")],1),t._v(".")])]),t._v(" "),s("p",[s("img",{attrs:{src:a(430),alt:"Diagram"}})]),t._v(" "),s("p",[t._v("Moving forward it would be interesting to see tableschema and tabulator as a communication protocol over websockets. This would allow for a really smooth experience when using handsontable"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn9",id:"fnref9"}},[t._v("[9]")])]),t._v(" spreadsheets with a datapackage of some kind. A socket-to-socket version of datapackage-pipelines which runs on container orchestration systems would also be interesting. There are few protocols similar to datapackage-pipelines, such as Dask"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn10",id:"fnref10"}},[t._v("[10]")])]),t._v(" which, although similar, is not serialisable and therefor unsuitable for applications where front end communication is necessary or where the pipelines need to be used by non-coders.")]),t._v(" "),s("p",[t._v("We are also keen to know more about repositories around the world that use datapackages"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn11",id:"fnref11"}},[t._v("[11]")])]),t._v(" so that we can import the data and show users and owners of those repositories the benefits of browsing and visualising data in Zegami.")]),t._v(" "),s("p",[t._v("In terms of other potential use cases, it would be useful to create a python-based alternative to the dreamfactory API server"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn12",id:"fnref12"}},[t._v("[12]")])]),t._v(". "),s("a",{attrs:{href:"http://wq.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("wqio"),s("OutboundLink")],1),t._v(" is one example, but it is quite hard to use and a lighter version would be great. Perhaps CKAN"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn13",id:"fnref13"}},[t._v("[13]")])]),t._v(" datastore could be licensed in a more open way?")]),t._v(" "),s("p",[t._v("In terms of the next steps for us, we are currently working on a SaaS implementation of Zegami which will dramatically reduce the effort required in order to start working with Zegami. We are then planning on developing a series of APIs so developers can create their own data transformation pipelines. One of our developers, Andrew Stretton, will be running Frictionless Data sessions at PyData London"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn14",id:"fnref14"}},[t._v("[14]")])]),t._v(" on Tuesday, October 3 and PyCon UK"),s("sup",{staticClass:"footnote-ref"},[s("a",{attrs:{href:"#fn15",id:"fnref15"}},[t._v("[15]")])]),t._v(" on Friday, October 27.")]),t._v(" "),s("hr",{staticClass:"footnotes-sep"}),t._v(" "),s("section",{staticClass:"footnotes"},[s("ol",{staticClass:"footnotes-list"},[s("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[s("p",[t._v("Library for parsing messy tabular data: "),s("a",{attrs:{href:"https://github.com/okfn/messytables",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/okfn/messytables"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[s("p",[t._v("Frictionless Data Specifications: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("specs"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[s("p",[t._v("Table Schema: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://specs.frictionlessdata.io/table-schema"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[s("p",[t._v("Tabulator: library for reading and writing tabular data "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tabulator-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/tabulator-py"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[s("p",[t._v("Table Schema Python Library: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/tableschema-py"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[s("p",[t._v("Data Package Pipelines: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn7"}},[s("p",[t._v("Polyglot Persistence: "),s("a",{attrs:{href:"https://en.wikipedia.org/wiki/Polyglot_persistence",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://en.wikipedia.org/wiki/Polyglot_persistence"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref7"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn8"}},[s("p",[t._v("Elastic Search: "),s("a",{attrs:{href:"https://www.elastic.co/products/elasticsearch",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.elastic.co/products/elasticsearch"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref8"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn9"}},[s("p",[t._v("Handsontable: Javascript spreadsheet component for web apps: "),s("a",{attrs:{href:"https://handsontable.com",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://handsontable.com"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref9"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn10"}},[s("p",[t._v("Dask Custom Graphs: "),s("a",{attrs:{href:"http://dask.pydata.org/en/latest/custom-graphs.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://dask.pydata.org/en/latest/custom-graphs.html"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref10"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn11"}},[s("p",[t._v("Data Packages: "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://specs.frictionlessdata.io/data-package"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref11"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn12"}},[s("p",[t._v("Dream Factory: "),s("a",{attrs:{href:"https://www.dreamfactory.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.dreamfactory.com/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref12"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn13"}},[s("p",[t._v("CKAN: Open Source Data Portal Platform: "),s("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://ckan.org"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref13"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn14"}},[s("p",[t._v("PyData London, October 2017 Meetup: "),s("a",{attrs:{href:"https://www.meetup.com/PyData-London-Meetup/events/243584161/",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.meetup.com/PyData-London-Meetup/events/243584161/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref14"}},[t._v("↩︎")])])]),t._v(" "),s("li",{staticClass:"footnote-item",attrs:{id:"fn15"}},[s("p",[t._v("PyCon UK 2017 Schedule: "),s("a",{attrs:{href:"http://2017.pyconuk.org/schedule/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://2017.pyconuk.org/schedule/"),s("OutboundLink")],1),t._v(" "),s("a",{staticClass:"footnote-backref",attrs:{href:"#fnref15"}},[t._v("↩︎")])])])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/180.a8dcd504.js b/assets/js/180.6275d8bc.js similarity index 99% rename from assets/js/180.a8dcd504.js rename to assets/js/180.6275d8bc.js index 236354c6c..12924c079 100644 --- a/assets/js/180.a8dcd504.js +++ b/assets/js/180.6275d8bc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{716:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on November 30"),o("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Specs update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team at Open Knowledge Foundation, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"ideas-that-were-shared"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#ideas-that-were-shared"}},[e._v("#")]),e._v(" Ideas that were shared")]),e._v(" "),o("p",[e._v("First of all, as captured in the last call, we took into account the group’s concerns about the shortness of the initial timeline we proposed, we were able to work out an extension of the initial time frame until mid-2024. We are now aiming at "),o("strong",[e._v("releasing v2 of the Frictionless specs by June 2024")]),e._v(".")]),e._v(" "),o("p",[e._v("The Specs update was officially "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/854",target:"_blank",rel:"noopener noreferrer"}},[e._v("announced on GitHub"),o("OutboundLink")],1),e._v(" and a GitHub team was set up. If you are interested in joining let us know. Getting involved is very low-barrier, you just need to subscribe to the GitHub issues to receive all the updates.")]),e._v(" "),o("p",[e._v("As outlined in the announcement blog, we want to "),o("strong",[e._v("put some extra effort into diversifying our group")]),e._v(", as we think that more diversity could definitely benefit our group, especially at a time in which we are rethinking parts of it. Our community is super collaborative in that sense, and new people who would be interested in standards development have been invited to join.")]),e._v(" "),o("p",[e._v("To make sure we are capturing as many branches of knowledge as possible, an idea that was brought up is to perform a quick analysis of Zenodo’s datasets by field to figure out the distribution across different fields, and see how our distribution within the working group compares to that, to understand where our gaps are.")]),e._v(" "),o("p",[e._v("We also acknowledge that the Frictionless Data project has a steep learning curve. As a community, we often operate with a developer mindset, employing specialised terminology without enough explanations. That’s why, our commitment to fostering diversity must begin with "),o("strong",[e._v("ensuring that all our documentation is accessible")]),e._v(". Achieving this goal is within reach if we all took time to review the documentation to make sure it is accessible to the broader audience possible, including beginners, and ensuring its overall coherence. We did "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/14/new-data-documentation-portal/#so-what-s-new",target:"_blank",rel:"noopener noreferrer"}},[e._v("a big documentation review with the community in the past"),o("OutboundLink")],1),e._v(", and it was a great success.")]),e._v(" "),o("p",[e._v("An essential component for achieving this objective is the "),o("strong",[e._v("development of clear onboarding materials")]),e._v(" that are easy to understand. Leveraging existing resources, such as "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Fellows’ materials"),o("OutboundLink")],1),e._v(", can serve as a foundation for building a comprehensive knowledge base. We must also prioritise the creation of additional tutorials for any kind of audience, including those with limited programming skills, and those who primarily conduct data curation in Microsoft Excel. In that sense, our current focus is on empowering individuals with lower to no programming skills, particularly as we continue to develop the "),o("a",{attrs:{href:"https://blog.okfn.org/2023/10/04/introducing-open-data-editor-beta-towards-a-no-code-data-app-for-everyone/#:~:text=Frictionless%20Data%20has%20long%20been,management%2C%20validation%2C%20and%20sharing.",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Editor"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Ideally, we would like to "),o("strong",[e._v("organise outreach events too")]),e._v(", hands on activities with people working with data, to see how Frictionless tooling could benefit their data workflow.")]),e._v(" "),o("p",[e._v("Of course, "),o("strong",[e._v("the release of v2 is not the end point for this effort.")])]),e._v(" "),o("p",[e._v("Under the NLnet grant, we will build a new website dedicated to Data Package (to be online soon), with a better narrative, making it easier for newcomers to understand (e.g. how to use Frictionless specs with Excel). The "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("current Specs website"),o("OutboundLink")],1),e._v(" will be kept to document the v1 of the standards.")]),e._v(" "),o("h2",{attrs:{id:"immediate-next-steps"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#immediate-next-steps"}},[e._v("#")]),e._v(" Immediate next steps")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("We will update the contributions guide.")])]),e._v(" "),o("li",[o("p",[e._v("In December, due to holidays and limited capacity of people, we will focus on low-hanging fruits. Of course anyone who would like to start working on an issue is very welcome to do so. If you are part of the working group you have the right permission to push PRs, so please go ahead.")])]),e._v(" "),o("li",[o("p",[e._v("We will try to simplify JSON schemas and the way extensions are generated. The Frictionless modular approach will be of course kept. Our aim is to be as technology agnostic and no-code as possible.")])]),e._v(" "),o("li",[o("p",[e._v("We will keep Specs and tooling implementing them clearly separated.")])])]),e._v(" "),o("h2",{attrs:{id:"how-to-participate"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-participate"}},[e._v("#")]),e._v(" How to participate?")]),e._v(" "),o("p",[e._v("Go and have a look at the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue queue on GitHub"),o("OutboundLink")],1),e._v(", and feel free to jump on any of the issue to propose a solution / start a discussion.")]),e._v(" "),o("p",[e._v("Note that the v2 milestone is just an estimation to understand the scope of this release. We tried to carve out what we thought it was important to discuss about or take into consideration, but we don’t need to action every single issue on the list.")]),e._v(" "),o("h1",{attrs:{id:"announcements"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#announcements"}},[e._v("#")]),e._v(" Announcements")]),e._v(" "),o("p",[e._v("We are co-hosting the Open Research Devroom at "),o("a",{attrs:{href:"https://fosdem.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FOSDEM 2024"),o("OutboundLink")],1),e._v(" again this year. We are looking for developers & users of free libre open source technology for scientific research, investigative journalism, data journalism, activism, OSINT."),o("br"),e._v("\nCall for Participation is open until December 10th, we strongly encourage you to apply!")]),e._v(" "),o("p",[e._v("For those who cannot make it to Brussels on February 3rd, we are going to host an online session the week after.")]),e._v(" "),o("p",[e._v("More info: "),o("a",{attrs:{href:"https://research-fosdem.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://research-fosdem.github.io/"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"join-us-in-janaury"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-janaury"}},[e._v("#")]),e._v(" Join us in Janaury!")]),e._v(" "),o("p",[e._v("Next community call is on January 25"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MKFuLqyc414?si=BGEiBzaHRXHQXaJJ",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and those who manifested their interest in joining the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{717:function(e,t,o){"use strict";o.r(t);var a=o(29),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on November 30"),o("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Specs update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team at Open Knowledge Foundation, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"ideas-that-were-shared"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#ideas-that-were-shared"}},[e._v("#")]),e._v(" Ideas that were shared")]),e._v(" "),o("p",[e._v("First of all, as captured in the last call, we took into account the group’s concerns about the shortness of the initial timeline we proposed, we were able to work out an extension of the initial time frame until mid-2024. We are now aiming at "),o("strong",[e._v("releasing v2 of the Frictionless specs by June 2024")]),e._v(".")]),e._v(" "),o("p",[e._v("The Specs update was officially "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/854",target:"_blank",rel:"noopener noreferrer"}},[e._v("announced on GitHub"),o("OutboundLink")],1),e._v(" and a GitHub team was set up. If you are interested in joining let us know. Getting involved is very low-barrier, you just need to subscribe to the GitHub issues to receive all the updates.")]),e._v(" "),o("p",[e._v("As outlined in the announcement blog, we want to "),o("strong",[e._v("put some extra effort into diversifying our group")]),e._v(", as we think that more diversity could definitely benefit our group, especially at a time in which we are rethinking parts of it. Our community is super collaborative in that sense, and new people who would be interested in standards development have been invited to join.")]),e._v(" "),o("p",[e._v("To make sure we are capturing as many branches of knowledge as possible, an idea that was brought up is to perform a quick analysis of Zenodo’s datasets by field to figure out the distribution across different fields, and see how our distribution within the working group compares to that, to understand where our gaps are.")]),e._v(" "),o("p",[e._v("We also acknowledge that the Frictionless Data project has a steep learning curve. As a community, we often operate with a developer mindset, employing specialised terminology without enough explanations. That’s why, our commitment to fostering diversity must begin with "),o("strong",[e._v("ensuring that all our documentation is accessible")]),e._v(". Achieving this goal is within reach if we all took time to review the documentation to make sure it is accessible to the broader audience possible, including beginners, and ensuring its overall coherence. We did "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2021/04/14/new-data-documentation-portal/#so-what-s-new",target:"_blank",rel:"noopener noreferrer"}},[e._v("a big documentation review with the community in the past"),o("OutboundLink")],1),e._v(", and it was a great success.")]),e._v(" "),o("p",[e._v("An essential component for achieving this objective is the "),o("strong",[e._v("development of clear onboarding materials")]),e._v(" that are easy to understand. Leveraging existing resources, such as "),o("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Fellows’ materials"),o("OutboundLink")],1),e._v(", can serve as a foundation for building a comprehensive knowledge base. We must also prioritise the creation of additional tutorials for any kind of audience, including those with limited programming skills, and those who primarily conduct data curation in Microsoft Excel. In that sense, our current focus is on empowering individuals with lower to no programming skills, particularly as we continue to develop the "),o("a",{attrs:{href:"https://blog.okfn.org/2023/10/04/introducing-open-data-editor-beta-towards-a-no-code-data-app-for-everyone/#:~:text=Frictionless%20Data%20has%20long%20been,management%2C%20validation%2C%20and%20sharing.",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Editor"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Ideally, we would like to "),o("strong",[e._v("organise outreach events too")]),e._v(", hands on activities with people working with data, to see how Frictionless tooling could benefit their data workflow.")]),e._v(" "),o("p",[e._v("Of course, "),o("strong",[e._v("the release of v2 is not the end point for this effort.")])]),e._v(" "),o("p",[e._v("Under the NLnet grant, we will build a new website dedicated to Data Package (to be online soon), with a better narrative, making it easier for newcomers to understand (e.g. how to use Frictionless specs with Excel). The "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("current Specs website"),o("OutboundLink")],1),e._v(" will be kept to document the v1 of the standards.")]),e._v(" "),o("h2",{attrs:{id:"immediate-next-steps"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#immediate-next-steps"}},[e._v("#")]),e._v(" Immediate next steps")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("We will update the contributions guide.")])]),e._v(" "),o("li",[o("p",[e._v("In December, due to holidays and limited capacity of people, we will focus on low-hanging fruits. Of course anyone who would like to start working on an issue is very welcome to do so. If you are part of the working group you have the right permission to push PRs, so please go ahead.")])]),e._v(" "),o("li",[o("p",[e._v("We will try to simplify JSON schemas and the way extensions are generated. The Frictionless modular approach will be of course kept. Our aim is to be as technology agnostic and no-code as possible.")])]),e._v(" "),o("li",[o("p",[e._v("We will keep Specs and tooling implementing them clearly separated.")])])]),e._v(" "),o("h2",{attrs:{id:"how-to-participate"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-to-participate"}},[e._v("#")]),e._v(" How to participate?")]),e._v(" "),o("p",[e._v("Go and have a look at the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue queue on GitHub"),o("OutboundLink")],1),e._v(", and feel free to jump on any of the issue to propose a solution / start a discussion.")]),e._v(" "),o("p",[e._v("Note that the v2 milestone is just an estimation to understand the scope of this release. We tried to carve out what we thought it was important to discuss about or take into consideration, but we don’t need to action every single issue on the list.")]),e._v(" "),o("h1",{attrs:{id:"announcements"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#announcements"}},[e._v("#")]),e._v(" Announcements")]),e._v(" "),o("p",[e._v("We are co-hosting the Open Research Devroom at "),o("a",{attrs:{href:"https://fosdem.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FOSDEM 2024"),o("OutboundLink")],1),e._v(" again this year. We are looking for developers & users of free libre open source technology for scientific research, investigative journalism, data journalism, activism, OSINT."),o("br"),e._v("\nCall for Participation is open until December 10th, we strongly encourage you to apply!")]),e._v(" "),o("p",[e._v("For those who cannot make it to Brussels on February 3rd, we are going to host an online session the week after.")]),e._v(" "),o("p",[e._v("More info: "),o("a",{attrs:{href:"https://research-fosdem.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://research-fosdem.github.io/"),o("OutboundLink")],1)]),e._v(" "),o("h1",{attrs:{id:"join-us-in-janaury"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-janaury"}},[e._v("#")]),e._v(" Join us in Janaury!")]),e._v(" "),o("p",[e._v("Next community call is on January 25"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/MKFuLqyc414?si=BGEiBzaHRXHQXaJJ",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and those who manifested their interest in joining the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/181.c47d7742.js b/assets/js/181.349dbd6e.js similarity index 99% rename from assets/js/181.c47d7742.js rename to assets/js/181.349dbd6e.js index c5b66cb26..710756688 100644 --- a/assets/js/181.c47d7742.js +++ b/assets/js/181.349dbd6e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{719:function(e,t,o){"use strict";o.r(t);var r=o(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on January 25"),o("sup",[e._v("th")]),e._v(", we continued discussing the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Specs"),o("OutboundLink")],1),e._v(" update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"working-group-discussion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),o("p",[e._v("The first thing we discussed was ways to prioritise candidate features for future Specs updates (beyond v2). At the moment, our idea is to prioritise those issues that get more votes (aka thumbs up), among the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc",target:"_blank",rel:"noopener noreferrer"}},[e._v("issues in the Specs repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Note, the reference for the v2 update is still "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("the one we initially published as a roadmap"),o("OutboundLink")],1),e._v(" in the update announcement blog. For the v2 release we will stick to that list of issues.")]),e._v(" "),o("p",[e._v("Anyone is welcome to open a Pull Request to address any of those issues. The PR will then be reviewed by the working group, according to the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/#decision-making",target:"_blank",rel:"noopener noreferrer"}},[e._v("decision-making process"),o("OutboundLink")],1),e._v(" we have agreed upon.")]),e._v(" "),o("p",[e._v("In case of neutral response from a high number of members of the working group which prevents the achievement of the consensus, the issue gets deprioritised. In case someone has a strong interest for a certain issue that gets deprioritised, they can bring it to discussion during one of the calls.")]),e._v(" "),o("p",[e._v("Evgeny also brought up that on top of the Specs themselves, there are many non-functional things that need to be updated too. For example, the Specs navigation needs to be improved, with a clear structure of the metadata properties. Since all this non-functional stuff is still part of the Specs, and should therefore follow a defined process, it was proposed that this part would be led by OKFN, and reviewed at the end by working group members.")]),e._v(" "),o("p",[e._v("The last thing that we discussed during the calls were "),o("code",[e._v("patterns")]),e._v(". The purpose of the "),o("code",[e._v("patterns")]),e._v(" has not been super well defined within the Frictionless project, and it is now unclear to some. The idea at the time they were introduced, was for them to be best practices, but not refined enough to be part of the Specs quite yet. It was also a way to share a certain approach. But there was no clearly defined mechanism to promote the "),o("code",[e._v("patterns")]),e._v(" to be part of the Specs.")]),e._v(" "),o("p",[e._v("Since the approach with this Specs update is to simplify as much as possible and cut out what is not needed, it was decided to include the "),o("code",[e._v("patterns")]),e._v(" in the Specs documentation (as some kind of Cook Book) and not in the Specs themselves, and rename them as their current name suggests a certain formality.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-february"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-february"}},[e._v("#")]),e._v(" Join us in February!")]),e._v(" "),o("p",[e._v("Next community call is on February 22"),o("sup",[e._v("tnd")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/38RZZ15tIJw?si=kAocKNufgAlG64NE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{721:function(e,t,o){"use strict";o.r(t);var r=o(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on January 25"),o("sup",[e._v("th")]),e._v(", we continued discussing the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Specs"),o("OutboundLink")],1),e._v(" update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"working-group-discussion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),o("p",[e._v("The first thing we discussed was ways to prioritise candidate features for future Specs updates (beyond v2). At the moment, our idea is to prioritise those issues that get more votes (aka thumbs up), among the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc",target:"_blank",rel:"noopener noreferrer"}},[e._v("issues in the Specs repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Note, the reference for the v2 update is still "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("the one we initially published as a roadmap"),o("OutboundLink")],1),e._v(" in the update announcement blog. For the v2 release we will stick to that list of issues.")]),e._v(" "),o("p",[e._v("Anyone is welcome to open a Pull Request to address any of those issues. The PR will then be reviewed by the working group, according to the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/#decision-making",target:"_blank",rel:"noopener noreferrer"}},[e._v("decision-making process"),o("OutboundLink")],1),e._v(" we have agreed upon.")]),e._v(" "),o("p",[e._v("In case of neutral response from a high number of members of the working group which prevents the achievement of the consensus, the issue gets deprioritised. In case someone has a strong interest for a certain issue that gets deprioritised, they can bring it to discussion during one of the calls.")]),e._v(" "),o("p",[e._v("Evgeny also brought up that on top of the Specs themselves, there are many non-functional things that need to be updated too. For example, the Specs navigation needs to be improved, with a clear structure of the metadata properties. Since all this non-functional stuff is still part of the Specs, and should therefore follow a defined process, it was proposed that this part would be led by OKFN, and reviewed at the end by working group members.")]),e._v(" "),o("p",[e._v("The last thing that we discussed during the calls were "),o("code",[e._v("patterns")]),e._v(". The purpose of the "),o("code",[e._v("patterns")]),e._v(" has not been super well defined within the Frictionless project, and it is now unclear to some. The idea at the time they were introduced, was for them to be best practices, but not refined enough to be part of the Specs quite yet. It was also a way to share a certain approach. But there was no clearly defined mechanism to promote the "),o("code",[e._v("patterns")]),e._v(" to be part of the Specs.")]),e._v(" "),o("p",[e._v("Since the approach with this Specs update is to simplify as much as possible and cut out what is not needed, it was decided to include the "),o("code",[e._v("patterns")]),e._v(" in the Specs documentation (as some kind of Cook Book) and not in the Specs themselves, and rename them as their current name suggests a certain formality.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-february"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-february"}},[e._v("#")]),e._v(" Join us in February!")]),e._v(" "),o("p",[e._v("Next community call is on February 22"),o("sup",[e._v("tnd")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/38RZZ15tIJw?si=kAocKNufgAlG64NE",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/182.c72b4037.js b/assets/js/182.a686d2a7.js similarity index 99% rename from assets/js/182.c72b4037.js rename to assets/js/182.a686d2a7.js index 96322183c..67088cf37 100644 --- a/assets/js/182.c72b4037.js +++ b/assets/js/182.a686d2a7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{722:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last community call was on February 27"),a("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Specs update with community members. As a reminder, thanks to the generous support of "),a("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),a("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),a("h2",{attrs:{id:"working-group-discussion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),a("p",[e._v("The main focus of this call was "),a("strong",[e._v("versioning")]),e._v(" and what the rules for versioning would be.")]),e._v(" "),a("p",[e._v("When announcing the Spec update, we decided there would be no breaking change introduced, and that the Data Package v2 (and all the following versions) would always support any previous version as well.")]),e._v(" "),a("p",[e._v("One thing that was highlighted during the discussion, though, is that there are some minimal aspects that we might want to modify for the sake of elegance (and to make implementers’ life easier too!). For example, Tableschema might require unique file names, and this could potentially be a breaking change. The group also pointed out that it would probably be better to do this now rather than later, when we hopefully have a much wider adoption. We would of course still be leaning towards conservatism and backwards compatibility, while having just enough flexibility to define v2 better.")]),e._v(" "),a("p",[e._v("With the working group we will need to clarify what a breaking change is: is it a change that breaks data or implementation? Kyle believes we can’t stop supporting data, and we want to be able to forever support a Data Package, even a 20 years old one (while we can afford to not support an implementation anymore). Keith thought we could decide to drop support for very old versions giving a very long timeframe for data published to update their Data Packages (e.g. 10 years).")]),e._v(" "),a("p",[e._v("There was a wide consensus on the fact that the easiest way to manage this would be to version the Spec, and introduce a version tag from v2 onwards. That way any consumer software would be able to read the version and convert it to the latest version if necessary. If no version is indicated, we would automatically assume it is a pre-v2 version.")]),e._v(" "),a("p",[e._v("Another thing we all agreed on is that the versioning would apply to Data Package as a whole, together with all the specs sitting under it. Data publishers would therefore need to indicate only one version for the Data Package.")]),e._v(" "),a("p",[e._v("Most of these considerations have been excellently captured by Peter in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/858#issuecomment-1914820238",target:"_blank",rel:"noopener noreferrer"}},[e._v("this issue"),a("OutboundLink")],1),e._v(" already.")]),e._v(" "),a("p",[e._v("One thing the working group will need to decide is how to actually indicate the version number in the Data Package JSON. Evgeny suggested adding it on top of the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/profiles/#language",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata profiles"),a("OutboundLink")],1),e._v(", but we will then need to consider how a data publisher could indicate both the profile and the Data Package version.")]),e._v(" "),a("p",[e._v("Once we agree on a rule, we will add it to the "),a("a",{attrs:{href:"https://datapackage.org/standard/governance/",target:"_blank",rel:"noopener noreferrer"}},[e._v("governance page"),a("OutboundLink")],1),e._v(" for future versioning too.")]),e._v(" "),a("p",[e._v("A Changelog will be added to the Data Package repo, to help implementers know what tasks they need to go through to update to the new version.")]),e._v(" "),a("h1",{attrs:{id:"join-us-in-march"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-march"}},[e._v("#")]),e._v(" Join us in March!")]),e._v(" "),a("p",[e._v("Next community call is on March 21"),a("sup",[e._v("st")]),e._v(", join us to hear all the exciting news about the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),a("OutboundLink")],1),e._v(" update!")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("Here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/-F3egB_40xo?si=0NrYa7N6QKni43A5",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"thank-you"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),a("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly tho those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{720:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last community call was on February 27"),a("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Specs update with community members. As a reminder, thanks to the generous support of "),a("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),a("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),a("h2",{attrs:{id:"working-group-discussion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),a("p",[e._v("The main focus of this call was "),a("strong",[e._v("versioning")]),e._v(" and what the rules for versioning would be.")]),e._v(" "),a("p",[e._v("When announcing the Spec update, we decided there would be no breaking change introduced, and that the Data Package v2 (and all the following versions) would always support any previous version as well.")]),e._v(" "),a("p",[e._v("One thing that was highlighted during the discussion, though, is that there are some minimal aspects that we might want to modify for the sake of elegance (and to make implementers’ life easier too!). For example, Tableschema might require unique file names, and this could potentially be a breaking change. The group also pointed out that it would probably be better to do this now rather than later, when we hopefully have a much wider adoption. We would of course still be leaning towards conservatism and backwards compatibility, while having just enough flexibility to define v2 better.")]),e._v(" "),a("p",[e._v("With the working group we will need to clarify what a breaking change is: is it a change that breaks data or implementation? Kyle believes we can’t stop supporting data, and we want to be able to forever support a Data Package, even a 20 years old one (while we can afford to not support an implementation anymore). Keith thought we could decide to drop support for very old versions giving a very long timeframe for data published to update their Data Packages (e.g. 10 years).")]),e._v(" "),a("p",[e._v("There was a wide consensus on the fact that the easiest way to manage this would be to version the Spec, and introduce a version tag from v2 onwards. That way any consumer software would be able to read the version and convert it to the latest version if necessary. If no version is indicated, we would automatically assume it is a pre-v2 version.")]),e._v(" "),a("p",[e._v("Another thing we all agreed on is that the versioning would apply to Data Package as a whole, together with all the specs sitting under it. Data publishers would therefore need to indicate only one version for the Data Package.")]),e._v(" "),a("p",[e._v("Most of these considerations have been excellently captured by Peter in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/858#issuecomment-1914820238",target:"_blank",rel:"noopener noreferrer"}},[e._v("this issue"),a("OutboundLink")],1),e._v(" already.")]),e._v(" "),a("p",[e._v("One thing the working group will need to decide is how to actually indicate the version number in the Data Package JSON. Evgeny suggested adding it on top of the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/profiles/#language",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata profiles"),a("OutboundLink")],1),e._v(", but we will then need to consider how a data publisher could indicate both the profile and the Data Package version.")]),e._v(" "),a("p",[e._v("Once we agree on a rule, we will add it to the "),a("a",{attrs:{href:"https://datapackage.org/standard/governance/",target:"_blank",rel:"noopener noreferrer"}},[e._v("governance page"),a("OutboundLink")],1),e._v(" for future versioning too.")]),e._v(" "),a("p",[e._v("A Changelog will be added to the Data Package repo, to help implementers know what tasks they need to go through to update to the new version.")]),e._v(" "),a("h1",{attrs:{id:"join-us-in-march"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-march"}},[e._v("#")]),e._v(" Join us in March!")]),e._v(" "),a("p",[e._v("Next community call is on March 21"),a("sup",[e._v("st")]),e._v(", join us to hear all the exciting news about the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless specs"),a("OutboundLink")],1),e._v(" update!")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("Here is the recording of the full call:")]),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/-F3egB_40xo?si=0NrYa7N6QKni43A5",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:""}}),e._v(" "),a("h1",{attrs:{id:"thank-you"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),a("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly tho those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/183.8c389a09.js b/assets/js/183.fdd418cf.js similarity index 98% rename from assets/js/183.8c389a09.js rename to assets/js/183.fdd418cf.js index e9facd338..55c7d657a 100644 --- a/assets/js/183.8c389a09.js +++ b/assets/js/183.fdd418cf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{720:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last community call was on March 21"),r("sup",[e._v("st")]),e._v(", we continued discussing the Frictionless Standards update with community members. As a reminder, thanks to the generous support of "),r("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),r("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Frictionless Standards. Read the "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),r("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),r("h2",{attrs:{id:"working-group-discussion"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),r("p",[e._v("We are very excited "),r("strong",[e._v("we are getting closer to the first Data Package v2 draft release")]),e._v("! We closed almost 30 issues already, and only have a few pending items to address for "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("the draft release"),r("OutboundLink")],1),e._v(", mainly to do with Table Dialect (see issue "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/344",target:"_blank",rel:"noopener noreferrer"}},[e._v("#344"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/697",target:"_blank",rel:"noopener noreferrer"}},[e._v("#697"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/681",target:"_blank",rel:"noopener noreferrer"}},[e._v("#681"),r("OutboundLink")],1),e._v("). During the call we discussed with the working group how to split the last remaining items in order to release the v2 draft already by the beginning of April.")]),e._v(" "),r("p",[e._v("For a full overview of the items that the working group tackled on the call, you can have a look at our "),r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/39",target:"_blank",rel:"noopener noreferrer"}},[e._v("live tracker on GitHub"),r("OutboundLink")],1),e._v(", or watch the recording linked here below.")]),e._v(" "),r("p",[e._v("A few issues were moved out of the draft release to be rather included "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the final release"),r("OutboundLink")],1),e._v(", which is planned for June. One example is versioning, which was "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2024/03/01/community-call/#working-group-discussion",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussed in the last call"),r("OutboundLink")],1),e._v(". As versioning is a brand new element, it will require more time to be tackled. We are currently working on a solid proposal to discuss with the working group next month.")]),e._v(" "),r("h1",{attrs:{id:"join-us-in-april"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-april"}},[e._v("#")]),e._v(" Join us in April!")]),e._v(" "),r("p",[e._v("Next community call is on April 25"),r("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),r("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless standards"),r("OutboundLink")],1),e._v(" update!")]),e._v(" "),r("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),r("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),r("OutboundLink")],1),e._v(", or come and tell us on our "),r("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),r("OutboundLink")],1),e._v("(also accessible via a "),r("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),r("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),r("p",[e._v("Here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/0q-tCtYL6N0?si=PZ_daE45EwlFc4gG",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}}),e._v(" "),r("h1",{attrs:{id:"thank-you"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),r("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{719:function(e,t,r){"use strict";r.r(t);var o=r(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("On our last community call was on March 21"),r("sup",[e._v("st")]),e._v(", we continued discussing the Frictionless Standards update with community members. As a reminder, thanks to the generous support of "),r("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),r("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Frictionless Standards. Read the "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),r("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),r("h2",{attrs:{id:"working-group-discussion"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),r("p",[e._v("We are very excited "),r("strong",[e._v("we are getting closer to the first Data Package v2 draft release")]),e._v("! We closed almost 30 issues already, and only have a few pending items to address for "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/6",target:"_blank",rel:"noopener noreferrer"}},[e._v("the draft release"),r("OutboundLink")],1),e._v(", mainly to do with Table Dialect (see issue "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/344",target:"_blank",rel:"noopener noreferrer"}},[e._v("#344"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/697",target:"_blank",rel:"noopener noreferrer"}},[e._v("#697"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/681",target:"_blank",rel:"noopener noreferrer"}},[e._v("#681"),r("OutboundLink")],1),e._v("). During the call we discussed with the working group how to split the last remaining items in order to release the v2 draft already by the beginning of April.")]),e._v(" "),r("p",[e._v("For a full overview of the items that the working group tackled on the call, you can have a look at our "),r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/39",target:"_blank",rel:"noopener noreferrer"}},[e._v("live tracker on GitHub"),r("OutboundLink")],1),e._v(", or watch the recording linked here below.")]),e._v(" "),r("p",[e._v("A few issues were moved out of the draft release to be rather included "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the final release"),r("OutboundLink")],1),e._v(", which is planned for June. One example is versioning, which was "),r("a",{attrs:{href:"https://frictionlessdata.io/blog/2024/03/01/community-call/#working-group-discussion",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussed in the last call"),r("OutboundLink")],1),e._v(". As versioning is a brand new element, it will require more time to be tackled. We are currently working on a solid proposal to discuss with the working group next month.")]),e._v(" "),r("h1",{attrs:{id:"join-us-in-april"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-april"}},[e._v("#")]),e._v(" Join us in April!")]),e._v(" "),r("p",[e._v("Next community call is on April 25"),r("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),r("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless standards"),r("OutboundLink")],1),e._v(" update!")]),e._v(" "),r("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),r("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),r("OutboundLink")],1),e._v(", or come and tell us on our "),r("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),r("OutboundLink")],1),e._v("(also accessible via a "),r("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),r("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),r("p",[e._v("You can sign up for the call already "),r("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),r("h1",{attrs:{id:"call-recording"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),r("p",[e._v("Here is the recording of the full call:")]),e._v(" "),r("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/0q-tCtYL6N0?si=PZ_daE45EwlFc4gG",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}}),e._v(" "),r("h1",{attrs:{id:"thank-you"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),r("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/184.4d77c158.js b/assets/js/184.5b45daec.js similarity index 99% rename from assets/js/184.4d77c158.js rename to assets/js/184.5b45daec.js index 78c76f760..699b2cb72 100644 --- a/assets/js/184.4d77c158.js +++ b/assets/js/184.5b45daec.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{721:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on April 25"),o("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Standard update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"working-group-discussion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),o("p",[e._v("We are very excited we are getting closer to the final "),o("strong",[e._v("Data Package v2 release")]),e._v("!")]),e._v(" "),o("p",[e._v("The first thing we talked about was the data representation model, and how to make distinction on data layers clearer. The discussion had started in GitHub "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/49",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR 49"),o("OutboundLink")],1),e._v(", and was elevated to community discussion. The discussion is linked to the categorical data proposal that Kyle has put together in GitHub "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/62",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR 62"),o("OutboundLink")],1),e._v(". What we want to do is to cut the ambiguity as much as possible, and make things explicit.")]),e._v(" "),o("p",[e._v("As Keith quite rightly pointed out, there are some aspects of the standards we are deciding upon without being totally sure about them. As a community we are leaning towards conservatism and avoiding breaking changes, but there are things we will need to try out as provisional and then either deprecate them if they don’t work or support them by the Standard. The fact that we are going to version the Standard is going to be very helpful in that process.")]),e._v(" "),o("p",[e._v("Versioning was actually supposed to be the main topic of the call, but "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/42",target:"_blank",rel:"noopener noreferrer"}},[e._v("the proposal we put together"),o("OutboundLink")],1),e._v(" was actually approved by the working group before the call.")]),e._v(" "),o("p",[e._v("For a full overview of the items that the working group tackled on the call, you can have a look at our "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/39",target:"_blank",rel:"noopener noreferrer"}},[e._v("live tracker on GitHub"),o("OutboundLink")],1),e._v(", or watch the recording linked here below.")]),e._v(" "),o("p",[e._v("A few issues were moved out of the draft release to be rather included "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the final release"),o("OutboundLink")],1),e._v(", which is planned for June. One example is versioning, which was "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2024/03/01/community-call/#working-group-discussion",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussed in the last call"),o("OutboundLink")],1),e._v(". As versioning is a brand new element, it will require more time to be tackled. We are currently working on a solid proposal to discuss with the working group next month.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-may"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-may"}},[e._v("#")]),e._v(" Join us in May!")]),e._v(" "),o("p",[e._v("Next community call is on May 30"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/PkQJkOW7cgo?si=fm8-ZeM1K6S1eiwC",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{722:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("On our last community call was on April 25"),o("sup",[e._v("th")]),e._v(", we continued discussing the Frictionless Standard update with community members. As a reminder, thanks to the generous support of "),o("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),o("OutboundLink")],1),e._v(", the Frictionless core team, together with a working group composed of members of the community, is now working on a v2 of the Specs. Read the "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement blog"),o("OutboundLink")],1),e._v(" to know more about it.")]),e._v(" "),o("h2",{attrs:{id:"working-group-discussion"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#working-group-discussion"}},[e._v("#")]),e._v(" Working group discussion")]),e._v(" "),o("p",[e._v("We are very excited we are getting closer to the final "),o("strong",[e._v("Data Package v2 release")]),e._v("!")]),e._v(" "),o("p",[e._v("The first thing we talked about was the data representation model, and how to make distinction on data layers clearer. The discussion had started in GitHub "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/49",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR 49"),o("OutboundLink")],1),e._v(", and was elevated to community discussion. The discussion is linked to the categorical data proposal that Kyle has put together in GitHub "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/62",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR 62"),o("OutboundLink")],1),e._v(". What we want to do is to cut the ambiguity as much as possible, and make things explicit.")]),e._v(" "),o("p",[e._v("As Keith quite rightly pointed out, there are some aspects of the standards we are deciding upon without being totally sure about them. As a community we are leaning towards conservatism and avoiding breaking changes, but there are things we will need to try out as provisional and then either deprecate them if they don’t work or support them by the Standard. The fact that we are going to version the Standard is going to be very helpful in that process.")]),e._v(" "),o("p",[e._v("Versioning was actually supposed to be the main topic of the call, but "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/42",target:"_blank",rel:"noopener noreferrer"}},[e._v("the proposal we put together"),o("OutboundLink")],1),e._v(" was actually approved by the working group before the call.")]),e._v(" "),o("p",[e._v("For a full overview of the items that the working group tackled on the call, you can have a look at our "),o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/pull/39",target:"_blank",rel:"noopener noreferrer"}},[e._v("live tracker on GitHub"),o("OutboundLink")],1),e._v(", or watch the recording linked here below.")]),e._v(" "),o("p",[e._v("A few issues were moved out of the draft release to be rather included "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/milestone/7",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the final release"),o("OutboundLink")],1),e._v(", which is planned for June. One example is versioning, which was "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2024/03/01/community-call/#working-group-discussion",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussed in the last call"),o("OutboundLink")],1),e._v(". As versioning is a brand new element, it will require more time to be tackled. We are currently working on a solid proposal to discuss with the working group next month.")]),e._v(" "),o("h1",{attrs:{id:"join-us-in-may"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-may"}},[e._v("#")]),e._v(" Join us in May!")]),e._v(" "),o("p",[e._v("Next community call is on May 30"),o("sup",[e._v("th")]),e._v(", join us to hear all the exciting news about the "),o("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package"),o("OutboundLink")],1),e._v(" update!")]),e._v(" "),o("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),o("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(", or come and tell us on our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),o("OutboundLink")],1),e._v("(also accessible via a "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),o("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),o("p",[e._v("You can sign up for the call already "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),o("h1",{attrs:{id:"call-recording"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),o("p",[e._v("Here is the recording of the full call:")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/PkQJkOW7cgo?si=fm8-ZeM1K6S1eiwC",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}}),e._v(" "),o("h1",{attrs:{id:"thank-you"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#thank-you"}},[e._v("#")]),e._v(" Thank you")]),e._v(" "),o("p",[e._v("On a final note, we would like to thank all community members that joined the call and that keep all these discussions alive, and particularly to those who are putting a lot of thinking and hard work into the specs working group. Without you, all of this would not be possible.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/186.e4651f0c.js b/assets/js/186.0ae99c59.js similarity index 99% rename from assets/js/186.e4651f0c.js rename to assets/js/186.0ae99c59.js index 6aff0ed9e..d597d7841 100644 --- a/assets/js/186.e4651f0c.js +++ b/assets/js/186.0ae99c59.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{725:function(e,t,a){"use strict";a.r(t);var r=a(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce the release of version 2.0 of the "),a("strong",[a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package standard"),a("OutboundLink")],1)]),e._v(" (previously known as Frictionless Specs). Thanks to the generous support of "),a("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(", starting "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/#additional-deliverables",target:"_blank",rel:"noopener noreferrer"}},[e._v("from November last year"),a("OutboundLink")],1),e._v(", we were able to focus on reviewing Data Package in order to include features that were often requested throughout the years and improve extensibility for domain-specific implementations.")]),e._v(" "),a("p",[e._v("Data Package is a standard for data containerisation, which consists of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that enhances data FAIRness (findability, accessibility, interoperability, and reusability). Since its initial release in 2007, the community has suggested many features that could improve or extend the standard for use cases that weren’t initially envisioned. Those were sometimes adopted, but there wasn’t a versioning or governance process in place to truly evolve the standard.")]),e._v(" "),a("p",[e._v("We started with "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("the issues that had accumulated in the GitHub repository"),a("OutboundLink")],1),e._v(" to build our Roadmap for v2. Many of the requested features are now adopted, making Data Package the answer for even more use cases.")]),e._v(" "),a("p",[e._v("In parallel we assembled an outstanding Data Package Working Group composed of experts from the community. We carefully selected a diverse group of people who brought different use-cases, formats, and data types that we would need the Standard to support. Together with them, we crafted "),a("a",{attrs:{href:"https://datapackage.org/overview/governance/",target:"_blank",rel:"noopener noreferrer"}},[e._v("a governance model"),a("OutboundLink")],1),e._v(" that is explicit, in order to create an environment that adequately supports new contributions and ensures project sustainability.")]),e._v(" "),a("p",[e._v("We would like to thank each one of them for their remarkable contribution and for the incredibly insightful conversations we had during these months. Thank you to my colleague Evgeny Karev, Peter Desmet from the "),a("a",{attrs:{href:"https://www.vlaanderen.be/inbo/en-gb/homepage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Institute for Nature and Forest (INBO)"),a("OutboundLink")],1),e._v(", Phil Schumm from "),a("a",{attrs:{href:"https://ctds.uchicago.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CTDS - University of Chicago"),a("OutboundLink")],1),e._v(", Kyle Husmann from the "),a("a",{attrs:{href:"https://www.psu.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PennState University"),a("OutboundLink")],1),e._v(", Keith Hughitt from the "),a("a",{attrs:{href:"https://www.nih.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("National Institutes of Health"),a("OutboundLink")],1),e._v(", Jakob Voß from the "),a("a",{attrs:{href:"https://www.gbv.de/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Verbundzentrale des GBV (VZG)"),a("OutboundLink")],1),e._v(", Ethan Welty from the "),a("a",{attrs:{href:"https://wgms.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("World Glacier Monitoring Service"),a("OutboundLink")],1),e._v(", Paul Walsh from "),a("a",{attrs:{href:"https://linkdigital.com.au/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Link Digital"),a("OutboundLink")],1),e._v(", Pieter Huybrechts from the "),a("a",{attrs:{href:"https://www.vlaanderen.be/inbo/en-gb/homepage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Institute for Nature and Forest (INBO)"),a("OutboundLink")],1),e._v(", Martin Durant from "),a("a",{attrs:{href:"https://www.anaconda.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Anaconda, inc."),a("OutboundLink")],1),e._v(", Adam Kariv from "),a("a",{attrs:{href:"https://www.hasadna.org.il/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Public Knowledge Workshop"),a("OutboundLink")],1),e._v(", Johan Richer from "),a("a",{attrs:{href:"https://www.multi.coop/?locale=fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi"),a("OutboundLink")],1),e._v(", and Stephen Diggs from the "),a("a",{attrs:{href:"https://cdlib.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of California Digital Library"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you are curious about the conversations we had during the Standard review, they are all captured (and recorded) in "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the blog summaries of the community calls"),a("OutboundLink")],1),e._v(". Alternatively you can also check out the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/milestone/6?closed=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("closed issues on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"so-what-is-new-in-version-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#so-what-is-new-in-version-2"}},[e._v("#")]),e._v(" So what is new in version 2?")]),e._v(" "),a("p",[e._v("During these months we have been working on the core specifications that compose the Standard, namely: "),a("a",{attrs:{href:"https://datapackage.org/standard/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),a("OutboundLink")],1),e._v(" – a simple container format for describing a coherent collection of data in a single ‘package’, "),a("a",{attrs:{href:"https://datapackage.org/standard/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Resource"),a("OutboundLink")],1),e._v(" to describe and package a single data resource, "),a("a",{attrs:{href:"https://datapackage.org/standard/table-dialect/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Dialect"),a("OutboundLink")],1),e._v(" to describe how tabular data is stored in a file, and "),a("a",{attrs:{href:"https://datapackage.org/standard/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),a("OutboundLink")],1),e._v(" to declare a schema for tabular data.")]),e._v(" "),a("p",[e._v("During the update process we tried to be as little disruptive as possible, avoiding breaking changes when possible.")]),e._v(" "),a("p",[e._v("We put a lot of effort into removing ambiguity, cutting or clarifying under-defined features, and promoting some well-oiled recipes into the Standard itself. An example of a recipe (or pattern, as they were called in v1) that has been promoted to the Standard is the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#missing-values-per-field",target:"_blank",rel:"noopener noreferrer"}},[e._v("Missing values per field"),a("OutboundLink")],1),e._v(". We also added a versioning mechanism, support for categorical data, and changes that make it easier to extend the Standard.")]),e._v(" "),a("p",[e._v("If you would like to know the details about what has changed, see the "),a("a",{attrs:{href:"https://datapackage.org/overview/changelog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Changelog"),a("OutboundLink")],1),e._v(" we published.")]),e._v(" "),a("p",[e._v("To increase and facilitate adoption, we published a "),a("a",{attrs:{href:"https://github.com/frictionlessdata/dplib-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata mapper written in Python"),a("OutboundLink")],1),e._v(". We have also worked on Data Package integrations for the most notable open data portals out there. Many people from the community use Zenodo, so we definitely wanted to target that. They have recently migrated their infrastructure to "),a("a",{attrs:{href:"https://inveniordm.web.cern.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Invenio RDM"),a("OutboundLink")],1),e._v(" and we proposed a Data Package serializer for better integration with the Standard (more info on this integration will be announced in an upcoming blog!). We also created a pull request that exposes "),a("code",[e._v("datapackage.json")]),e._v(" as a metadata export target in the "),a("a",{attrs:{href:"https://www.cos.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Science Framework"),a("OutboundLink")],1),e._v(" system, and built an extension that adds a "),a("code",[e._v("datapackage.json")]),e._v(" endpoint to every dataset in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackage",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you want to know more about how to coordinate a standard update, we shared our main takeaways at FOSDEM 2024. The presentation was recorded, and you can watch it "),a("a",{attrs:{href:"https://fosdem.org/2024/schedule/event/fosdem-2024-3109-updating-open-data-standards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"and-what-happens-now"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#and-what-happens-now"}},[e._v("#")]),e._v(" And what happens now?")]),e._v(" "),a("p",[e._v("While the work on Data Package 2.0 is done (for now!), we will keep working on the "),a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package website and documentation"),a("OutboundLink")],1),e._v(" together with the Working Group, to make it as clear and straightforward as possible for newcomers. In parallel, we will also start integrating the version 2 changes in the "),a("a",{attrs:{href:"https://datapackage.org/overview/software/",target:"_blank",rel:"noopener noreferrer"}},[e._v("software implementations"),a("OutboundLink")],1),e._v(").")]),e._v(" "),a("p",[e._v("Would you like to contribute? We always welcome new people to the project! Go and have a look at our "),a("a",{attrs:{href:"https://frictionlessdata.io/work-with-us/contribute/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contribution page"),a("OutboundLink")],1),e._v(" to understand the general guideline. Please get in touch with us by joining "),a("a",{attrs:{href:"https://frictionlessdata.io/development/roadmap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community chat on Slack"),a("OutboundLink")],1),e._v(" (also accessible via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v("), or feel free to jump in any of "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("the discussions on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"funding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#funding"}},[e._v("#")]),e._v(" Funding")]),e._v(" "),a("p",[e._v("This project was funded through "),a("a",{attrs:{href:"https://nlnet.nl/entrust",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGI0 Entrust"),a("OutboundLink")],1),e._v(", a fund established by "),a("a",{attrs:{href:"https://nlnet.nl",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(" with financial support from the European Commission’s "),a("a",{attrs:{href:"https://ngi.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("Next Generation Internet"),a("OutboundLink")],1),e._v(" program. Learn more at the "),a("a",{attrs:{href:"https://nlnet.nl/project/FrictionlessStandards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet project page"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://nlnet.nl",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://nlnet.nl/logo/banner.png",alt:"NLnet foundation logo",width:"20%"}}),a("OutboundLink")],1),a("br"),e._v(" "),a("a",{attrs:{href:"https://nlnet.nl/entrust",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://nlnet.nl/image/logos/NGI0_tag.svg",alt:"NGI Zero Logo",width:"20%"}}),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{724:function(e,t,a){"use strict";a.r(t);var r=a(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("We are very excited to announce the release of version 2.0 of the "),a("strong",[a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package standard"),a("OutboundLink")],1)]),e._v(" (previously known as Frictionless Specs). Thanks to the generous support of "),a("a",{attrs:{href:"https://nlnet.nl/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(", starting "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/#additional-deliverables",target:"_blank",rel:"noopener noreferrer"}},[e._v("from November last year"),a("OutboundLink")],1),e._v(", we were able to focus on reviewing Data Package in order to include features that were often requested throughout the years and improve extensibility for domain-specific implementations.")]),e._v(" "),a("p",[e._v("Data Package is a standard for data containerisation, which consists of a set of simple yet extensible specifications to describe datasets, data files and tabular data. It is a data definition language (DDL) and data API that enhances data FAIRness (findability, accessibility, interoperability, and reusability). Since its initial release in 2007, the community has suggested many features that could improve or extend the standard for use cases that weren’t initially envisioned. Those were sometimes adopted, but there wasn’t a versioning or governance process in place to truly evolve the standard.")]),e._v(" "),a("p",[e._v("We started with "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("the issues that had accumulated in the GitHub repository"),a("OutboundLink")],1),e._v(" to build our Roadmap for v2. Many of the requested features are now adopted, making Data Package the answer for even more use cases.")]),e._v(" "),a("p",[e._v("In parallel we assembled an outstanding Data Package Working Group composed of experts from the community. We carefully selected a diverse group of people who brought different use-cases, formats, and data types that we would need the Standard to support. Together with them, we crafted "),a("a",{attrs:{href:"https://datapackage.org/overview/governance/",target:"_blank",rel:"noopener noreferrer"}},[e._v("a governance model"),a("OutboundLink")],1),e._v(" that is explicit, in order to create an environment that adequately supports new contributions and ensures project sustainability.")]),e._v(" "),a("p",[e._v("We would like to thank each one of them for their remarkable contribution and for the incredibly insightful conversations we had during these months. Thank you to my colleague Evgeny Karev, Peter Desmet from the "),a("a",{attrs:{href:"https://www.vlaanderen.be/inbo/en-gb/homepage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Institute for Nature and Forest (INBO)"),a("OutboundLink")],1),e._v(", Phil Schumm from "),a("a",{attrs:{href:"https://ctds.uchicago.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CTDS - University of Chicago"),a("OutboundLink")],1),e._v(", Kyle Husmann from the "),a("a",{attrs:{href:"https://www.psu.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PennState University"),a("OutboundLink")],1),e._v(", Keith Hughitt from the "),a("a",{attrs:{href:"https://www.nih.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("National Institutes of Health"),a("OutboundLink")],1),e._v(", Jakob Voß from the "),a("a",{attrs:{href:"https://www.gbv.de/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Verbundzentrale des GBV (VZG)"),a("OutboundLink")],1),e._v(", Ethan Welty from the "),a("a",{attrs:{href:"https://wgms.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("World Glacier Monitoring Service"),a("OutboundLink")],1),e._v(", Paul Walsh from "),a("a",{attrs:{href:"https://linkdigital.com.au/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Link Digital"),a("OutboundLink")],1),e._v(", Pieter Huybrechts from the "),a("a",{attrs:{href:"https://www.vlaanderen.be/inbo/en-gb/homepage/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Institute for Nature and Forest (INBO)"),a("OutboundLink")],1),e._v(", Martin Durant from "),a("a",{attrs:{href:"https://www.anaconda.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Anaconda, inc."),a("OutboundLink")],1),e._v(", Adam Kariv from "),a("a",{attrs:{href:"https://www.hasadna.org.il/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Public Knowledge Workshop"),a("OutboundLink")],1),e._v(", Johan Richer from "),a("a",{attrs:{href:"https://www.multi.coop/?locale=fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi"),a("OutboundLink")],1),e._v(", and Stephen Diggs from the "),a("a",{attrs:{href:"https://cdlib.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of California Digital Library"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you are curious about the conversations we had during the Standard review, they are all captured (and recorded) in "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("the blog summaries of the community calls"),a("OutboundLink")],1),e._v(". Alternatively you can also check out the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/milestone/6?closed=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("closed issues on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"so-what-is-new-in-version-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#so-what-is-new-in-version-2"}},[e._v("#")]),e._v(" So what is new in version 2?")]),e._v(" "),a("p",[e._v("During these months we have been working on the core specifications that compose the Standard, namely: "),a("a",{attrs:{href:"https://datapackage.org/standard/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),a("OutboundLink")],1),e._v(" – a simple container format for describing a coherent collection of data in a single ‘package’, "),a("a",{attrs:{href:"https://datapackage.org/standard/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Resource"),a("OutboundLink")],1),e._v(" to describe and package a single data resource, "),a("a",{attrs:{href:"https://datapackage.org/standard/table-dialect/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Dialect"),a("OutboundLink")],1),e._v(" to describe how tabular data is stored in a file, and "),a("a",{attrs:{href:"https://datapackage.org/standard/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),a("OutboundLink")],1),e._v(" to declare a schema for tabular data.")]),e._v(" "),a("p",[e._v("During the update process we tried to be as little disruptive as possible, avoiding breaking changes when possible.")]),e._v(" "),a("p",[e._v("We put a lot of effort into removing ambiguity, cutting or clarifying under-defined features, and promoting some well-oiled recipes into the Standard itself. An example of a recipe (or pattern, as they were called in v1) that has been promoted to the Standard is the "),a("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#missing-values-per-field",target:"_blank",rel:"noopener noreferrer"}},[e._v("Missing values per field"),a("OutboundLink")],1),e._v(". We also added a versioning mechanism, support for categorical data, and changes that make it easier to extend the Standard.")]),e._v(" "),a("p",[e._v("If you would like to know the details about what has changed, see the "),a("a",{attrs:{href:"https://datapackage.org/overview/changelog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Changelog"),a("OutboundLink")],1),e._v(" we published.")]),e._v(" "),a("p",[e._v("To increase and facilitate adoption, we published a "),a("a",{attrs:{href:"https://github.com/frictionlessdata/dplib-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata mapper written in Python"),a("OutboundLink")],1),e._v(". We have also worked on Data Package integrations for the most notable open data portals out there. Many people from the community use Zenodo, so we definitely wanted to target that. They have recently migrated their infrastructure to "),a("a",{attrs:{href:"https://inveniordm.web.cern.ch/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Invenio RDM"),a("OutboundLink")],1),e._v(" and we proposed a Data Package serializer for better integration with the Standard (more info on this integration will be announced in an upcoming blog!). We also created a pull request that exposes "),a("code",[e._v("datapackage.json")]),e._v(" as a metadata export target in the "),a("a",{attrs:{href:"https://www.cos.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Science Framework"),a("OutboundLink")],1),e._v(" system, and built an extension that adds a "),a("code",[e._v("datapackage.json")]),e._v(" endpoint to every dataset in "),a("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackage",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("If you want to know more about how to coordinate a standard update, we shared our main takeaways at FOSDEM 2024. The presentation was recorded, and you can watch it "),a("a",{attrs:{href:"https://fosdem.org/2024/schedule/event/fosdem-2024-3109-updating-open-data-standards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"and-what-happens-now"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#and-what-happens-now"}},[e._v("#")]),e._v(" And what happens now?")]),e._v(" "),a("p",[e._v("While the work on Data Package 2.0 is done (for now!), we will keep working on the "),a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package website and documentation"),a("OutboundLink")],1),e._v(" together with the Working Group, to make it as clear and straightforward as possible for newcomers. In parallel, we will also start integrating the version 2 changes in the "),a("a",{attrs:{href:"https://datapackage.org/overview/software/",target:"_blank",rel:"noopener noreferrer"}},[e._v("software implementations"),a("OutboundLink")],1),e._v(").")]),e._v(" "),a("p",[e._v("Would you like to contribute? We always welcome new people to the project! Go and have a look at our "),a("a",{attrs:{href:"https://frictionlessdata.io/work-with-us/contribute/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Contribution page"),a("OutboundLink")],1),e._v(" to understand the general guideline. Please get in touch with us by joining "),a("a",{attrs:{href:"https://frictionlessdata.io/development/roadmap/",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community chat on Slack"),a("OutboundLink")],1),e._v(" (also accessible via "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix"),a("OutboundLink")],1),e._v("), or feel free to jump in any of "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("the discussions on GitHub"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"funding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#funding"}},[e._v("#")]),e._v(" Funding")]),e._v(" "),a("p",[e._v("This project was funded through "),a("a",{attrs:{href:"https://nlnet.nl/entrust",target:"_blank",rel:"noopener noreferrer"}},[e._v("NGI0 Entrust"),a("OutboundLink")],1),e._v(", a fund established by "),a("a",{attrs:{href:"https://nlnet.nl",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet"),a("OutboundLink")],1),e._v(" with financial support from the European Commission’s "),a("a",{attrs:{href:"https://ngi.eu",target:"_blank",rel:"noopener noreferrer"}},[e._v("Next Generation Internet"),a("OutboundLink")],1),e._v(" program. Learn more at the "),a("a",{attrs:{href:"https://nlnet.nl/project/FrictionlessStandards/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NLnet project page"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://nlnet.nl",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://nlnet.nl/logo/banner.png",alt:"NLnet foundation logo",width:"20%"}}),a("OutboundLink")],1),a("br"),e._v(" "),a("a",{attrs:{href:"https://nlnet.nl/entrust",target:"_blank",rel:"noopener noreferrer"}},[a("img",{attrs:{src:"https://nlnet.nl/image/logos/NGI0_tag.svg",alt:"NGI Zero Logo",width:"20%"}}),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/187.b5a60410.js b/assets/js/187.cc42df04.js similarity index 99% rename from assets/js/187.b5a60410.js rename to assets/js/187.cc42df04.js index 33fd10012..4c9c1b2d3 100644 --- a/assets/js/187.b5a60410.js +++ b/assets/js/187.cc42df04.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{726:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last community call on September 26"),a("sup",[e._v("th")]),e._v(" we discussed with the community the Frictionless project and changes in the governance of the Python Framework.")]),e._v(" "),a("p",[e._v("The roadmap and maintenance of the Python Framework has been led until now by Open Knowledge Foundation (OKFN), with precious contributions from the community. We would like now to expand the governance framework to include new maintainers outside of OKFN. Since the end of August we have been extremely happy to welcome Pierre Camilleri from "),a("a",{attrs:{href:"https://www.multi.coop/?locale=fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi.coop"),a("OutboundLink")],1),e._v(", which builds FLOSS for public administrations, as new official maintainer of the Python Framework. Pierre also maintains "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/23/table-schema-catalog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validata"),a("OutboundLink")],1),e._v(", a wrapper of Frictionless offering custom checks for the French administration.")]),e._v(" "),a("p",[e._v("If you or anyone you know is interested in maintaining the Frictionless Framework, please get in touch. We don’t want to brag, but we are getting close to 1,000 stars on GitHub, if this can help motivate people!")]),e._v(" "),a("p",[e._v("As suggested by Peter Desmet, we will also prepare the codebase for peer review from the PyOpenSci community, which may also be able to support the maintenance.")]),e._v(" "),a("p",[e._v("All of those changes will be reflected on the website, on the "),a("a",{attrs:{href:"https://frictionlessdata.io/people/",target:"_blank",rel:"noopener noreferrer"}},[e._v("People page"),a("OutboundLink")],1),e._v(", among others. While we are at it, we will also make the "),a("a",{attrs:{href:"https://frictionlessdata.io/universe/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Universe page"),a("OutboundLink")],1),e._v(" more informative, by including for each library information about who the main authors and maintainers, the status (including GitHub stars), the features supported, downloads, and maybe adding a common API. Probably most of that information can be pulled from GitHub, in the same way "),a("a",{attrs:{href:"https://inbo.r-universe.dev/builds",target:"_blank",rel:"noopener noreferrer"}},[e._v("INBO"),a("OutboundLink")],1),e._v(" does.")]),e._v(" "),a("h2",{attrs:{id:"community-discussion-on-the-data-package-update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#community-discussion-on-the-data-package-update"}},[e._v("#")]),e._v(" Community discussion on the Data Package update:")]),e._v(" "),a("p",[e._v("Part of the "),a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),a("OutboundLink")],1),e._v(" update under the NLnet grant was to propose a Data Package integration to use as a data API for data repositories like Zenodo and CKAN. The proposals are in discussions with the relevant teams.")]),e._v(" "),a("p",[e._v("We all agreed we need to build more links between Data Package and the FAIR principles. Steve Diggs and Phil Schumm proposed to build a working group around Data Package adoption, to spark the discussion around Data Package, not only with the people involved in data sharing, but also end-users and researchers to demonstrate how valuable Data Package can be for their own work, and how much efficiency it can bring even if one is just interested in doing secondary data analysis. As Peter Desmet rightly pointed out, while there are alternatives out there of other specs you could use instead of Data Package, their scope of use is often limited and they do not have software implementations. What makes Frictionless attractive is that it has been around for more than a decade and it has been used in many different areas, so it is general enough to suit everyone’s needs. We therefore started a "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/archives/C0369JLDJ1Z",target:"_blank",rel:"noopener noreferrer"}},[e._v("new channel on Slack"),a("OutboundLink")],1),e._v(" to discuss Data Package adoption, please join the discussion.")]),e._v(" "),a("p",[e._v("We also got an update from the categorical data working group (Kyle Husmann, Phil Schumm, Albert-Jan Roskam, and Jan van der Laan), who are building a new approach in the form of a recipe to allow to define data resources that are explicit categorical tables, with categorical codes and tables, and hierarchical information about the categories and rich metadata about the levels. If you are interested in being part of this discussion, please reach out to Kyle Husmann on Slack. They will present their work at the November community call.")]),e._v(" "),a("h1",{attrs:{id:"join-us-in-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-october"}},[e._v("#")]),e._v(" Join us in October!")]),e._v(" "),a("p",[e._v("Next community call is on October 31"),a("sup",[e._v("st")]),e._v(" (oh so spooky!). Keith Hughitt will be presenting.")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v("(also accessible via a "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),a("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("Here is the recording of the full call:"),a("br"),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/cJjn1_kFejM?si=Fgb5_wAjARh5bJ4W",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}})])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{725:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("On our last community call on September 26"),a("sup",[e._v("th")]),e._v(" we discussed with the community the Frictionless project and changes in the governance of the Python Framework.")]),e._v(" "),a("p",[e._v("The roadmap and maintenance of the Python Framework has been led until now by Open Knowledge Foundation (OKFN), with precious contributions from the community. We would like now to expand the governance framework to include new maintainers outside of OKFN. Since the end of August we have been extremely happy to welcome Pierre Camilleri from "),a("a",{attrs:{href:"https://www.multi.coop/?locale=fr",target:"_blank",rel:"noopener noreferrer"}},[e._v("Multi.coop"),a("OutboundLink")],1),e._v(", which builds FLOSS for public administrations, as new official maintainer of the Python Framework. Pierre also maintains "),a("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/23/table-schema-catalog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Validata"),a("OutboundLink")],1),e._v(", a wrapper of Frictionless offering custom checks for the French administration.")]),e._v(" "),a("p",[e._v("If you or anyone you know is interested in maintaining the Frictionless Framework, please get in touch. We don’t want to brag, but we are getting close to 1,000 stars on GitHub, if this can help motivate people!")]),e._v(" "),a("p",[e._v("As suggested by Peter Desmet, we will also prepare the codebase for peer review from the PyOpenSci community, which may also be able to support the maintenance.")]),e._v(" "),a("p",[e._v("All of those changes will be reflected on the website, on the "),a("a",{attrs:{href:"https://frictionlessdata.io/people/",target:"_blank",rel:"noopener noreferrer"}},[e._v("People page"),a("OutboundLink")],1),e._v(", among others. While we are at it, we will also make the "),a("a",{attrs:{href:"https://frictionlessdata.io/universe/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Universe page"),a("OutboundLink")],1),e._v(" more informative, by including for each library information about who the main authors and maintainers, the status (including GitHub stars), the features supported, downloads, and maybe adding a common API. Probably most of that information can be pulled from GitHub, in the same way "),a("a",{attrs:{href:"https://inbo.r-universe.dev/builds",target:"_blank",rel:"noopener noreferrer"}},[e._v("INBO"),a("OutboundLink")],1),e._v(" does.")]),e._v(" "),a("h2",{attrs:{id:"community-discussion-on-the-data-package-update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#community-discussion-on-the-data-package-update"}},[e._v("#")]),e._v(" Community discussion on the Data Package update:")]),e._v(" "),a("p",[e._v("Part of the "),a("a",{attrs:{href:"https://datapackage.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package"),a("OutboundLink")],1),e._v(" update under the NLnet grant was to propose a Data Package integration to use as a data API for data repositories like Zenodo and CKAN. The proposals are in discussions with the relevant teams.")]),e._v(" "),a("p",[e._v("We all agreed we need to build more links between Data Package and the FAIR principles. Steve Diggs and Phil Schumm proposed to build a working group around Data Package adoption, to spark the discussion around Data Package, not only with the people involved in data sharing, but also end-users and researchers to demonstrate how valuable Data Package can be for their own work, and how much efficiency it can bring even if one is just interested in doing secondary data analysis. As Peter Desmet rightly pointed out, while there are alternatives out there of other specs you could use instead of Data Package, their scope of use is often limited and they do not have software implementations. What makes Frictionless attractive is that it has been around for more than a decade and it has been used in many different areas, so it is general enough to suit everyone’s needs. We therefore started a "),a("a",{attrs:{href:"https://frictionlessdata.slack.com/archives/C0369JLDJ1Z",target:"_blank",rel:"noopener noreferrer"}},[e._v("new channel on Slack"),a("OutboundLink")],1),e._v(" to discuss Data Package adoption, please join the discussion.")]),e._v(" "),a("p",[e._v("We also got an update from the categorical data working group (Kyle Husmann, Phil Schumm, Albert-Jan Roskam, and Jan van der Laan), who are building a new approach in the form of a recipe to allow to define data resources that are explicit categorical tables, with categorical codes and tables, and hierarchical information about the categories and rich metadata about the levels. If you are interested in being part of this discussion, please reach out to Kyle Husmann on Slack. They will present their work at the November community call.")]),e._v(" "),a("h1",{attrs:{id:"join-us-in-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-us-in-october"}},[e._v("#")]),e._v(" Join us in October!")]),e._v(" "),a("p",[e._v("Next community call is on October 31"),a("sup",[e._v("st")]),e._v(" (oh so spooky!). Keith Hughitt will be presenting.")]),e._v(" "),a("p",[e._v("Do you have something you would like to present to the community at one of the upcoming calls? Let us know via "),a("a",{attrs:{href:"https://forms.gle/AWpbxyiGESNSUFK2A",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),a("OutboundLink")],1),e._v(", or come and tell us on our "),a("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[e._v("community chat on Slack"),a("OutboundLink")],1),e._v("(also accessible via a "),a("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Matrix bridge"),a("OutboundLink")],1),e._v(" if you prefer to use an open protocol).")]),e._v(" "),a("p",[e._v("You can sign up for the call already "),a("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSeuNCopxXauMkrWvF6VHqOyHMcy54SfNDOseVXfWRQZWkvqjQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". Do you want to share something with the community? Let us know when you sign up.")]),e._v(" "),a("h1",{attrs:{id:"call-recording"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#call-recording"}},[e._v("#")]),e._v(" Call Recording")]),e._v(" "),a("p",[e._v("Here is the recording of the full call:"),a("br"),e._v(" "),a("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/cJjn1_kFejM?si=Fgb5_wAjARh5bJ4W",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:""}})])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/188.43b51928.js b/assets/js/188.5abd431f.js similarity index 88% rename from assets/js/188.43b51928.js rename to assets/js/188.5abd431f.js index 4636dd66d..1293b51a0 100644 --- a/assets/js/188.43b51928.js +++ b/assets/js/188.5abd431f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{727:function(t,s,e){"use strict";e.r(s);var r=e(29),i=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"frictionless-architecture"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-architecture"}},[this._v("#")]),this._v(" Frictionless Architecture")]),this._v(" "),s("p",[s("img",{attrs:{src:"/img/structure.png",alt:"Design"}})])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{728:function(t,s,e){"use strict";e.r(s);var r=e(29),i=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"frictionless-architecture"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-architecture"}},[this._v("#")]),this._v(" Frictionless Architecture")]),this._v(" "),s("p",[s("img",{attrs:{src:"/img/structure.png",alt:"Design"}})])])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/189.652020c0.js b/assets/js/189.54e20e17.js similarity index 99% rename from assets/js/189.652020c0.js rename to assets/js/189.54e20e17.js index 20259f2a6..5f95ae15b 100644 --- a/assets/js/189.652020c0.js +++ b/assets/js/189.54e20e17.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{728:function(e,s,t){"use strict";t.r(s);var r=t(29),o=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frictionless-process"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-process"}},[e._v("#")]),e._v(" Frictionless Process")]),e._v(" "),t("p",[e._v("This document proposes a process to work on the technical side of the Frictionless Data project. The goal - have things manageable for a minimal price.")]),e._v(" "),t("h2",{attrs:{id:"project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#project"}},[e._v("#")]),e._v(" Project")]),e._v(" "),t("p",[e._v("The specific of the project is a huge amount of components and actors (repositories, issues, contributors etc). The process should be effective in handling this specific.")]),e._v(" "),t("h2",{attrs:{id:"process"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#process"}},[e._v("#")]),e._v(" Process")]),e._v(" "),t("p",[e._v("The main idea to focus on getting things done and reduce the price of maintaining the process instead of trying to fully mimic some popular methodologies. We use different ideas from different methodologies.")]),e._v(" "),t("h2",{attrs:{id:"roles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#roles"}},[e._v("#")]),e._v(" Roles")]),e._v(" "),t("ul",[t("li",[e._v("Product Owner (PO)")]),e._v(" "),t("li",[e._v("Product Manager (PM)")]),e._v(" "),t("li",[e._v("Developer Advocate (DA)")]),e._v(" "),t("li",[e._v("Technical Lead (TL)")]),e._v(" "),t("li",[e._v("Senior Developer (SD)")]),e._v(" "),t("li",[e._v("Junior Developer (JD)")])]),e._v(" "),t("h2",{attrs:{id:"board"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#board"}},[e._v("#")]),e._v(" Board")]),e._v(" "),t("p",[e._v("We use a kanban board located at "),t("a",{attrs:{href:"https://github.com/orgs/frictionlessdata/projects/2?fullscreen=true",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/orgs/frictionlessdata/projects/2?fullscreen=true"),t("OutboundLink")],1),e._v(" to work on the project. The board has following columns (ordered by issue stage):")]),e._v(" "),t("ul",[t("li",[e._v("Backlog - unprocessed issues without labels and processed issues with labels")]),e._v(" "),t("li",[e._v("Priority - prioritized issues planned for the next iterations (estimated and assigned)")]),e._v(" "),t("li",[e._v("Current - current iteration issues promoted on iteration planning (estimated and assigned)")]),e._v(" "),t("li",[e._v("Review - issues under review process")]),e._v(" "),t("li",[e._v("Done - completed issues")])]),e._v(" "),t("h2",{attrs:{id:"workflow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#workflow"}},[e._v("#")]),e._v(" Workflow")]),e._v(" "),t("p",[e._v("The work on the project is a live process splitted into 2 weeks iterations between iteration plannings (including retrospection):")]),e._v(" "),t("ul",[t("li",[e._v("Inside an iteration assigned persons work on their current issues and subset of roles do issues processing and prioritizing")]),e._v(" "),t("li",[e._v("During the iteration planning the team moves issues from the Priority column to the Current column and assign persons. Instead of issue estimations assigned person approves amount of work for the current iteration as a high-level estimation.")])]),e._v(" "),t("h2",{attrs:{id:"milestones"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#milestones"}},[e._v("#")]),e._v(" Milestones")]),e._v(" "),t("p",[e._v("As milestones we use concrete achievements e.g. from our roadmap. It could be tools or spec versions like “spec-v1”. We don’t use the workflow related milestones like “current” of “backlog” managing it via the board labeling system.")]),e._v(" "),t("h2",{attrs:{id:"labels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#labels"}},[e._v("#")]),e._v(" Labels")]),e._v(" "),t("p",[e._v("Aside internal waffle labels and helpers labels like “question” etc we use core color-coded labels based on SemVer. The main point of processing issues from Inbox to Backlog is to add one of this labels because we need to plan releases, breaking announces etc:")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://cloud.githubusercontent.com/assets/557395/17673693/f6391676-632a-11e6-9971-945623b68e16.png",alt:"labels"}})]),e._v(" "),t("h2",{attrs:{id:"assignments"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#assignments"}},[e._v("#")]),e._v(" Assignments")]),e._v(" "),t("p",[e._v("Every issue in the Current column should be assigned to some person with meaning “this person should do some work on this issue to unblock it”. Assigned person should re-assign an issue for a current blocker. It provides a good real-time overview of the project.")]),e._v(" "),t("h2",{attrs:{id:"analysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#analysis"}},[e._v("#")]),e._v(" Analysis")]),e._v(" "),t("p",[e._v("After planning it’s highly recommended for an assigned person to write a short plan of how to solve the issue (could be a list of steps) and ask someone to check. This work could be done on some previous stages by subset of roles.")]),e._v(" "),t("h2",{attrs:{id:"branching"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#branching"}},[e._v("#")]),e._v(" Branching")]),e._v(" "),t("p",[e._v("We use Git Flow with some simplifications (see OKI coding standards). Master branch should always be “green” on tests and new features/fixes should go from pull requests. Direct committing to master could be allowed by subset of roles in some cases.")]),e._v(" "),t("h2",{attrs:{id:"pull-requests"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pull-requests"}},[e._v("#")]),e._v(" Pull Requests")]),e._v(" "),t("p",[e._v("A pull request should be visually merged on the board to the corresponding issue using “It fixes #issue-number” sentence in the pull request description (initial comment). If there is no corresponding issue for the pull request it should be handled as an issue with labeling etc.")]),e._v(" "),t("h2",{attrs:{id:"reviews"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reviews"}},[e._v("#")]),e._v(" Reviews")]),e._v(" "),t("p",[e._v("After sending a pull request the author should assign the pull request to another person “asking” for a code review. After the review code should be merged to the codebase by the pull request author (or person having enough rights).")]),e._v(" "),t("h2",{attrs:{id:"documentation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#documentation"}},[e._v("#")]),e._v(" Documentation")]),e._v(" "),t("p",[e._v("By default documentation for a tool should be written in "),t("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),t("OutboundLink")],1),e._v(" not using additional files and folders. It should be clean and well-structured. API should be documented in the code as docstrings. We compile project level docs automatically.")]),e._v(" "),t("h2",{attrs:{id:"testings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testings"}},[e._v("#")]),e._v(" Testings")]),e._v(" "),t("p",[e._v("Tests should be written using OKI coding standards. Start write tests from top (match high-level requirements) to bottom (if needed). The most high-level tests are implemented as testsuites on project level (integration tests between different tools).")]),e._v(" "),t("h2",{attrs:{id:"releasing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#releasing"}},[e._v("#")]),e._v(" Releasing")]),e._v(" "),t("p",[e._v("We use SemVer for versioning and Github Actions for testing and releasing/deployments. We prefer short release cycle (features and fixes could be released immediately). Releases should be configured using tags based on package examples workflow provided by OKI.")]),e._v(" "),t("p",[e._v("The release process:")]),e._v(" "),t("ul",[t("li",[e._v("merge changes to the main branch on GitHub\n"),t("ul",[t("li",[e._v("use “Squash and Merge”")]),e._v(" "),t("li",[e._v("use clean commit message")])])]),e._v(" "),t("li",[e._v("pull the changes locally")]),e._v(" "),t("li",[e._v("update the software version according to SemVer rules\n"),t("ul",[t("li",[e._v("in Python projets we use "),t("code",[e._v("/assets/VERSION")])]),e._v(" "),t("li",[e._v("in JavaScript projects we use standard "),t("code",[e._v("package.json")])])])]),e._v(" "),t("li",[e._v("update a CHANGELOG file adding info about new feature or important changes")]),e._v(" "),t("li",[e._v("run "),t("code",[e._v("main release")]),e._v(" (it will release automatically)")])]),e._v(" "),t("h2",{attrs:{id:"references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[e._v("#")]),e._v(" References")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/okfn/coding-standards",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International Coding Standards"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://mui.com/versions/#versioning-strategy",target:"_blank",rel:"noopener noreferrer"}},[e._v("MUI Versioning Strategy"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{729:function(e,s,t){"use strict";t.r(s);var r=t(29),o=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"frictionless-process"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-process"}},[e._v("#")]),e._v(" Frictionless Process")]),e._v(" "),t("p",[e._v("This document proposes a process to work on the technical side of the Frictionless Data project. The goal - have things manageable for a minimal price.")]),e._v(" "),t("h2",{attrs:{id:"project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#project"}},[e._v("#")]),e._v(" Project")]),e._v(" "),t("p",[e._v("The specific of the project is a huge amount of components and actors (repositories, issues, contributors etc). The process should be effective in handling this specific.")]),e._v(" "),t("h2",{attrs:{id:"process"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#process"}},[e._v("#")]),e._v(" Process")]),e._v(" "),t("p",[e._v("The main idea to focus on getting things done and reduce the price of maintaining the process instead of trying to fully mimic some popular methodologies. We use different ideas from different methodologies.")]),e._v(" "),t("h2",{attrs:{id:"roles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#roles"}},[e._v("#")]),e._v(" Roles")]),e._v(" "),t("ul",[t("li",[e._v("Product Owner (PO)")]),e._v(" "),t("li",[e._v("Product Manager (PM)")]),e._v(" "),t("li",[e._v("Developer Advocate (DA)")]),e._v(" "),t("li",[e._v("Technical Lead (TL)")]),e._v(" "),t("li",[e._v("Senior Developer (SD)")]),e._v(" "),t("li",[e._v("Junior Developer (JD)")])]),e._v(" "),t("h2",{attrs:{id:"board"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#board"}},[e._v("#")]),e._v(" Board")]),e._v(" "),t("p",[e._v("We use a kanban board located at "),t("a",{attrs:{href:"https://github.com/orgs/frictionlessdata/projects/2?fullscreen=true",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/orgs/frictionlessdata/projects/2?fullscreen=true"),t("OutboundLink")],1),e._v(" to work on the project. The board has following columns (ordered by issue stage):")]),e._v(" "),t("ul",[t("li",[e._v("Backlog - unprocessed issues without labels and processed issues with labels")]),e._v(" "),t("li",[e._v("Priority - prioritized issues planned for the next iterations (estimated and assigned)")]),e._v(" "),t("li",[e._v("Current - current iteration issues promoted on iteration planning (estimated and assigned)")]),e._v(" "),t("li",[e._v("Review - issues under review process")]),e._v(" "),t("li",[e._v("Done - completed issues")])]),e._v(" "),t("h2",{attrs:{id:"workflow"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#workflow"}},[e._v("#")]),e._v(" Workflow")]),e._v(" "),t("p",[e._v("The work on the project is a live process splitted into 2 weeks iterations between iteration plannings (including retrospection):")]),e._v(" "),t("ul",[t("li",[e._v("Inside an iteration assigned persons work on their current issues and subset of roles do issues processing and prioritizing")]),e._v(" "),t("li",[e._v("During the iteration planning the team moves issues from the Priority column to the Current column and assign persons. Instead of issue estimations assigned person approves amount of work for the current iteration as a high-level estimation.")])]),e._v(" "),t("h2",{attrs:{id:"milestones"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#milestones"}},[e._v("#")]),e._v(" Milestones")]),e._v(" "),t("p",[e._v("As milestones we use concrete achievements e.g. from our roadmap. It could be tools or spec versions like “spec-v1”. We don’t use the workflow related milestones like “current” of “backlog” managing it via the board labeling system.")]),e._v(" "),t("h2",{attrs:{id:"labels"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#labels"}},[e._v("#")]),e._v(" Labels")]),e._v(" "),t("p",[e._v("Aside internal waffle labels and helpers labels like “question” etc we use core color-coded labels based on SemVer. The main point of processing issues from Inbox to Backlog is to add one of this labels because we need to plan releases, breaking announces etc:")]),e._v(" "),t("p",[t("img",{attrs:{src:"https://cloud.githubusercontent.com/assets/557395/17673693/f6391676-632a-11e6-9971-945623b68e16.png",alt:"labels"}})]),e._v(" "),t("h2",{attrs:{id:"assignments"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#assignments"}},[e._v("#")]),e._v(" Assignments")]),e._v(" "),t("p",[e._v("Every issue in the Current column should be assigned to some person with meaning “this person should do some work on this issue to unblock it”. Assigned person should re-assign an issue for a current blocker. It provides a good real-time overview of the project.")]),e._v(" "),t("h2",{attrs:{id:"analysis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#analysis"}},[e._v("#")]),e._v(" Analysis")]),e._v(" "),t("p",[e._v("After planning it’s highly recommended for an assigned person to write a short plan of how to solve the issue (could be a list of steps) and ask someone to check. This work could be done on some previous stages by subset of roles.")]),e._v(" "),t("h2",{attrs:{id:"branching"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#branching"}},[e._v("#")]),e._v(" Branching")]),e._v(" "),t("p",[e._v("We use Git Flow with some simplifications (see OKI coding standards). Master branch should always be “green” on tests and new features/fixes should go from pull requests. Direct committing to master could be allowed by subset of roles in some cases.")]),e._v(" "),t("h2",{attrs:{id:"pull-requests"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pull-requests"}},[e._v("#")]),e._v(" Pull Requests")]),e._v(" "),t("p",[e._v("A pull request should be visually merged on the board to the corresponding issue using “It fixes #issue-number” sentence in the pull request description (initial comment). If there is no corresponding issue for the pull request it should be handled as an issue with labeling etc.")]),e._v(" "),t("h2",{attrs:{id:"reviews"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#reviews"}},[e._v("#")]),e._v(" Reviews")]),e._v(" "),t("p",[e._v("After sending a pull request the author should assign the pull request to another person “asking” for a code review. After the review code should be merged to the codebase by the pull request author (or person having enough rights).")]),e._v(" "),t("h2",{attrs:{id:"documentation"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#documentation"}},[e._v("#")]),e._v(" Documentation")]),e._v(" "),t("p",[e._v("By default documentation for a tool should be written in "),t("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),t("OutboundLink")],1),e._v(" not using additional files and folders. It should be clean and well-structured. API should be documented in the code as docstrings. We compile project level docs automatically.")]),e._v(" "),t("h2",{attrs:{id:"testings"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#testings"}},[e._v("#")]),e._v(" Testings")]),e._v(" "),t("p",[e._v("Tests should be written using OKI coding standards. Start write tests from top (match high-level requirements) to bottom (if needed). The most high-level tests are implemented as testsuites on project level (integration tests between different tools).")]),e._v(" "),t("h2",{attrs:{id:"releasing"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#releasing"}},[e._v("#")]),e._v(" Releasing")]),e._v(" "),t("p",[e._v("We use SemVer for versioning and Github Actions for testing and releasing/deployments. We prefer short release cycle (features and fixes could be released immediately). Releases should be configured using tags based on package examples workflow provided by OKI.")]),e._v(" "),t("p",[e._v("The release process:")]),e._v(" "),t("ul",[t("li",[e._v("merge changes to the main branch on GitHub\n"),t("ul",[t("li",[e._v("use “Squash and Merge”")]),e._v(" "),t("li",[e._v("use clean commit message")])])]),e._v(" "),t("li",[e._v("pull the changes locally")]),e._v(" "),t("li",[e._v("update the software version according to SemVer rules\n"),t("ul",[t("li",[e._v("in Python projets we use "),t("code",[e._v("/assets/VERSION")])]),e._v(" "),t("li",[e._v("in JavaScript projects we use standard "),t("code",[e._v("package.json")])])])]),e._v(" "),t("li",[e._v("update a CHANGELOG file adding info about new feature or important changes")]),e._v(" "),t("li",[e._v("run "),t("code",[e._v("main release")]),e._v(" (it will release automatically)")])]),e._v(" "),t("h2",{attrs:{id:"references"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[e._v("#")]),e._v(" References")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/okfn/coding-standards",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International Coding Standards"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://mui.com/versions/#versioning-strategy",target:"_blank",rel:"noopener noreferrer"}},[e._v("MUI Versioning Strategy"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/19.e318a14d.js b/assets/js/19.7e84e393.js similarity index 98% rename from assets/js/19.e318a14d.js rename to assets/js/19.7e84e393.js index e00d5e876..62fc737f0 100644 --- a/assets/js/19.e318a14d.js +++ b/assets/js/19.7e84e393.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{438:function(t,e,a){t.exports=a.p+"assets/img/ukds-pipeline-flow.8cf26465.png"},439:function(t,e,a){t.exports=a.p+"assets/img/ukds-au-pairing-datasheet.6d159749.png"},440:function(t,e,a){t.exports=a.p+"assets/img/ukds-govt-petitions-datasheet.d9d1cb8a.png"},584:function(t,e,a){"use strict";a.r(e);var s=a(29),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("The UK Data Service, like many other research repository services, employs a range of closed source software solutions for the publication and consumption of research data. The data itself is often published in closed and proprietary data formats, and the data is not always, or purposefully, published in a way that enables data reuse.")]),t._v(" "),s("p",[t._v("Based on an initial exploration of user need, we identified, together with the UK Data Service, the following areas for a Frictionless Data pilot:")]),t._v(" "),s("ul",[s("li",[t._v("Conversion of data and metadata to open formats using open source tools.")]),t._v(" "),s("li",[t._v("Use the Frictionless Data toolchain to assess and report on data quality (as a proxy for reusability).")]),t._v(" "),s("li",[t._v("Demonstrate the possibility of generating visualizations from source data and metadata, described with Frictionless Data specifications.")]),t._v(" "),s("li",[t._v("Host the data with all these attributes (open formats, reusable quality, visualized) on an open source platform for data.")])]),t._v(" "),s("p",[t._v("We worked with data that was publicly accessible, and therefore in its post-publication phase. This also informed the way we designed the work, as a set of connected processing and transport steps, very much outside of the publication process itself. While this was acceptable for the scope of the pilot, the real power of the approach we demonstrate here is in integrating it with pre-publication phases of data, via a combined automated and manually curated data process. Indeed, we can see via this pilot the potential to streamline the workflow demonstrated into a complete research data publication process, and would welcome the opportunity to conduct one or more pilots that build on this approach, deeply integrated into pre-publication data workflows.")]),t._v(" "),s("h2",{attrs:{id:"context"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),s("p",[t._v("The UK Data Service offers an online repository where researchers can archive, publish and share research data, called "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Reshare"),s("OutboundLink")],1),t._v(". Reshare exposes an "),s("a",{attrs:{href:"https://www.openarchives.org/pmh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("OAI-PMH"),s("OutboundLink")],1),t._v(" endpoint to facilitate metadata harvesting.")]),t._v(" "),s("p",[s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" is a data workflows web application build around the modular Frictionless Data toolchain, designed to find, share and publish high quality data online. Each entry has a ‘Showcase’ to display data package properties, and preview data with tables and simple visualisations. As well as the Showcase, "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" provides straight-forward direct access to import data into a variety of tools used by researchers; R, Pandas, Python, JavaScript, and SQL. "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Data Packages"),s("OutboundLink")],1),t._v(" can be pushed to "),s("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to create dataset entries.")]),t._v(" "),s("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),s("p",[t._v("We want to investigate the use of the Data Package concept, and Frictionless Data software to facilitate the reuse of data archived in Reshare.")]),t._v(" "),s("p",[t._v("We are especially interested in trialling pipelines to automate data harvesting from UKDS into "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" using Frictionless Data software such as "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-pipelines"),s("OutboundLink")],1),t._v(", and creating appropriate processors to translate widely used statistics file formats, such as "),s("a",{attrs:{href:"https://www.ibm.com/analytics/us/en/technology/spss/",target:"_blank",rel:"noopener noreferrer"}},[t._v("SPSS"),s("OutboundLink")],1),t._v(", to text-based tabular data formats such as CSV.")]),t._v(" "),s("p",[t._v("We chose the Data Package Pipelines library because it provides us with a well tested and mature framework of established processors to work with tabular data from a variety of sources and formats. Custom processors can easily be added to extend pipeline functionality. Pipelines can be configured using a simple declarative specification. Other tools supporting the underlying Frictionless Data specifications, such as "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py/",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py/",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables"),s("OutboundLink")],1),t._v(" can be easily integrated as appropriate.")]),t._v(" "),s("p",[t._v("In this pilot we are trialling tools to:")]),t._v(" "),s("ul",[s("li",[t._v("automate data harvesting from UKDS, to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(", through a data package pipeline.")]),t._v(" "),s("li",[t._v("translate binary data formats (SPSS) to text-based tabular formats.")]),t._v(" "),s("li",[t._v("validate tabular data harvested from UKDS with goodtables.")]),t._v(" "),s("li",[t._v("fix or workaround common data issues identified from validation report, in the source-spec")]),t._v(" "),s("li",[t._v("correct file encoding")]),t._v(" "),s("li",[t._v("skip non-data rows")]),t._v(" "),s("li",[t._v("skip specified validation checks (duplicate-rows)")]),t._v(" "),s("li",[t._v("specify header rows in csv files")]),t._v(" "),s("li",[t._v("explicitly defining tabular headers")]),t._v(" "),s("li",[t._v("trial the "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" API with real-world data")]),t._v(" "),s("li",[t._v("use the Showcase features of "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to provide instance data previews and visualisations.")])]),t._v(" "),s("h3",{attrs:{id:"the-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The Work")]),t._v(" "),s("h4",{attrs:{id:"what-did-we-do"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[t._v("#")]),t._v(" What Did We Do")]),t._v(" "),s("p",[t._v("During the pilot, we focussed on creating a reusable pipeline of processors to harvest data and dataset metadata from the UKDS Reshare service, and output valid Data Packages with tabular resources. Each pipeline processor step was created as a separate module to facilitate testing and reuse in other similar pipelines.")]),t._v(" "),s("p",[t._v("UKDS datasets were selected from "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/cgi/stats/report/most_popular_eprints",target:"_blank",rel:"noopener noreferrer"}},[t._v("the UKDS list"),s("OutboundLink")],1),t._v(". Entries were selected based on the data format we intended to write processors for (.csv, .tsv, xls, or .sav), how the dataset might help demonstrate various aspects of the pipeline, and how well they might lend themselves to visualisation on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Below is an outline of the pipeline flow from UKDS Reshare Archive to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" entry:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(438),alt:"pipeline flow from UKDS Reshare Archive to datahub.io"}}),s("br"),t._v(" "),s("em",[t._v("pipeline flow from UKDS Reshare Archive to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1)])]),t._v(" "),s("h5",{attrs:{id:"specifying-an-entry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#specifying-an-entry"}},[t._v("#")]),t._v(" Specifying an Entry")]),t._v(" "),s("p",[t._v("We wanted to ensure that each UKDS dataset to be maintained on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" could be easily configured to specify where to harvest its resource data and dataset metadata. We also wanted to add other configuration details to help customise the pipeline to work with tricky resources, and view specifications for subsequent visualisation on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The source-spec for each Reshare entry defines a list of URLs for each resource in the dataset that we’re interested in harvesting, and the resource format (csv, tsv, xls, or spss).")]),t._v(" "),s("p",[t._v("If an OAI ID is provided, it will be used to harvest dataset metadata from the Reshare OAI endpoint.")]),t._v(" "),s("p",[t._v("As well as defining source locations, we also want to provide a way to customise downstream processor behaviour, to help work around potential resource issues.")]),t._v(" "),s("p",[t._v("Below is an example yaml source-spec for two entries, demonstrating various configuration options.")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("entries")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("civil-servant-survey")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# entry name")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# a list of sources")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851401/10/Coded_SurveyData.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851401/2/key%20%283%29.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("goodtables")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# custom processor config for goodtables")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_checks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" duplicate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("row\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851401")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# OAI ID to harvest dataset metadata")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("uk-gov-petitions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851614/1/gov_pet_metadata.tab\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" tsv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# custom processor config for tabulator")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" utf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# explicitly define source file encoding")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# explicitly define missing column headers")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" id\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" title\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" department\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" starting\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" closing\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851614")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("views")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" views/petitions"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("view.json\n")])])]),s("p",[t._v("Sources in the first entry, "),s("em",[t._v("civil-servant-survey")]),t._v(", contain duplicate rows, which would normally fail goodtables validation. Here we will allow the "),s("code",[t._v("duplicate-row")]),t._v(" check to be skipped.")]),t._v(" "),s("p",[t._v("The source in the second entry has the wrong character encoding and no headers declared. We can fix these issues to allow the pipeline to process the resource by explicitly specifying the file encoding, and declaring the column headers.")]),t._v(" "),s("h4",{attrs:{id:"data-set-and-resource-harvest"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data-set-and-resource-harvest"}},[t._v("#")]),t._v(" Data Set and Resource Harvest")]),t._v(" "),s("p",[t._v("We identified that Reshare has an OAI-PMH2 compatible endpoint to harvest information about each Reshare data set. So we created an "),s("code",[t._v("ukds.add_oai_metadata")]),t._v(" pipeline processor. OAI metadata is compatible with Dublin Core Elements, and the processor translates this into Data Package compatible properties.")]),t._v(" "),s("p",[t._v("Resources are added to the newly created Data Package and downloaded from the URLs defined in the yaml configuration. We support adding SPSS (.sav), CSV, TSV and XLS file formats.")]),t._v(" "),s("p",[t._v("To support the widely used SPSS format, we created an "),s("code",[t._v("spss.add_spss processor")]),t._v(" that makes use of the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-spss-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-spss"),s("OutboundLink")],1),t._v(" plugin to read SPSS files and create tableschema descriptors from them.")]),t._v(" "),s("h4",{attrs:{id:"validation-reports-and-common-issues"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#validation-reports-and-common-issues"}},[t._v("#")]),t._v(" Validation Reports and Common Issues")]),t._v(" "),s("p",[t._v("To help ensure data quality, we want to validate the harvested tabular data before continuing the pipeline. We created a "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-goodtables",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("goodtables.validate")]),t._v(" processor"),s("OutboundLink")],1),t._v(", which will write a validation report for each resource. If a resource fails to validate against its schema, or has other data issues, the pipeline will fail. Errors can be identified from validation reports, fixed, and the pipeline re-run.")]),t._v(" "),s("p",[t._v("Below are examples of issues revealed by validation that can occur when working with real-world data.")]),t._v(" "),s("h5",{attrs:{id:"au-pairing-after-the-au-pair-scheme-specifying-a-xls-sheet-and-working-around-non-data-rows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#au-pairing-after-the-au-pair-scheme-specifying-a-xls-sheet-and-working-around-non-data-rows"}},[t._v("#")]),t._v(" “Au pairing after the au pair scheme”: specifying a xls sheet, and working around non-data rows")]),t._v(" "),s("p",[t._v("The "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/851656/",target:"_blank",rel:"noopener noreferrer"}},[t._v("“Au Pairing” dataset"),s("OutboundLink")],1),t._v(" has a single .xls resource we’re interested in harvesting. The file contains four sheets, and we’re interested in the second one, which contains the data. So we specify our entry:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("au-pairing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851656/6/GumtreeAds_AuPairsAnalysis1.xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sheet")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# use sheet 2 in the file")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851656")]),t._v("\n")])])]),s("p",[t._v("Notice we have indicated which sheet in the file to use.")]),t._v(" "),s("p",[t._v("The data sheet has a single header row, but it also has this header row repeated at intervals throughout the data, presumably to aid the human reader when reviewing the data manually.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(439),alt:""}}),s("br"),t._v(" "),s("em",[t._v("screengrab of the UKDS “Au Pairing” datasheet")])]),t._v(" "),s("p",[t._v("For machine processing, this isn’t ideal. In fact, it will fail our goodtables validation processor with the following (truncated) report:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"time"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.466")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"valid"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean important"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"error-count"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"table-count"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"tables"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"errors"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"duplicate-row"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Row 347 is duplicated to row(s) 236"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"row-number"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("347")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"column-number"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null important"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"row"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"happy/energetic/caring/loving outlook required"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CV requested"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"gender specified"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cooking"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("You can find the full report "),s("a",{attrs:{href:"https://gist.github.com/brew/8401e2875ec6d829baf95b79cd677e28",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The report tells us there are 13 errors, and lists where they are. In this case they indicate that duplicate rows are present (the repeated header). This can either be fixed within Reshare, or we can add a parameter to our entry specification to skip each row that contains the duplicate header:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("au-pairing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851656/6/GumtreeAds_AuPairsAnalysis1.xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sheet")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_rows")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("237")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("292")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("348")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("402")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("458")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("511")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("564")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("618")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("673")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("726")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("779")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("832")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("886")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("937")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("990")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("goodtables")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_checks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" duplicate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("row\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851656")]),t._v("\n")])])]),s("p",[t._v("Above we’ve added a "),s("code",[t._v("skip_rows")]),t._v(" parameter with a list of row numbers to skip when generating the data package. We also instruct goodtables to skip the "),s("code",[t._v("duplicate-row")]),t._v(" check."),s("br"),t._v("\nThe outputted csv resource file will no longer contain rows with the duplicate header.")]),t._v(" "),s("h5",{attrs:{id:"uk-government-petitions-wrong-file-encoding-and-specifying-missing-headers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#uk-government-petitions-wrong-file-encoding-and-specifying-missing-headers"}},[t._v("#")]),t._v(" “UK government petitions”: wrong file encoding, and specifying missing headers")]),t._v(" "),s("p",[t._v("The “"),s("a",{attrs:{href:"http://gov.uk/",target:"_blank",rel:"noopener noreferrer"}},[t._v("gov.uk"),s("OutboundLink")],1),t._v(" petitions” dataset has a TSV data file we’re interested in. However, it has been saved with the wrong character encoding and attempting to open may return an error, or display some characters incorrectly.")]),t._v(" "),s("p",[t._v("Additionally, there is no header row specified at the top of the file, so the resulting data package won’t have the correct header information in the resource’s schema.")]),t._v(" "),s("p",[t._v("We can fix both of these issues in our entry specification:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("uk-gov-petitions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851614/1/gov_pet_metadata.tab\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" tsv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" utf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# specify file encoding")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# define missing headers")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" id\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" title\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" department\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" starting\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" closing\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851614")]),t._v("\n")])])]),s("p",[t._v("Above, we have defined the character encoding we want to use when opening the file, and we’ve explicitly defined the headers to use. These headers will be added to the first row of the outputted csv resource file in the data package.")]),t._v(" "),s("p",[t._v("We can also use the "),s("code",[t._v("headers")]),t._v(" parameter to define which row contains header information. By default this is the first row. However, sometimes a data file will have the headers on a different row:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(440),alt:""}}),s("br"),t._v(" "),s("em",[t._v("screengrab of the UKDS “Government Petitions” datasheet")])]),t._v(" "),s("p",[t._v("This example file has its headers defined in row three, with other information, and an empty row in the first two rows. We can tell our pipeline which row contains headers by specifying it in the entry configuration:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("example-entry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//www.newcastle.gov.uk/sites/drupalncc.newcastle.gov.uk/files/wwwfileroot/your"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("council/local_transparency/january_2012.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# specifying which row contains headers")]),t._v("\n")])])]),s("h4",{attrs:{id:"add-data-package-views"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-data-package-views"}},[t._v("#")]),t._v(" Add Data Package Views")]),t._v(" "),s("p",[t._v("View specs can be added to the data package to enable "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to create visualisations from resource data in the data package. The "),s("code",[t._v("views")]),t._v(" property is a list of file paths to json files containing "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/views/",target:"_blank",rel:"noopener noreferrer"}},[t._v("view-spec"),s("OutboundLink")],1),t._v(" compatible views.")]),t._v(" "),s("p",[t._v("Currently, "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" supports views written either with a ‘simple’ views-spec, or using Vega (v 2.6.5). See "),s("a",{attrs:{href:"https://datahub.io/docs/features/views",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io docs"),s("OutboundLink")],1),t._v(" for more details about the supported views-spec.")]),t._v(" "),s("h4",{attrs:{id:"push-to-datahub-io"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#push-to-datahub-io"}},[t._v("#")]),t._v(" Push to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1)]),t._v(" "),s("p",[t._v("Once the harvesting pipeline has been run the resulting data packages are pushed to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" using the "),s("a",{attrs:{href:"https://github.com/datahq/datahub-cli",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("datahub.dump.to_datahub")]),s("OutboundLink")],1),t._v(" processor.")]),t._v(" "),s("p",[t._v("This creates or updates an entry for the package on datahub. If a view has been defined in the entry configuration, this will be created on the "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" entry Showcase page.")]),t._v(" "),s("h3",{attrs:{id:"review"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),s("p",[t._v("We were able to demonstrate that a data processing pipeline using Frictionless Data tools can facilitate the automated harvesting, validation, transformation, and upload to a data package-compatible third-party service, based on a simple configuration.")]),t._v(" "),s("h3",{attrs:{id:"next-steps"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),s("p",[t._v("The pilot data package pipeline runs locally in a development environment, but given each processor has been written as a separate module, these could be used within any pipeline. "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" uses datapackage-pipelines within its infrastructure, and the processors developed for this project could be used within "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" itself to facilitate the automatic harvesting of datasets from OAI-PMH enabled data sources.")]),t._v(" "),s("p",[t._v("Once a pipeline is in place, it can be scheduled to run each day (or week, month, etc.). This would ensure "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" is up-to-date with data on UKDS Reshare.")]),t._v(" "),s("p",[t._v("Working with ‘real-world’ data from UKDS Reshare has helped to identify and prioritise improvements and future features for "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h3",{attrs:{id:"additional-resources"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[t._v("#")]),t._v(" Additional Resources")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-ukds",target:"_blank",rel:"noopener noreferrer"}},[t._v("The main code repository for this pilot"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("A framework for processing data packages in pipelines of modular components"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-spss",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor for SPSS file formats"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-goodtables",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor for validating tabular data using goodtables-py"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/datahq/datapackage-pipelines-datahub",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor to push data packages to datahub.io"),s("OutboundLink")],1),t._v(".")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{435:function(t,e,a){t.exports=a.p+"assets/img/ukds-pipeline-flow.8cf26465.png"},436:function(t,e,a){t.exports=a.p+"assets/img/ukds-au-pairing-datasheet.6d159749.png"},437:function(t,e,a){t.exports=a.p+"assets/img/ukds-govt-petitions-datasheet.d9d1cb8a.png"},583:function(t,e,a){"use strict";a.r(e);var s=a(29),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("The UK Data Service, like many other research repository services, employs a range of closed source software solutions for the publication and consumption of research data. The data itself is often published in closed and proprietary data formats, and the data is not always, or purposefully, published in a way that enables data reuse.")]),t._v(" "),s("p",[t._v("Based on an initial exploration of user need, we identified, together with the UK Data Service, the following areas for a Frictionless Data pilot:")]),t._v(" "),s("ul",[s("li",[t._v("Conversion of data and metadata to open formats using open source tools.")]),t._v(" "),s("li",[t._v("Use the Frictionless Data toolchain to assess and report on data quality (as a proxy for reusability).")]),t._v(" "),s("li",[t._v("Demonstrate the possibility of generating visualizations from source data and metadata, described with Frictionless Data specifications.")]),t._v(" "),s("li",[t._v("Host the data with all these attributes (open formats, reusable quality, visualized) on an open source platform for data.")])]),t._v(" "),s("p",[t._v("We worked with data that was publicly accessible, and therefore in its post-publication phase. This also informed the way we designed the work, as a set of connected processing and transport steps, very much outside of the publication process itself. While this was acceptable for the scope of the pilot, the real power of the approach we demonstrate here is in integrating it with pre-publication phases of data, via a combined automated and manually curated data process. Indeed, we can see via this pilot the potential to streamline the workflow demonstrated into a complete research data publication process, and would welcome the opportunity to conduct one or more pilots that build on this approach, deeply integrated into pre-publication data workflows.")]),t._v(" "),s("h2",{attrs:{id:"context"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),s("p",[t._v("The UK Data Service offers an online repository where researchers can archive, publish and share research data, called "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Reshare"),s("OutboundLink")],1),t._v(". Reshare exposes an "),s("a",{attrs:{href:"https://www.openarchives.org/pmh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("OAI-PMH"),s("OutboundLink")],1),t._v(" endpoint to facilitate metadata harvesting.")]),t._v(" "),s("p",[s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" is a data workflows web application build around the modular Frictionless Data toolchain, designed to find, share and publish high quality data online. Each entry has a ‘Showcase’ to display data package properties, and preview data with tables and simple visualisations. As well as the Showcase, "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" provides straight-forward direct access to import data into a variety of tools used by researchers; R, Pandas, Python, JavaScript, and SQL. "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Data Packages"),s("OutboundLink")],1),t._v(" can be pushed to "),s("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to create dataset entries.")]),t._v(" "),s("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),s("p",[t._v("We want to investigate the use of the Data Package concept, and Frictionless Data software to facilitate the reuse of data archived in Reshare.")]),t._v(" "),s("p",[t._v("We are especially interested in trialling pipelines to automate data harvesting from UKDS into "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" using Frictionless Data software such as "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-pipelines"),s("OutboundLink")],1),t._v(", and creating appropriate processors to translate widely used statistics file formats, such as "),s("a",{attrs:{href:"https://www.ibm.com/analytics/us/en/technology/spss/",target:"_blank",rel:"noopener noreferrer"}},[t._v("SPSS"),s("OutboundLink")],1),t._v(", to text-based tabular data formats such as CSV.")]),t._v(" "),s("p",[t._v("We chose the Data Package Pipelines library because it provides us with a well tested and mature framework of established processors to work with tabular data from a variety of sources and formats. Custom processors can easily be added to extend pipeline functionality. Pipelines can be configured using a simple declarative specification. Other tools supporting the underlying Frictionless Data specifications, such as "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py/",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py/",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables"),s("OutboundLink")],1),t._v(" can be easily integrated as appropriate.")]),t._v(" "),s("p",[t._v("In this pilot we are trialling tools to:")]),t._v(" "),s("ul",[s("li",[t._v("automate data harvesting from UKDS, to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(", through a data package pipeline.")]),t._v(" "),s("li",[t._v("translate binary data formats (SPSS) to text-based tabular formats.")]),t._v(" "),s("li",[t._v("validate tabular data harvested from UKDS with goodtables.")]),t._v(" "),s("li",[t._v("fix or workaround common data issues identified from validation report, in the source-spec")]),t._v(" "),s("li",[t._v("correct file encoding")]),t._v(" "),s("li",[t._v("skip non-data rows")]),t._v(" "),s("li",[t._v("skip specified validation checks (duplicate-rows)")]),t._v(" "),s("li",[t._v("specify header rows in csv files")]),t._v(" "),s("li",[t._v("explicitly defining tabular headers")]),t._v(" "),s("li",[t._v("trial the "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" API with real-world data")]),t._v(" "),s("li",[t._v("use the Showcase features of "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to provide instance data previews and visualisations.")])]),t._v(" "),s("h3",{attrs:{id:"the-work"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The Work")]),t._v(" "),s("h4",{attrs:{id:"what-did-we-do"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[t._v("#")]),t._v(" What Did We Do")]),t._v(" "),s("p",[t._v("During the pilot, we focussed on creating a reusable pipeline of processors to harvest data and dataset metadata from the UKDS Reshare service, and output valid Data Packages with tabular resources. Each pipeline processor step was created as a separate module to facilitate testing and reuse in other similar pipelines.")]),t._v(" "),s("p",[t._v("UKDS datasets were selected from "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/cgi/stats/report/most_popular_eprints",target:"_blank",rel:"noopener noreferrer"}},[t._v("the UKDS list"),s("OutboundLink")],1),t._v(". Entries were selected based on the data format we intended to write processors for (.csv, .tsv, xls, or .sav), how the dataset might help demonstrate various aspects of the pipeline, and how well they might lend themselves to visualisation on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Below is an outline of the pipeline flow from UKDS Reshare Archive to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" entry:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(435),alt:"pipeline flow from UKDS Reshare Archive to datahub.io"}}),s("br"),t._v(" "),s("em",[t._v("pipeline flow from UKDS Reshare Archive to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1)])]),t._v(" "),s("h5",{attrs:{id:"specifying-an-entry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#specifying-an-entry"}},[t._v("#")]),t._v(" Specifying an Entry")]),t._v(" "),s("p",[t._v("We wanted to ensure that each UKDS dataset to be maintained on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" could be easily configured to specify where to harvest its resource data and dataset metadata. We also wanted to add other configuration details to help customise the pipeline to work with tricky resources, and view specifications for subsequent visualisation on "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The source-spec for each Reshare entry defines a list of URLs for each resource in the dataset that we’re interested in harvesting, and the resource format (csv, tsv, xls, or spss).")]),t._v(" "),s("p",[t._v("If an OAI ID is provided, it will be used to harvest dataset metadata from the Reshare OAI endpoint.")]),t._v(" "),s("p",[t._v("As well as defining source locations, we also want to provide a way to customise downstream processor behaviour, to help work around potential resource issues.")]),t._v(" "),s("p",[t._v("Below is an example yaml source-spec for two entries, demonstrating various configuration options.")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("entries")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("civil-servant-survey")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# entry name")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# a list of sources")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851401/10/Coded_SurveyData.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851401/2/key%20%283%29.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("goodtables")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# custom processor config for goodtables")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_checks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" duplicate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("row\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851401")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# OAI ID to harvest dataset metadata")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("uk-gov-petitions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851614/1/gov_pet_metadata.tab\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" tsv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# custom processor config for tabulator")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" utf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# explicitly define source file encoding")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# explicitly define missing column headers")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" id\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" title\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" department\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" starting\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" closing\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851614")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("views")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" views/petitions"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("view.json\n")])])]),s("p",[t._v("Sources in the first entry, "),s("em",[t._v("civil-servant-survey")]),t._v(", contain duplicate rows, which would normally fail goodtables validation. Here we will allow the "),s("code",[t._v("duplicate-row")]),t._v(" check to be skipped.")]),t._v(" "),s("p",[t._v("The source in the second entry has the wrong character encoding and no headers declared. We can fix these issues to allow the pipeline to process the resource by explicitly specifying the file encoding, and declaring the column headers.")]),t._v(" "),s("h4",{attrs:{id:"data-set-and-resource-harvest"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data-set-and-resource-harvest"}},[t._v("#")]),t._v(" Data Set and Resource Harvest")]),t._v(" "),s("p",[t._v("We identified that Reshare has an OAI-PMH2 compatible endpoint to harvest information about each Reshare data set. So we created an "),s("code",[t._v("ukds.add_oai_metadata")]),t._v(" pipeline processor. OAI metadata is compatible with Dublin Core Elements, and the processor translates this into Data Package compatible properties.")]),t._v(" "),s("p",[t._v("Resources are added to the newly created Data Package and downloaded from the URLs defined in the yaml configuration. We support adding SPSS (.sav), CSV, TSV and XLS file formats.")]),t._v(" "),s("p",[t._v("To support the widely used SPSS format, we created an "),s("code",[t._v("spss.add_spss processor")]),t._v(" that makes use of the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-spss-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-spss"),s("OutboundLink")],1),t._v(" plugin to read SPSS files and create tableschema descriptors from them.")]),t._v(" "),s("h4",{attrs:{id:"validation-reports-and-common-issues"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#validation-reports-and-common-issues"}},[t._v("#")]),t._v(" Validation Reports and Common Issues")]),t._v(" "),s("p",[t._v("To help ensure data quality, we want to validate the harvested tabular data before continuing the pipeline. We created a "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-goodtables",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("goodtables.validate")]),t._v(" processor"),s("OutboundLink")],1),t._v(", which will write a validation report for each resource. If a resource fails to validate against its schema, or has other data issues, the pipeline will fail. Errors can be identified from validation reports, fixed, and the pipeline re-run.")]),t._v(" "),s("p",[t._v("Below are examples of issues revealed by validation that can occur when working with real-world data.")]),t._v(" "),s("h5",{attrs:{id:"au-pairing-after-the-au-pair-scheme-specifying-a-xls-sheet-and-working-around-non-data-rows"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#au-pairing-after-the-au-pair-scheme-specifying-a-xls-sheet-and-working-around-non-data-rows"}},[t._v("#")]),t._v(" “Au pairing after the au pair scheme”: specifying a xls sheet, and working around non-data rows")]),t._v(" "),s("p",[t._v("The "),s("a",{attrs:{href:"http://reshare.ukdataservice.ac.uk/851656/",target:"_blank",rel:"noopener noreferrer"}},[t._v("“Au Pairing” dataset"),s("OutboundLink")],1),t._v(" has a single .xls resource we’re interested in harvesting. The file contains four sheets, and we’re interested in the second one, which contains the data. So we specify our entry:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("au-pairing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851656/6/GumtreeAds_AuPairsAnalysis1.xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sheet")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# use sheet 2 in the file")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851656")]),t._v("\n")])])]),s("p",[t._v("Notice we have indicated which sheet in the file to use.")]),t._v(" "),s("p",[t._v("The data sheet has a single header row, but it also has this header row repeated at intervals throughout the data, presumably to aid the human reader when reviewing the data manually.")]),t._v(" "),s("p",[s("img",{attrs:{src:a(436),alt:""}}),s("br"),t._v(" "),s("em",[t._v("screengrab of the UKDS “Au Pairing” datasheet")])]),t._v(" "),s("p",[t._v("For machine processing, this isn’t ideal. In fact, it will fail our goodtables validation processor with the following (truncated) report:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"time"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.466")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"valid"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean important"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"error-count"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"table-count"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"tables"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"errors"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"duplicate-row"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Row 347 is duplicated to row(s) 236"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"row-number"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("347")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"column-number"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null important"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"row"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"happy/energetic/caring/loving outlook required"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CV requested"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"gender specified"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cooking"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("...")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("You can find the full report "),s("a",{attrs:{href:"https://gist.github.com/brew/8401e2875ec6d829baf95b79cd677e28",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The report tells us there are 13 errors, and lists where they are. In this case they indicate that duplicate rows are present (the repeated header). This can either be fixed within Reshare, or we can add a parameter to our entry specification to skip each row that contains the duplicate header:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("au-pairing")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851656/6/GumtreeAds_AuPairsAnalysis1.xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" xls\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sheet")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_rows")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("237")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("292")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("348")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("402")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("458")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("511")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("564")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("618")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("673")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("726")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("779")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("832")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("886")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("937")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("990")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("goodtables")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("skip_checks")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" duplicate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("row\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851656")]),t._v("\n")])])]),s("p",[t._v("Above we’ve added a "),s("code",[t._v("skip_rows")]),t._v(" parameter with a list of row numbers to skip when generating the data package. We also instruct goodtables to skip the "),s("code",[t._v("duplicate-row")]),t._v(" check."),s("br"),t._v("\nThe outputted csv resource file will no longer contain rows with the duplicate header.")]),t._v(" "),s("h5",{attrs:{id:"uk-government-petitions-wrong-file-encoding-and-specifying-missing-headers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#uk-government-petitions-wrong-file-encoding-and-specifying-missing-headers"}},[t._v("#")]),t._v(" “UK government petitions”: wrong file encoding, and specifying missing headers")]),t._v(" "),s("p",[t._v("The “"),s("a",{attrs:{href:"http://gov.uk/",target:"_blank",rel:"noopener noreferrer"}},[t._v("gov.uk"),s("OutboundLink")],1),t._v(" petitions” dataset has a TSV data file we’re interested in. However, it has been saved with the wrong character encoding and attempting to open may return an error, or display some characters incorrectly.")]),t._v(" "),s("p",[t._v("Additionally, there is no header row specified at the top of the file, so the resulting data package won’t have the correct header information in the resource’s schema.")]),t._v(" "),s("p",[t._v("We can fix both of these issues in our entry specification:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("uk-gov-petitions")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//reshare.ukdataservice.ac.uk/851614/1/gov_pet_metadata.tab\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" tsv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("encoding")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" utf"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# specify file encoding")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# define missing headers")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" id\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" title\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" department\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" starting\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" closing\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("oai-id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("851614")]),t._v("\n")])])]),s("p",[t._v("Above, we have defined the character encoding we want to use when opening the file, and we’ve explicitly defined the headers to use. These headers will be added to the first row of the outputted csv resource file in the data package.")]),t._v(" "),s("p",[t._v("We can also use the "),s("code",[t._v("headers")]),t._v(" parameter to define which row contains header information. By default this is the first row. However, sometimes a data file will have the headers on a different row:")]),t._v(" "),s("p",[s("img",{attrs:{src:a(437),alt:""}}),s("br"),t._v(" "),s("em",[t._v("screengrab of the UKDS “Government Petitions” datasheet")])]),t._v(" "),s("p",[t._v("This example file has its headers defined in row three, with other information, and an empty row in the first two rows. We can tell our pipeline which row contains headers by specifying it in the entry configuration:")]),t._v(" "),s("div",{staticClass:"language-yaml extra-class"},[s("pre",{pre:!0,attrs:{class:"language-yaml"}},[s("code",[s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("example-entry")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("source")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("//www.newcastle.gov.uk/sites/drupalncc.newcastle.gov.uk/files/wwwfileroot/your"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("council/local_transparency/january_2012.csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("tabulator")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("headers")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# specifying which row contains headers")]),t._v("\n")])])]),s("h4",{attrs:{id:"add-data-package-views"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-data-package-views"}},[t._v("#")]),t._v(" Add Data Package Views")]),t._v(" "),s("p",[t._v("View specs can be added to the data package to enable "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" to create visualisations from resource data in the data package. The "),s("code",[t._v("views")]),t._v(" property is a list of file paths to json files containing "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/views/",target:"_blank",rel:"noopener noreferrer"}},[t._v("view-spec"),s("OutboundLink")],1),t._v(" compatible views.")]),t._v(" "),s("p",[t._v("Currently, "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" supports views written either with a ‘simple’ views-spec, or using Vega (v 2.6.5). See "),s("a",{attrs:{href:"https://datahub.io/docs/features/views",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io docs"),s("OutboundLink")],1),t._v(" for more details about the supported views-spec.")]),t._v(" "),s("h4",{attrs:{id:"push-to-datahub-io"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#push-to-datahub-io"}},[t._v("#")]),t._v(" Push to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1)]),t._v(" "),s("p",[t._v("Once the harvesting pipeline has been run the resulting data packages are pushed to "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" using the "),s("a",{attrs:{href:"https://github.com/datahq/datahub-cli",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("datahub.dump.to_datahub")]),s("OutboundLink")],1),t._v(" processor.")]),t._v(" "),s("p",[t._v("This creates or updates an entry for the package on datahub. If a view has been defined in the entry configuration, this will be created on the "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" entry Showcase page.")]),t._v(" "),s("h3",{attrs:{id:"review"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),s("p",[t._v("We were able to demonstrate that a data processing pipeline using Frictionless Data tools can facilitate the automated harvesting, validation, transformation, and upload to a data package-compatible third-party service, based on a simple configuration.")]),t._v(" "),s("h3",{attrs:{id:"next-steps"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),s("p",[t._v("The pilot data package pipeline runs locally in a development environment, but given each processor has been written as a separate module, these could be used within any pipeline. "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" uses datapackage-pipelines within its infrastructure, and the processors developed for this project could be used within "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" itself to facilitate the automatic harvesting of datasets from OAI-PMH enabled data sources.")]),t._v(" "),s("p",[t._v("Once a pipeline is in place, it can be scheduled to run each day (or week, month, etc.). This would ensure "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(" is up-to-date with data on UKDS Reshare.")]),t._v(" "),s("p",[t._v("Working with ‘real-world’ data from UKDS Reshare has helped to identify and prioritise improvements and future features for "),s("a",{attrs:{href:"http://datahub.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h3",{attrs:{id:"additional-resources"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[t._v("#")]),t._v(" Additional Resources")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-ukds",target:"_blank",rel:"noopener noreferrer"}},[t._v("The main code repository for this pilot"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("A framework for processing data packages in pipelines of modular components"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-spss",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor for SPSS file formats"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines-goodtables",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor for validating tabular data using goodtables-py"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("li",[s("a",{attrs:{href:"https://github.com/datahq/datapackage-pipelines-datahub",target:"_blank",rel:"noopener noreferrer"}},[t._v("A Data Package Pipelines processor to push data packages to datahub.io"),s("OutboundLink")],1),t._v(".")])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/190.fa5c60b6.js b/assets/js/190.e85429fb.js similarity index 98% rename from assets/js/190.fa5c60b6.js rename to assets/js/190.e85429fb.js index 9b1b7191d..71bf2e92c 100644 --- a/assets/js/190.fa5c60b6.js +++ b/assets/js/190.e85429fb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{729:function(e,a,r){"use strict";r.r(a);var o=r(29),t=Object(o.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"junte-se-a-comunidade-de-frictionless-data-para-dois-dias-de-hackathon-virtual-em-7-e-8-de-outubro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#junte-se-a-comunidade-de-frictionless-data-para-dois-dias-de-hackathon-virtual-em-7-e-8-de-outubro"}},[e._v("#")]),e._v(" Junte-se à comunidade de Frictionless Data para dois dias de Hackathon virtual em 7 e 8 de Outubro!")]),e._v(" "),r("blockquote",[r("p",[e._v("As inscrições já estão abertas no formulário: "),r("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://forms.gle/ZhrVfSBrNy2UPRZc9"),r("OutboundLink")],1)])]),e._v(" "),r("h2",{attrs:{id:"o-que-e-um-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#o-que-e-um-hackathon"}},[e._v("#")]),e._v(" O que é um hackathon?")]),e._v(" "),r("p",[e._v("Você irá trabalhar com um grupo de outros usuários do Frictionless para criar novos protótipos baseados no código aberto do projeto. Por exemplo: usar a nova ferramenta "),r("a",{attrs:{href:"https://livemark.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),r("OutboundLink")],1),e._v(" para criar sites de storytelling de dados ou o "),r("a",{attrs:{href:"https://components.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("React Components"),r("OutboundLink")],1),e._v(" para adicionar a camada de validação de dados da sua aplicação.")]),e._v(" "),r("h2",{attrs:{id:"quem-pode-participar-deste-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quem-pode-participar-deste-hackathon"}},[e._v("#")]),e._v(" Quem pode participar deste hackathon?")]),e._v(" "),r("p",[e._v("Nós estamos buscando contribuições de todos os tamanhos e níveis de habilidades! Algumas habilidades que você poderá trazer incluem: programação em Python (ou outras linguagens também!), escrever documentação, gestão de projetos, design, muitas ideias e muito entusiasmo! Você estará em um time para que vocês possam aprender e ajudar uns aos outros. Você não precisa ser familiarizado com o Frictionless ainda - poderá aprender durante o evento.")]),e._v(" "),r("h2",{attrs:{id:"por-que-eu-deveria-participar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#por-que-eu-deveria-participar"}},[e._v("#")]),e._v(" Por que eu deveria participar?")]),e._v(" "),r("p",[e._v("Em primeiro lugar, porque vai ser divertido! Você conhecerá outros usuários do Frictionless e aprenderá algo novo. Esta também é uma oportunidade em que você terá o suporte contínuo da principal equipe do Frictionless para ajudar a realizar seu protótipo. Além disso, haverá prêmios (detalhes em breve).")]),e._v(" "),r("h2",{attrs:{id:"quando-o-hackathon-ocorrera"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quando-o-hackathon-ocorrera"}},[e._v("#")]),e._v(" Quando o hackathon ocorrerá?")]),e._v(" "),r("p",[e._v("O hackathon será virtual e ocorrerá de 7 a 8 de outubro. O evento terá início de madrugada em 7 de outubro e terminará de tarde em 8 de outubro no horário brasileiro (os horários exatos serão anunciados em breve). Isso permitirá que pessoas de todo o mundo participem em um período que seja bom para elas. Estaremos usando Github e Zoom para coordenar e trabalhar virtualmente. As equipes serão capazes de se formar desde antes para que possam se organizar e estarem prontos quando a hora chegar.")]),e._v(" "),r("h2",{attrs:{id:"quero-me-inscrever"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quero-me-inscrever"}},[e._v("#")]),e._v(" Quero me inscrever!")]),e._v(" "),r("p",[e._v("Use "),r("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("este formulário"),r("OutboundLink")],1),e._v(" para se registrar. O evento será gratuito e também teremos algumas bolsas para participantes que, de outra forma, não poderiam comparecer. Inscreva-se para uma bolsa de U$ 300 usando este "),r("a",{attrs:{href:"https://forms.gle/jwxVYjDYs31t1YmKA",target:"_blank",rel:"noopener noreferrer"}},[e._v("formulário de bolsa"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"quais-projetos-estarao-no-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quais-projetos-estarao-no-hackathon"}},[e._v("#")]),e._v(" Quais projetos estarão no Hackathon?")]),e._v(" "),r("p",[e._v("Os projetos vão desde um plug-in GeoJSON para frictionless-py, à código Python para trabalhar com Datapackages em CKAN, à criação de um site estático para listar todos os conjuntos de dados Frictionless no GitHub até à criação de novos tutoriais para código Frictionless."),r("br"),e._v("\nTodos os projetos serão adicionados ao painel do evento em "),r("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionless-hackathon.herokuapp.com/event/1#top"),r("OutboundLink")],1),e._v(", mantido por "),r("a",{attrs:{href:"https://dribdat.cc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DribDat"),r("OutboundLink")],1),e._v("."),r("br"),e._v("\nInteressado em trabalhar em seu próprio projeto? Envia-nos um email!")]),e._v(" "),r("h2",{attrs:{id:"eu-tenho-duvidas"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#eu-tenho-duvidas"}},[e._v("#")]),e._v(" Eu tenho dúvidas…")]),e._v(" "),r("p",[e._v("Envie um e-mail para "),r("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(" se você tiver dúvidas ou quiser apoiar o Hackathon.")])])}),[],!1,null,null,null);a.default=t.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{730:function(e,a,r){"use strict";r.r(a);var o=r(29),t=Object(o.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"junte-se-a-comunidade-de-frictionless-data-para-dois-dias-de-hackathon-virtual-em-7-e-8-de-outubro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#junte-se-a-comunidade-de-frictionless-data-para-dois-dias-de-hackathon-virtual-em-7-e-8-de-outubro"}},[e._v("#")]),e._v(" Junte-se à comunidade de Frictionless Data para dois dias de Hackathon virtual em 7 e 8 de Outubro!")]),e._v(" "),r("blockquote",[r("p",[e._v("As inscrições já estão abertas no formulário: "),r("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://forms.gle/ZhrVfSBrNy2UPRZc9"),r("OutboundLink")],1)])]),e._v(" "),r("h2",{attrs:{id:"o-que-e-um-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#o-que-e-um-hackathon"}},[e._v("#")]),e._v(" O que é um hackathon?")]),e._v(" "),r("p",[e._v("Você irá trabalhar com um grupo de outros usuários do Frictionless para criar novos protótipos baseados no código aberto do projeto. Por exemplo: usar a nova ferramenta "),r("a",{attrs:{href:"https://livemark.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Livemark"),r("OutboundLink")],1),e._v(" para criar sites de storytelling de dados ou o "),r("a",{attrs:{href:"https://components.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("React Components"),r("OutboundLink")],1),e._v(" para adicionar a camada de validação de dados da sua aplicação.")]),e._v(" "),r("h2",{attrs:{id:"quem-pode-participar-deste-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quem-pode-participar-deste-hackathon"}},[e._v("#")]),e._v(" Quem pode participar deste hackathon?")]),e._v(" "),r("p",[e._v("Nós estamos buscando contribuições de todos os tamanhos e níveis de habilidades! Algumas habilidades que você poderá trazer incluem: programação em Python (ou outras linguagens também!), escrever documentação, gestão de projetos, design, muitas ideias e muito entusiasmo! Você estará em um time para que vocês possam aprender e ajudar uns aos outros. Você não precisa ser familiarizado com o Frictionless ainda - poderá aprender durante o evento.")]),e._v(" "),r("h2",{attrs:{id:"por-que-eu-deveria-participar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#por-que-eu-deveria-participar"}},[e._v("#")]),e._v(" Por que eu deveria participar?")]),e._v(" "),r("p",[e._v("Em primeiro lugar, porque vai ser divertido! Você conhecerá outros usuários do Frictionless e aprenderá algo novo. Esta também é uma oportunidade em que você terá o suporte contínuo da principal equipe do Frictionless para ajudar a realizar seu protótipo. Além disso, haverá prêmios (detalhes em breve).")]),e._v(" "),r("h2",{attrs:{id:"quando-o-hackathon-ocorrera"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quando-o-hackathon-ocorrera"}},[e._v("#")]),e._v(" Quando o hackathon ocorrerá?")]),e._v(" "),r("p",[e._v("O hackathon será virtual e ocorrerá de 7 a 8 de outubro. O evento terá início de madrugada em 7 de outubro e terminará de tarde em 8 de outubro no horário brasileiro (os horários exatos serão anunciados em breve). Isso permitirá que pessoas de todo o mundo participem em um período que seja bom para elas. Estaremos usando Github e Zoom para coordenar e trabalhar virtualmente. As equipes serão capazes de se formar desde antes para que possam se organizar e estarem prontos quando a hora chegar.")]),e._v(" "),r("h2",{attrs:{id:"quero-me-inscrever"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quero-me-inscrever"}},[e._v("#")]),e._v(" Quero me inscrever!")]),e._v(" "),r("p",[e._v("Use "),r("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[e._v("este formulário"),r("OutboundLink")],1),e._v(" para se registrar. O evento será gratuito e também teremos algumas bolsas para participantes que, de outra forma, não poderiam comparecer. Inscreva-se para uma bolsa de U$ 300 usando este "),r("a",{attrs:{href:"https://forms.gle/jwxVYjDYs31t1YmKA",target:"_blank",rel:"noopener noreferrer"}},[e._v("formulário de bolsa"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"quais-projetos-estarao-no-hackathon"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#quais-projetos-estarao-no-hackathon"}},[e._v("#")]),e._v(" Quais projetos estarão no Hackathon?")]),e._v(" "),r("p",[e._v("Os projetos vão desde um plug-in GeoJSON para frictionless-py, à código Python para trabalhar com Datapackages em CKAN, à criação de um site estático para listar todos os conjuntos de dados Frictionless no GitHub até à criação de novos tutoriais para código Frictionless."),r("br"),e._v("\nTodos os projetos serão adicionados ao painel do evento em "),r("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://frictionless-hackathon.herokuapp.com/event/1#top"),r("OutboundLink")],1),e._v(", mantido por "),r("a",{attrs:{href:"https://dribdat.cc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DribDat"),r("OutboundLink")],1),e._v("."),r("br"),e._v("\nInteressado em trabalhar em seu próprio projeto? Envia-nos um email!")]),e._v(" "),r("h2",{attrs:{id:"eu-tenho-duvidas"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#eu-tenho-duvidas"}},[e._v("#")]),e._v(" Eu tenho dúvidas…")]),e._v(" "),r("p",[e._v("Envie um e-mail para "),r("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(" se você tiver dúvidas ou quiser apoiar o Hackathon.")])])}),[],!1,null,null,null);a.default=t.exports}}]); \ No newline at end of file diff --git a/assets/js/191.f7eb3789.js b/assets/js/191.665cc8b3.js similarity index 98% rename from assets/js/191.f7eb3789.js rename to assets/js/191.665cc8b3.js index 263a85e5c..19c2ce390 100644 --- a/assets/js/191.f7eb3789.js +++ b/assets/js/191.665cc8b3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{730:function(t,e,a){"use strict";a.r(e);var o=a(29),r=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"join-the-frictionless-data-community-for-a-two-day-virtual-hackathon-on-7-8-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-frictionless-data-community-for-a-two-day-virtual-hackathon-on-7-8-october"}},[t._v("#")]),t._v(" Join the Frictionless Data community for a two-day virtual Hackathon on 7-8 October!")]),t._v(" "),a("blockquote",[a("p",[t._v("Registration is now open using this form: "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://forms.gle/ZhrVfSBrNy2UPRZc9"),a("OutboundLink")],1)])]),t._v(" "),a("blockquote",[a("p",[t._v("See the Participation Guide at the bottom for more info!")])]),t._v(" "),a("h2",{attrs:{id:"what-s-a-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-s-a-hackathon"}},[t._v("#")]),t._v(" What’s a hackathon?")]),t._v(" "),a("p",[t._v("You’ll work within a group of other Frictionless users to create new project prototypes based on existing Frictionless open source code. For example, use the new "),a("a",{attrs:{href:"https://livemark.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Livemark"),a("OutboundLink")],1),t._v(" tool to create websites that display data-driven storytelling, or use Frictionless React "),a("a",{attrs:{href:"https://components.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Components"),a("OutboundLink")],1),t._v(" to add data validation to your application.")]),t._v(" "),a("h2",{attrs:{id:"who-should-participate-in-this-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#who-should-participate-in-this-hackathon"}},[t._v("#")]),t._v(" Who should participate in this hackathon?")]),t._v(" "),a("p",[t._v("We’re looking for contributions of all sizes and skill levels! Some skills that you would bring include: coding in Python (other languages supported too!), writing documentation, project management, having ideas, design skills, and general enthusiasm! You’ll be in a team, so you can learn from each other and help each other. You don’t have to be familiar with Frictionless yet - you can learn that during the event.")]),t._v(" "),a("h2",{attrs:{id:"why-should-i-participate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-should-i-participate"}},[t._v("#")]),t._v(" Why should I participate?")]),t._v(" "),a("p",[t._v("First of all, it will be fun! You’ll meet other Frictionless users and learn something new. This is also an opportunity where you’ll have the uninterrupted support of the Frictionless core team to help you realize your prototype. Also, there will be prizes (details to be announced later).")]),t._v(" "),a("h2",{attrs:{id:"when-will-the-hackathon-occur"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#when-will-the-hackathon-occur"}},[t._v("#")]),t._v(" When will the hackathon occur?")]),t._v(" "),a("p",[t._v("The hackathon will be virtual and occur on 7-8 October. The event will start at 9am CEST on 7 October, and will end at 6pm CEST on 8 October. This will allow people from around the world to participate during a time that works for them. We will be using Github and Zoom to coordinate and work virtually. Teams will be able to form before the event occurs so you can start coordinating early and hit the ground running.")]),t._v(" "),a("h2",{attrs:{id:"sign-me-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sign-me-up"}},[t._v("#")]),t._v(" Sign me up!")]),t._v(" "),a("p",[t._v("Use "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[t._v("this form"),a("OutboundLink")],1),t._v(" to register. The event will be free, and we will also have some scholarships for attendees that would otherwise be unable to attend. Apply for a $300 scholarship using this "),a("a",{attrs:{href:"https://forms.gle/jwxVYjDYs31t1YmKA",target:"_blank",rel:"noopener noreferrer"}},[t._v("scholarship form"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"what-projects-will-be-at-the-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-projects-will-be-at-the-hackathon"}},[t._v("#")]),t._v(" What projects will be at the Hackathon?")]),t._v(" "),a("p",[t._v("Projects will range from a GeoJSON Plugin for frictionless-py, to Python code to work with Datapackages in CKAN, to creating a static site to list all the Frictionless datasets on GitHub, to creating new tutorials for Frictionless code."),a("br"),t._v("\nAll of the projects will be added to the event dashboard at "),a("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://frictionless-hackathon.herokuapp.com/event/1#top"),a("OutboundLink")],1),t._v(", powered by "),a("a",{attrs:{href:"https://dribdat.cc/",target:"_blank",rel:"noopener noreferrer"}},[t._v("DribDat"),a("OutboundLink")],1),t._v("."),a("br"),t._v("\nInterested in working on your own project? Email us!")]),t._v(" "),a("h2",{attrs:{id:"i-have-questions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#i-have-questions"}},[t._v("#")]),t._v(" I have questions…")]),t._v(" "),a("p",[t._v("Please email us at "),a("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[t._v("frictionlessdata@okfn.org")]),t._v(" if you have questions or would like to support the Hackathon.")]),t._v(" "),a("h1",{attrs:{id:"participation-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#participation-guide"}},[t._v("#")]),t._v(" Participation Guide")]),t._v(" "),a("p",[t._v("("),a("a",{attrs:{href:"https://docs.google.com/document/d/e/2PACX-1vReWY9N26SbveoCM7Ra4wEry8k7a5rCa3UzpBijfU_mmyME58DRDKmu0QUmx75mif4367IZdtLijFzO/pub",target:"_blank",rel:"noopener noreferrer"}},[t._v("Here is a link to the Guide"),a("OutboundLink")],1),t._v(")")]),t._v(" "),a("iframe",{attrs:{width:"730",height:"500",src:"https://docs.google.com/document/d/e/2PACX-1vReWY9N26SbveoCM7Ra4wEry8k7a5rCa3UzpBijfU_mmyME58DRDKmu0QUmx75mif4367IZdtLijFzO/pub?embedded=true"}})])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{732:function(t,e,a){"use strict";a.r(e);var o=a(29),r=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"join-the-frictionless-data-community-for-a-two-day-virtual-hackathon-on-7-8-october"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#join-the-frictionless-data-community-for-a-two-day-virtual-hackathon-on-7-8-october"}},[t._v("#")]),t._v(" Join the Frictionless Data community for a two-day virtual Hackathon on 7-8 October!")]),t._v(" "),a("blockquote",[a("p",[t._v("Registration is now open using this form: "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://forms.gle/ZhrVfSBrNy2UPRZc9"),a("OutboundLink")],1)])]),t._v(" "),a("blockquote",[a("p",[t._v("See the Participation Guide at the bottom for more info!")])]),t._v(" "),a("h2",{attrs:{id:"what-s-a-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-s-a-hackathon"}},[t._v("#")]),t._v(" What’s a hackathon?")]),t._v(" "),a("p",[t._v("You’ll work within a group of other Frictionless users to create new project prototypes based on existing Frictionless open source code. For example, use the new "),a("a",{attrs:{href:"https://livemark.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Livemark"),a("OutboundLink")],1),t._v(" tool to create websites that display data-driven storytelling, or use Frictionless React "),a("a",{attrs:{href:"https://components.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Components"),a("OutboundLink")],1),t._v(" to add data validation to your application.")]),t._v(" "),a("h2",{attrs:{id:"who-should-participate-in-this-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#who-should-participate-in-this-hackathon"}},[t._v("#")]),t._v(" Who should participate in this hackathon?")]),t._v(" "),a("p",[t._v("We’re looking for contributions of all sizes and skill levels! Some skills that you would bring include: coding in Python (other languages supported too!), writing documentation, project management, having ideas, design skills, and general enthusiasm! You’ll be in a team, so you can learn from each other and help each other. You don’t have to be familiar with Frictionless yet - you can learn that during the event.")]),t._v(" "),a("h2",{attrs:{id:"why-should-i-participate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-should-i-participate"}},[t._v("#")]),t._v(" Why should I participate?")]),t._v(" "),a("p",[t._v("First of all, it will be fun! You’ll meet other Frictionless users and learn something new. This is also an opportunity where you’ll have the uninterrupted support of the Frictionless core team to help you realize your prototype. Also, there will be prizes (details to be announced later).")]),t._v(" "),a("h2",{attrs:{id:"when-will-the-hackathon-occur"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#when-will-the-hackathon-occur"}},[t._v("#")]),t._v(" When will the hackathon occur?")]),t._v(" "),a("p",[t._v("The hackathon will be virtual and occur on 7-8 October. The event will start at 9am CEST on 7 October, and will end at 6pm CEST on 8 October. This will allow people from around the world to participate during a time that works for them. We will be using Github and Zoom to coordinate and work virtually. Teams will be able to form before the event occurs so you can start coordinating early and hit the ground running.")]),t._v(" "),a("h2",{attrs:{id:"sign-me-up"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sign-me-up"}},[t._v("#")]),t._v(" Sign me up!")]),t._v(" "),a("p",[t._v("Use "),a("a",{attrs:{href:"https://forms.gle/ZhrVfSBrNy2UPRZc9",target:"_blank",rel:"noopener noreferrer"}},[t._v("this form"),a("OutboundLink")],1),t._v(" to register. The event will be free, and we will also have some scholarships for attendees that would otherwise be unable to attend. Apply for a $300 scholarship using this "),a("a",{attrs:{href:"https://forms.gle/jwxVYjDYs31t1YmKA",target:"_blank",rel:"noopener noreferrer"}},[t._v("scholarship form"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"what-projects-will-be-at-the-hackathon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-projects-will-be-at-the-hackathon"}},[t._v("#")]),t._v(" What projects will be at the Hackathon?")]),t._v(" "),a("p",[t._v("Projects will range from a GeoJSON Plugin for frictionless-py, to Python code to work with Datapackages in CKAN, to creating a static site to list all the Frictionless datasets on GitHub, to creating new tutorials for Frictionless code."),a("br"),t._v("\nAll of the projects will be added to the event dashboard at "),a("a",{attrs:{href:"https://frictionless-hackathon.herokuapp.com/event/1#top",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://frictionless-hackathon.herokuapp.com/event/1#top"),a("OutboundLink")],1),t._v(", powered by "),a("a",{attrs:{href:"https://dribdat.cc/",target:"_blank",rel:"noopener noreferrer"}},[t._v("DribDat"),a("OutboundLink")],1),t._v("."),a("br"),t._v("\nInterested in working on your own project? Email us!")]),t._v(" "),a("h2",{attrs:{id:"i-have-questions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#i-have-questions"}},[t._v("#")]),t._v(" I have questions…")]),t._v(" "),a("p",[t._v("Please email us at "),a("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[t._v("frictionlessdata@okfn.org")]),t._v(" if you have questions or would like to support the Hackathon.")]),t._v(" "),a("h1",{attrs:{id:"participation-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#participation-guide"}},[t._v("#")]),t._v(" Participation Guide")]),t._v(" "),a("p",[t._v("("),a("a",{attrs:{href:"https://docs.google.com/document/d/e/2PACX-1vReWY9N26SbveoCM7Ra4wEry8k7a5rCa3UzpBijfU_mmyME58DRDKmu0QUmx75mif4367IZdtLijFzO/pub",target:"_blank",rel:"noopener noreferrer"}},[t._v("Here is a link to the Guide"),a("OutboundLink")],1),t._v(")")]),t._v(" "),a("iframe",{attrs:{width:"730",height:"500",src:"https://docs.google.com/document/d/e/2PACX-1vReWY9N26SbveoCM7Ra4wEry8k7a5rCa3UzpBijfU_mmyME58DRDKmu0QUmx75mif4367IZdtLijFzO/pub?embedded=true"}})])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/192.5d34a6d0.js b/assets/js/192.3eafaa75.js similarity index 99% rename from assets/js/192.5d34a6d0.js rename to assets/js/192.3eafaa75.js index 32bee4684..77e7eb1d5 100644 --- a/assets/js/192.5d34a6d0.js +++ b/assets/js/192.3eafaa75.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{732:function(t,a,e){"use strict";e.r(a);var r=e(29),s=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frictionless-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data"}},[t._v("#")]),t._v(" Frictionless Data")]),t._v(" "),e("p",[e("big",[e("strong",[t._v("Get a quick introduction to Frictionless in “5 minutes”.")])])],1),t._v(" "),e("p",[t._v("Frictionless Data is a progressive open-source framework for building data infrastructure – data management, data integration, data flows, etc. It includes various data standards and provides software to work with data.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("This introduction assumes some basic knowledge about data. If you are new to working with data we recommend starting with the first module, “What is Data?”, at "),e("a",{attrs:{href:"https://schoolofdata.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("School of Data"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"why-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#why-frictionless"}},[t._v("#")]),t._v(" Why Frictionless?")]),t._v(" "),e("p",[t._v("The Frictionless Data project aims to make it easier to work with data - by reducing common data workflow issues (what we call "),e("em",[t._v("friction")]),t._v("). Frictionless Data consists of two main parts, software and standards.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/structure.png",alt:"Structure"}})]),t._v(" "),e("h3",{attrs:{id:"frictionless-software"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-software"}},[t._v("#")]),t._v(" Frictionless Software")]),t._v(" "),e("p",[t._v("The software is based on a suite of data standards that have been designed to make it easy to describe data structure and content so that data is more interoperable, easier to understand, and quicker to use. There are several aspects to the Frictionless software, including two high-level data frameworks (for Python and JavaScript), 10 low-level libraries for other languages, like R, and also visual interfaces and applications. You can read more about how to use the software (and find documentation) on the "),e("a",{attrs:{href:"/projects"}},[t._v("projects")]),t._v(" page.")]),t._v(" "),e("p",[t._v("For example, here is a validation report created by the "),e("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Repository"),e("OutboundLink")],1),t._v(" software. Data validation is one of the main focuses of Frictionless Data and this is a good visual representation of how the project might help to reveal common problems working with data.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/report.png",alt:"Report"}})]),t._v(" "),e("h3",{attrs:{id:"frictionless-standards"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-standards"}},[t._v("#")]),t._v(" Frictionless Standards")]),t._v(" "),e("p",[t._v("The Standards (aka Specifications) help to describe data. The core specification is called a "),e("strong",[t._v("Data Package")]),t._v(", which is a simple container format used to describe and package a collection of data files. The format provides a contract for data interoperability that supports frictionless delivery, installation and management of data.")]),t._v(" "),e("p",[t._v("A Data Package can contain any kind of data. At the same time, Data Packages can be specialized and enriched for specific types of data so there are, for example, Tabular Data Packages for tabular data, Geo Data Packages for geo data, etc.")]),t._v(" "),e("p",[t._v("To learn more about Data Packages and the other specifications, check out the "),e("a",{attrs:{href:"/projects"}},[t._v("projects")]),t._v(" page or watch this video to learn more about the motivation behind packaging data.")]),t._v(" "),e("iframe",{attrs:{width:"730",height:"400",src:"https://www.youtube.com/embed/lWHKVXxuci0",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),t._v(" "),e("h2",{attrs:{id:"how-can-i-use-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-use-frictionless"}},[t._v("#")]),t._v(" How can I use Frictionless?")]),t._v(" "),e("p",[t._v("You can use Frictionless to describe your data (add metadata and schemas), validate your data, and transform your data. You can also write custom data standards based on the Frictionless specifications. For example, you can use Frictionless to:")]),t._v(" "),e("ul",[e("li",[t._v("easily add metadata to your data before you publish it.")]),t._v(" "),e("li",[t._v("quickly validate your data to check the data quality before you share it.")]),t._v(" "),e("li",[t._v("build a declarative pipeline to clean and process data before analyzing it.")])]),t._v(" "),e("p",[t._v("Usually, new users start by trying out the software. The software gives you an ability to work with Frictionless using visual interfaces or programming languages.")]),t._v(" "),e("p",[t._v("As a new user you might not need to dive too deeply into the standards as our software incapsulates its concepts. On the other hand, once you feel comfortable with Frictionless Software you might start reading Frictionless Standards to get a better understanding of the things happening under the hood or to start creating your metadata descriptors more proficiently.")]),t._v(" "),e("h2",{attrs:{id:"who-uses-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#who-uses-frictionless"}},[t._v("#")]),t._v(" Who uses Frictionless?")]),t._v(" "),e("p",[t._v("The Frictionless Data project has a very diverse audience, ranging from climate scientists, to humanities researchers, to government data centers.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/audience.png",alt:"Audience"}})]),t._v(" "),e("p",[t._v("During our project development we have had various collaborations with institutions and individuals. We keep track of our "),e("a",{attrs:{href:"/tag/pilot"}},[t._v("Pilots")]),t._v(" and "),e("a",{attrs:{href:"/tag/case-studies"}},[t._v("Case Studies")]),t._v(" with blog posts, and we welcome our community to share their experiences using our standards and software. Generally speaking, you can apply Frictionless in almost every field where you work with data. Your Frictionless use case could range from a simple data table validation to writing complex data pipelines.")]),t._v(" "),e("h2",{attrs:{id:"ready-for-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ready-for-more"}},[t._v("#")]),t._v(" Ready for more?")]),t._v(" "),e("p",[t._v("As a next step, we recommend you start using one of our "),e("a",{attrs:{href:"/projects"}},[t._v("Software")]),t._v(" projects, get known our "),e("a",{attrs:{href:"/projects"}},[t._v("Standards")]),t._v(" or read about other user experience in "),e("a",{attrs:{href:"/tag/pilot"}},[t._v("Pilots")]),t._v(" and "),e("a",{attrs:{href:"/tag/case-studies"}},[t._v("Case Studies")]),t._v(" sections. Also, we welcome you to reach out on "),e("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack"),e("OutboundLink")],1),t._v(" or "),e("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Matrix"),e("OutboundLink")],1),t._v(" to say hi or ask questions!")])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{735:function(t,a,e){"use strict";e.r(a);var r=e(29),s=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frictionless-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data"}},[t._v("#")]),t._v(" Frictionless Data")]),t._v(" "),e("p",[e("big",[e("strong",[t._v("Get a quick introduction to Frictionless in “5 minutes”.")])])],1),t._v(" "),e("p",[t._v("Frictionless Data is a progressive open-source framework for building data infrastructure – data management, data integration, data flows, etc. It includes various data standards and provides software to work with data.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("This introduction assumes some basic knowledge about data. If you are new to working with data we recommend starting with the first module, “What is Data?”, at "),e("a",{attrs:{href:"https://schoolofdata.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("School of Data"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"why-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#why-frictionless"}},[t._v("#")]),t._v(" Why Frictionless?")]),t._v(" "),e("p",[t._v("The Frictionless Data project aims to make it easier to work with data - by reducing common data workflow issues (what we call "),e("em",[t._v("friction")]),t._v("). Frictionless Data consists of two main parts, software and standards.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/structure.png",alt:"Structure"}})]),t._v(" "),e("h3",{attrs:{id:"frictionless-software"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-software"}},[t._v("#")]),t._v(" Frictionless Software")]),t._v(" "),e("p",[t._v("The software is based on a suite of data standards that have been designed to make it easy to describe data structure and content so that data is more interoperable, easier to understand, and quicker to use. There are several aspects to the Frictionless software, including two high-level data frameworks (for Python and JavaScript), 10 low-level libraries for other languages, like R, and also visual interfaces and applications. You can read more about how to use the software (and find documentation) on the "),e("a",{attrs:{href:"/projects"}},[t._v("projects")]),t._v(" page.")]),t._v(" "),e("p",[t._v("For example, here is a validation report created by the "),e("a",{attrs:{href:"https://repository.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Repository"),e("OutboundLink")],1),t._v(" software. Data validation is one of the main focuses of Frictionless Data and this is a good visual representation of how the project might help to reveal common problems working with data.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/report.png",alt:"Report"}})]),t._v(" "),e("h3",{attrs:{id:"frictionless-standards"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-standards"}},[t._v("#")]),t._v(" Frictionless Standards")]),t._v(" "),e("p",[t._v("The Standards (aka Specifications) help to describe data. The core specification is called a "),e("strong",[t._v("Data Package")]),t._v(", which is a simple container format used to describe and package a collection of data files. The format provides a contract for data interoperability that supports frictionless delivery, installation and management of data.")]),t._v(" "),e("p",[t._v("A Data Package can contain any kind of data. At the same time, Data Packages can be specialized and enriched for specific types of data so there are, for example, Tabular Data Packages for tabular data, Geo Data Packages for geo data, etc.")]),t._v(" "),e("p",[t._v("To learn more about Data Packages and the other specifications, check out the "),e("a",{attrs:{href:"/projects"}},[t._v("projects")]),t._v(" page or watch this video to learn more about the motivation behind packaging data.")]),t._v(" "),e("iframe",{attrs:{width:"730",height:"400",src:"https://www.youtube.com/embed/lWHKVXxuci0",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),t._v(" "),e("h2",{attrs:{id:"how-can-i-use-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-can-i-use-frictionless"}},[t._v("#")]),t._v(" How can I use Frictionless?")]),t._v(" "),e("p",[t._v("You can use Frictionless to describe your data (add metadata and schemas), validate your data, and transform your data. You can also write custom data standards based on the Frictionless specifications. For example, you can use Frictionless to:")]),t._v(" "),e("ul",[e("li",[t._v("easily add metadata to your data before you publish it.")]),t._v(" "),e("li",[t._v("quickly validate your data to check the data quality before you share it.")]),t._v(" "),e("li",[t._v("build a declarative pipeline to clean and process data before analyzing it.")])]),t._v(" "),e("p",[t._v("Usually, new users start by trying out the software. The software gives you an ability to work with Frictionless using visual interfaces or programming languages.")]),t._v(" "),e("p",[t._v("As a new user you might not need to dive too deeply into the standards as our software incapsulates its concepts. On the other hand, once you feel comfortable with Frictionless Software you might start reading Frictionless Standards to get a better understanding of the things happening under the hood or to start creating your metadata descriptors more proficiently.")]),t._v(" "),e("h2",{attrs:{id:"who-uses-frictionless"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#who-uses-frictionless"}},[t._v("#")]),t._v(" Who uses Frictionless?")]),t._v(" "),e("p",[t._v("The Frictionless Data project has a very diverse audience, ranging from climate scientists, to humanities researchers, to government data centers.")]),t._v(" "),e("p",[e("img",{attrs:{src:"/img/introduction/audience.png",alt:"Audience"}})]),t._v(" "),e("p",[t._v("During our project development we have had various collaborations with institutions and individuals. We keep track of our "),e("a",{attrs:{href:"/tag/pilot"}},[t._v("Pilots")]),t._v(" and "),e("a",{attrs:{href:"/tag/case-studies"}},[t._v("Case Studies")]),t._v(" with blog posts, and we welcome our community to share their experiences using our standards and software. Generally speaking, you can apply Frictionless in almost every field where you work with data. Your Frictionless use case could range from a simple data table validation to writing complex data pipelines.")]),t._v(" "),e("h2",{attrs:{id:"ready-for-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ready-for-more"}},[t._v("#")]),t._v(" Ready for more?")]),t._v(" "),e("p",[t._v("As a next step, we recommend you start using one of our "),e("a",{attrs:{href:"/projects"}},[t._v("Software")]),t._v(" projects, get known our "),e("a",{attrs:{href:"/projects"}},[t._v("Standards")]),t._v(" or read about other user experience in "),e("a",{attrs:{href:"/tag/pilot"}},[t._v("Pilots")]),t._v(" and "),e("a",{attrs:{href:"/tag/case-studies"}},[t._v("Case Studies")]),t._v(" sections. Also, we welcome you to reach out on "),e("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack"),e("OutboundLink")],1),t._v(" or "),e("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Matrix"),e("OutboundLink")],1),t._v(" to say hi or ask questions!")])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/194.61f7bad5.js b/assets/js/194.510cc9d4.js similarity index 99% rename from assets/js/194.61f7bad5.js rename to assets/js/194.510cc9d4.js index 669058180..0a8f102e3 100644 --- a/assets/js/194.61f7bad5.js +++ b/assets/js/194.510cc9d4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{735:function(t,a,e){"use strict";e.r(a);var r=e(29),n=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frictionless-universe"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-universe"}},[t._v("#")]),t._v(" Frictionless Universe")]),t._v(" "),e("p",[t._v("Community-driven projects based on Frictionless Software and Standards:")]),t._v(" "),e("h2",{attrs:{id:"visual"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#visual"}},[t._v("#")]),t._v(" Visual")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/qcif/data-curator",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Curator"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/delimiter",target:"_blank",rel:"noopener noreferrer"}},[t._v("Delimiter"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"python"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[t._v("#")]),t._v(" Python")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-py"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-py"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-pipelines"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-ckan-mapper",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-ckan-mapper"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"javascript"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#javascript"}},[t._v("#")]),t._v(" JavaScript")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-render-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-render-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/components",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-components"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"r"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#r"}},[t._v("#")]),t._v(" R")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-r"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-r"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-r"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"ruby"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ruby"}},[t._v("#")]),t._v(" Ruby")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-rb",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-rb"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-rb",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-rb"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"php"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#php"}},[t._v("#")]),t._v(" PHP")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-php"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-php"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"java"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java"}},[t._v("#")]),t._v(" Java")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-java"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-java"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"swift"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#swift"}},[t._v("#")]),t._v(" Swift")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-swift"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-swift"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"go"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#go"}},[t._v("#")]),t._v(" Go")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-go"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-go"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"julia"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#julia"}},[t._v("#")]),t._v(" Julia")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage.jl",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-jl"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema.jl",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-jl"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{734:function(t,a,e){"use strict";e.r(a);var r=e(29),n=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"frictionless-universe"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-universe"}},[t._v("#")]),t._v(" Frictionless Universe")]),t._v(" "),e("p",[t._v("Community-driven projects based on Frictionless Software and Standards:")]),t._v(" "),e("h2",{attrs:{id:"visual"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#visual"}},[t._v("#")]),t._v(" Visual")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/qcif/data-curator",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Curator"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/delimiter",target:"_blank",rel:"noopener noreferrer"}},[t._v("Delimiter"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"python"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[t._v("#")]),t._v(" Python")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-py"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-py"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-pipelines"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-ckan-mapper",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-ckan-mapper"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"javascript"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#javascript"}},[t._v("#")]),t._v(" JavaScript")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-render-js",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-render-js"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/components",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-components"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"r"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#r"}},[t._v("#")]),t._v(" R")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("frictionless-r"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-r"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-r"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"ruby"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ruby"}},[t._v("#")]),t._v(" Ruby")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-rb",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-rb"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-rb",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-rb"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"php"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#php"}},[t._v("#")]),t._v(" PHP")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-php"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-php",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-php"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"java"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java"}},[t._v("#")]),t._v(" Java")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-java"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-java"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"swift"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#swift"}},[t._v("#")]),t._v(" Swift")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-swift"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-swift",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-swift"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"go"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#go"}},[t._v("#")]),t._v(" Go")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-go"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-go"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"julia"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#julia"}},[t._v("#")]),t._v(" Julia")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage.jl",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-jl"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema.jl",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-jl"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/195.0f259543.js b/assets/js/195.1d228321.js similarity index 99% rename from assets/js/195.0f259543.js rename to assets/js/195.1d228321.js index 3be426ed4..012cfc29c 100644 --- a/assets/js/195.0f259543.js +++ b/assets/js/195.1d228321.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{737:function(e,t,o){"use strict";o.r(t);var a=o(29),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"code-of-conduct"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#code-of-conduct"}},[e._v("#")]),e._v(" Code of Conduct")]),e._v(" "),o("h2",{attrs:{id:"introduction"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),o("p",[e._v("The goal of this Code of Conduct is to make explicit the type of participation that is expected, and the behaviour that is unacceptable. These guidelines are to be adhered to by all Frictionless Data team members, all partners on a given project, and all other participants.")]),e._v(" "),o("p",[e._v("This Code of Conduct applies to all the projects that Frictionless Data hosts/organises and describes the standards of behaviour that we expect all our partners to observe when taking part in our projects. We expect all voices to be welcomed at our events and strive to empower everyone to feel able to participate fully.")]),e._v(" "),o("h2",{attrs:{id:"this-code-is-applicable-to"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#this-code-is-applicable-to"}},[e._v("#")]),e._v(" This Code is applicable to")]),e._v(" "),o("ul",[o("li",[e._v("All public areas of participation, including but not limited to discussion forums, mailing lists, issue trackers, social media, and in-person venues such as conferences and workshops.")]),e._v(" "),o("li",[e._v("All private areas of participation, including but not limited to email and closed platforms such as Slack or Matrix.")]),e._v(" "),o("li",[e._v("Any project that Frictionless Data leads on or partners in.")])]),e._v(" "),o("h2",{attrs:{id:"what-we-expect"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-we-expect"}},[e._v("#")]),e._v(" What we expect")]),e._v(" "),o("p",[e._v("The following behaviours are expected from all project participants, including Frictionless Data core team members, project partners, and all other participants.")]),e._v(" "),o("ul",[o("li",[e._v("Lead by example by being considerate in your actions and decisions.")]),e._v(" "),o("li",[e._v("Be respectful in speech and action, especially in disagreement.")]),e._v(" "),o("li",[e._v("Refrain from demeaning, discriminatory, or harassing behaviour and speech.")]),e._v(" "),o("li",[e._v("We all make mistakes, and when we do, we take responsibility for them.")]),e._v(" "),o("li",[e._v("Be mindful of your fellow participants. If someone is in distress, or if someone is in violation of these guidelines, reach out.")])]),e._v(" "),o("h2",{attrs:{id:"what-we-find-unacceptable"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-we-find-unacceptable"}},[e._v("#")]),e._v(" What we find unacceptable")]),e._v(" "),o("p",[e._v("We do not tolerate harassment of participants at our events in any form. Harassment includes offensive verbal comments, deliberate intimidation, harassing photography or recording, inappropriate physical contact and unwanted sexual attention. Anything that makes someone feel uncomfortable could be deemed harassment. For more information and examples about what constitutes harassment, please refer to "),o("a",{attrs:{href:"https://www.opencon2018.org/code_of_conduct",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCon’s Code of Conduct in Brief"),o("OutboundLink")],1),e._v(" and the "),o("a",{attrs:{href:"http://openhardware.science/gosh-2017/gosh-code-of-conduct/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gathering for Open Source Hardware’s examples of behaviour"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("This non-exhaustive list shows examples of behaviours that are unacceptable from all participants:")]),e._v(" "),o("ul",[o("li",[e._v("Violence and threats of violence.")]),e._v(" "),o("li",[e._v("Derogatory comments of any form, including related to gender and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, religion, age, or socio-economic status.")]),e._v(" "),o("li",[e._v("Sexual images or behaviour.")]),e._v(" "),o("li",[e._v("Posting or threatening to post other people’s personally identifying information (“doxing”).")]),e._v(" "),o("li",[e._v("Deliberate misgendering or use of former names, or improper titles.")]),e._v(" "),o("li",[e._v("Inappropriate photography or recording.")]),e._v(" "),o("li",[e._v("Physical contact without affirmative consent.")]),e._v(" "),o("li",[e._v("Unwelcome sexual attention. This includes, sexualised comments or jokes; inappropriate touching, groping, and unwelcome sexual advances.")]),e._v(" "),o("li",[e._v("Deliberate intimidation, stalking or following (online or in person).")]),e._v(" "),o("li",[e._v("Sustained disruption of conference events, including talks and presentations.")]),e._v(" "),o("li",[e._v("Advocating for, or encouraging, any of the above behaviour.")])]),e._v(" "),o("h2",{attrs:{id:"consequences-of-unacceptable-behaviour"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#consequences-of-unacceptable-behaviour"}},[e._v("#")]),e._v(" Consequences of unacceptable behaviour")]),e._v(" "),o("p",[e._v("Unacceptable behaviour from any participant in any public or private forum around projects we are involved in, including those with decision-making authority, will not be tolerated.")]),e._v(" "),o("p",[e._v("Anyone asked to stop unacceptable behaviour is expected to comply immediately.")]),e._v(" "),o("p",[e._v("If a participant engages in unacceptable behaviour, any action deemed appropriate will be taken, up to and including a temporary ban, permanent expulsion from participatory forums, or reporting to local law enforcement for criminal offences.")]),e._v(" "),o("h2",{attrs:{id:"reporting"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#reporting"}},[e._v("#")]),e._v(" Reporting")]),e._v(" "),o("p",[e._v("If you are subject to, or witness, unacceptable behaviour, or have any other concerns, please email "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(". We will handle all reports with discretion, and you can report anonymously if you wish using "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSfoly-CZT9ZONcns4uG7BsoxGObRqgTlI6NdfvlYSCRVyy_QQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("In your report, please do your best to include:")]),e._v(" "),o("p",[e._v("Your contact information (unless you wish to report anonymously)")]),e._v(" "),o("ul",[o("li",[e._v("Identifying information (e.g. names, nicknames, pseudonyms) of the participant who has violated the Code of Conduct")]),e._v(" "),o("li",[e._v("The behaviour that was in violation")]),e._v(" "),o("li",[e._v("The approximate time of the behaviour")]),e._v(" "),o("li",[e._v("If possible, where the Code of Conduct violation happened")]),e._v(" "),o("li",[e._v("The circumstances surrounding the incident")]),e._v(" "),o("li",[e._v("Other people involved in the incident")]),e._v(" "),o("li",[e._v("If you believe the incident is ongoing, please let us know")]),e._v(" "),o("li",[e._v("If there is a publicly available record (e.g. mailing list record), please include a link")]),e._v(" "),o("li",[e._v("Any additional helpful information")])]),e._v(" "),o("p",[e._v("We will fully investigate any reports, follow up with the reportee (unless it is an anonymous report), and we will work with the reportee (unless anonymous) to decide what action to take. If the complaint is about someone on the response team, that person will recuse themselves from handling the response.")]),e._v(" "),o("h2",{attrs:{id:"confidentiality"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#confidentiality"}},[e._v("#")]),e._v(" Confidentiality")]),e._v(" "),o("p",[e._v("All reports will be kept confidential. When we discuss incidents with people who are reported, we will anonymize details as much as we can to protect reporter privacy. In some cases we may determine that a public statement will need to be made. If that’s the case, the identities of all victims and reporters will remain confidential unless those individuals instruct us otherwise.")]),e._v(" "),o("h2",{attrs:{id:"license-and-attribution"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#license-and-attribution"}},[e._v("#")]),e._v(" License and attribution")]),e._v(" "),o("p",[e._v("This Code of Conduct is distributed under a "),o("a",{attrs:{href:"https://creativecommons.org/licenses/by-sa/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution-ShareAlike license"),o("OutboundLink")],1),e._v(". It draws heavily on the "),o("a",{attrs:{href:"https://okfn.org/about/code-of-conduct/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation Code of Conduct"),o("OutboundLink")],1),e._v(", which is based on this "),o("a",{attrs:{href:"https://wiki.mozilla.org/Participation/Community_Gatherings/Brazil_2016/Code_of_Conduct",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mozilla Code of Conduct"),o("OutboundLink")],1),e._v(", the School of Data Code of Conduct, and the "),o("a",{attrs:{href:"https://csvconf.com/coc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf Code of Conduct"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{736:function(e,t,o){"use strict";o.r(t);var a=o(29),i=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"code-of-conduct"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#code-of-conduct"}},[e._v("#")]),e._v(" Code of Conduct")]),e._v(" "),o("h2",{attrs:{id:"introduction"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),o("p",[e._v("The goal of this Code of Conduct is to make explicit the type of participation that is expected, and the behaviour that is unacceptable. These guidelines are to be adhered to by all Frictionless Data team members, all partners on a given project, and all other participants.")]),e._v(" "),o("p",[e._v("This Code of Conduct applies to all the projects that Frictionless Data hosts/organises and describes the standards of behaviour that we expect all our partners to observe when taking part in our projects. We expect all voices to be welcomed at our events and strive to empower everyone to feel able to participate fully.")]),e._v(" "),o("h2",{attrs:{id:"this-code-is-applicable-to"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#this-code-is-applicable-to"}},[e._v("#")]),e._v(" This Code is applicable to")]),e._v(" "),o("ul",[o("li",[e._v("All public areas of participation, including but not limited to discussion forums, mailing lists, issue trackers, social media, and in-person venues such as conferences and workshops.")]),e._v(" "),o("li",[e._v("All private areas of participation, including but not limited to email and closed platforms such as Slack or Matrix.")]),e._v(" "),o("li",[e._v("Any project that Frictionless Data leads on or partners in.")])]),e._v(" "),o("h2",{attrs:{id:"what-we-expect"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-we-expect"}},[e._v("#")]),e._v(" What we expect")]),e._v(" "),o("p",[e._v("The following behaviours are expected from all project participants, including Frictionless Data core team members, project partners, and all other participants.")]),e._v(" "),o("ul",[o("li",[e._v("Lead by example by being considerate in your actions and decisions.")]),e._v(" "),o("li",[e._v("Be respectful in speech and action, especially in disagreement.")]),e._v(" "),o("li",[e._v("Refrain from demeaning, discriminatory, or harassing behaviour and speech.")]),e._v(" "),o("li",[e._v("We all make mistakes, and when we do, we take responsibility for them.")]),e._v(" "),o("li",[e._v("Be mindful of your fellow participants. If someone is in distress, or if someone is in violation of these guidelines, reach out.")])]),e._v(" "),o("h2",{attrs:{id:"what-we-find-unacceptable"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-we-find-unacceptable"}},[e._v("#")]),e._v(" What we find unacceptable")]),e._v(" "),o("p",[e._v("We do not tolerate harassment of participants at our events in any form. Harassment includes offensive verbal comments, deliberate intimidation, harassing photography or recording, inappropriate physical contact and unwanted sexual attention. Anything that makes someone feel uncomfortable could be deemed harassment. For more information and examples about what constitutes harassment, please refer to "),o("a",{attrs:{href:"https://www.opencon2018.org/code_of_conduct",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenCon’s Code of Conduct in Brief"),o("OutboundLink")],1),e._v(" and the "),o("a",{attrs:{href:"http://openhardware.science/gosh-2017/gosh-code-of-conduct/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gathering for Open Source Hardware’s examples of behaviour"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("This non-exhaustive list shows examples of behaviours that are unacceptable from all participants:")]),e._v(" "),o("ul",[o("li",[e._v("Violence and threats of violence.")]),e._v(" "),o("li",[e._v("Derogatory comments of any form, including related to gender and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, religion, age, or socio-economic status.")]),e._v(" "),o("li",[e._v("Sexual images or behaviour.")]),e._v(" "),o("li",[e._v("Posting or threatening to post other people’s personally identifying information (“doxing”).")]),e._v(" "),o("li",[e._v("Deliberate misgendering or use of former names, or improper titles.")]),e._v(" "),o("li",[e._v("Inappropriate photography or recording.")]),e._v(" "),o("li",[e._v("Physical contact without affirmative consent.")]),e._v(" "),o("li",[e._v("Unwelcome sexual attention. This includes, sexualised comments or jokes; inappropriate touching, groping, and unwelcome sexual advances.")]),e._v(" "),o("li",[e._v("Deliberate intimidation, stalking or following (online or in person).")]),e._v(" "),o("li",[e._v("Sustained disruption of conference events, including talks and presentations.")]),e._v(" "),o("li",[e._v("Advocating for, or encouraging, any of the above behaviour.")])]),e._v(" "),o("h2",{attrs:{id:"consequences-of-unacceptable-behaviour"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#consequences-of-unacceptable-behaviour"}},[e._v("#")]),e._v(" Consequences of unacceptable behaviour")]),e._v(" "),o("p",[e._v("Unacceptable behaviour from any participant in any public or private forum around projects we are involved in, including those with decision-making authority, will not be tolerated.")]),e._v(" "),o("p",[e._v("Anyone asked to stop unacceptable behaviour is expected to comply immediately.")]),e._v(" "),o("p",[e._v("If a participant engages in unacceptable behaviour, any action deemed appropriate will be taken, up to and including a temporary ban, permanent expulsion from participatory forums, or reporting to local law enforcement for criminal offences.")]),e._v(" "),o("h2",{attrs:{id:"reporting"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#reporting"}},[e._v("#")]),e._v(" Reporting")]),e._v(" "),o("p",[e._v("If you are subject to, or witness, unacceptable behaviour, or have any other concerns, please email "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("frictionlessdata@okfn.org")]),e._v(". We will handle all reports with discretion, and you can report anonymously if you wish using "),o("a",{attrs:{href:"https://docs.google.com/forms/d/e/1FAIpQLSfoly-CZT9ZONcns4uG7BsoxGObRqgTlI6NdfvlYSCRVyy_QQ/viewform?usp=sf_link",target:"_blank",rel:"noopener noreferrer"}},[e._v("this form"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("In your report, please do your best to include:")]),e._v(" "),o("p",[e._v("Your contact information (unless you wish to report anonymously)")]),e._v(" "),o("ul",[o("li",[e._v("Identifying information (e.g. names, nicknames, pseudonyms) of the participant who has violated the Code of Conduct")]),e._v(" "),o("li",[e._v("The behaviour that was in violation")]),e._v(" "),o("li",[e._v("The approximate time of the behaviour")]),e._v(" "),o("li",[e._v("If possible, where the Code of Conduct violation happened")]),e._v(" "),o("li",[e._v("The circumstances surrounding the incident")]),e._v(" "),o("li",[e._v("Other people involved in the incident")]),e._v(" "),o("li",[e._v("If you believe the incident is ongoing, please let us know")]),e._v(" "),o("li",[e._v("If there is a publicly available record (e.g. mailing list record), please include a link")]),e._v(" "),o("li",[e._v("Any additional helpful information")])]),e._v(" "),o("p",[e._v("We will fully investigate any reports, follow up with the reportee (unless it is an anonymous report), and we will work with the reportee (unless anonymous) to decide what action to take. If the complaint is about someone on the response team, that person will recuse themselves from handling the response.")]),e._v(" "),o("h2",{attrs:{id:"confidentiality"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#confidentiality"}},[e._v("#")]),e._v(" Confidentiality")]),e._v(" "),o("p",[e._v("All reports will be kept confidential. When we discuss incidents with people who are reported, we will anonymize details as much as we can to protect reporter privacy. In some cases we may determine that a public statement will need to be made. If that’s the case, the identities of all victims and reporters will remain confidential unless those individuals instruct us otherwise.")]),e._v(" "),o("h2",{attrs:{id:"license-and-attribution"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#license-and-attribution"}},[e._v("#")]),e._v(" License and attribution")]),e._v(" "),o("p",[e._v("This Code of Conduct is distributed under a "),o("a",{attrs:{href:"https://creativecommons.org/licenses/by-sa/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution-ShareAlike license"),o("OutboundLink")],1),e._v(". It draws heavily on the "),o("a",{attrs:{href:"https://okfn.org/about/code-of-conduct/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation Code of Conduct"),o("OutboundLink")],1),e._v(", which is based on this "),o("a",{attrs:{href:"https://wiki.mozilla.org/Participation/Community_Gatherings/Brazil_2016/Code_of_Conduct",target:"_blank",rel:"noopener noreferrer"}},[e._v("Mozilla Code of Conduct"),o("OutboundLink")],1),e._v(", the School of Data Code of Conduct, and the "),o("a",{attrs:{href:"https://csvconf.com/coc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csv,conf Code of Conduct"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/196.5c8d4189.js b/assets/js/196.347e5695.js similarity index 98% rename from assets/js/196.5c8d4189.js rename to assets/js/196.347e5695.js index a3f0a3b49..28f516116 100644 --- a/assets/js/196.5c8d4189.js +++ b/assets/js/196.347e5695.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[196],{734:function(e,t,s){"use strict";s.r(t);var o=s(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"contribute"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contribute"}},[e._v("#")]),e._v(" Contribute")]),e._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),s("p",[e._v("We welcome contributions – and you don’t have to be a software developer to get involved! The first step to becoming a Frictionless Data contributor is to become a Frictionless Data user. Please read the following guidelines, and feel free to reach out to us if you have any questions. Thanks for your interest in helping make Frictionless awesome!")]),e._v(" "),s("h2",{attrs:{id:"general-guidelines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#general-guidelines"}},[e._v("#")]),e._v(" General Guidelines")]),e._v(" "),s("h3",{attrs:{id:"reporting-a-bug-or-issue"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reporting-a-bug-or-issue"}},[e._v("#")]),e._v(" Reporting a bug or issue:")]),e._v(" "),s("p",[e._v("We use "),s("a",{attrs:{href:"https://github.com/frictionlessdata/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),s("OutboundLink")],1),e._v(" as a code and issues hosting platform. To report a bug or propose a new feature, please open an issue. For issues with a specific code repository, please open an issue in that specific repository’s tracker on GitHub. For example: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-py/issues"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"give-us-feedback-suggestions-propose-a-new-idea"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#give-us-feedback-suggestions-propose-a-new-idea"}},[e._v("#")]),e._v(" Give us feedback/suggestions/propose a new idea:")]),e._v(" "),s("p",[e._v("What if the issue is not a bug but a question? Please head to the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/project/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussion forum"),s("OutboundLink")],1),e._v(". This is an excellent place to give us thorough feedback about your experience as a whole. In the same way, you may participate in existing discussions and make your voice heard.")]),e._v(" "),s("h3",{attrs:{id:"pull-requests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pull-requests"}},[e._v("#")]),e._v(" Pull requests:")]),e._v(" "),s("p",[e._v("For pull requests, we ask that you initially create an issue and then create a pull requests linked to this issue. Look for issues with “help wanted” or “first-time contributor.” We welcome pull requests from anyone!")]),e._v(" "),s("h3",{attrs:{id:"specific-guidelines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#specific-guidelines"}},[e._v("#")]),e._v(" Specific guidelines:")]),e._v(" "),s("p",[e._v("Each individual software project has more specific contribution guidelines that you can find in the README in the project’s repository. For example: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js#developers",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-js#developers"),s("OutboundLink")],1)]),e._v(" "),s("h2",{attrs:{id:"documentation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#documentation"}},[e._v("#")]),e._v(" Documentation")]),e._v(" "),s("p",[e._v("Are you seeking to advocate and educate people in the data space? We always welcome contributions to our documentation! You can help improve our documentation by opening pull requests if you find typos, have ideas to improve the clarity of the document, or want to translate the text to a non-English language. You can also write tutorials (like this one: "),s("a",{attrs:{href:"https://colab.research.google.com/drive/12RmGajHamGP5wOoAhy8N7Gchn9TmVnG-",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Describe and Extract Tutorial"),s("OutboundLink")],1),e._v("). Let us know if you would like to contribute or if you are interested but need some help!")]),e._v(" "),s("h2",{attrs:{id:"share-your-work-with-us"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#share-your-work-with-us"}},[e._v("#")]),e._v(" Share your work with us!")]),e._v(" "),s("p",[e._v("Are you using Frictionless with your data? Have you spoken at a conference about using Frictionless? We would love to hear about it! We also have opportunities for blog writing and presenting at our monthly community calls - "),s("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("contact us")]),e._v(" to learn more!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[196],{738:function(e,t,s){"use strict";s.r(t);var o=s(29),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"contribute"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contribute"}},[e._v("#")]),e._v(" Contribute")]),e._v(" "),s("h2",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[e._v("#")]),e._v(" Introduction")]),e._v(" "),s("p",[e._v("We welcome contributions – and you don’t have to be a software developer to get involved! The first step to becoming a Frictionless Data contributor is to become a Frictionless Data user. Please read the following guidelines, and feel free to reach out to us if you have any questions. Thanks for your interest in helping make Frictionless awesome!")]),e._v(" "),s("h2",{attrs:{id:"general-guidelines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#general-guidelines"}},[e._v("#")]),e._v(" General Guidelines")]),e._v(" "),s("h3",{attrs:{id:"reporting-a-bug-or-issue"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reporting-a-bug-or-issue"}},[e._v("#")]),e._v(" Reporting a bug or issue:")]),e._v(" "),s("p",[e._v("We use "),s("a",{attrs:{href:"https://github.com/frictionlessdata/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),s("OutboundLink")],1),e._v(" as a code and issues hosting platform. To report a bug or propose a new feature, please open an issue. For issues with a specific code repository, please open an issue in that specific repository’s tracker on GitHub. For example: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-py/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-py/issues"),s("OutboundLink")],1)]),e._v(" "),s("h3",{attrs:{id:"give-us-feedback-suggestions-propose-a-new-idea"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#give-us-feedback-suggestions-propose-a-new-idea"}},[e._v("#")]),e._v(" Give us feedback/suggestions/propose a new idea:")]),e._v(" "),s("p",[e._v("What if the issue is not a bug but a question? Please head to the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/project/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("discussion forum"),s("OutboundLink")],1),e._v(". This is an excellent place to give us thorough feedback about your experience as a whole. In the same way, you may participate in existing discussions and make your voice heard.")]),e._v(" "),s("h3",{attrs:{id:"pull-requests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#pull-requests"}},[e._v("#")]),e._v(" Pull requests:")]),e._v(" "),s("p",[e._v("For pull requests, we ask that you initially create an issue and then create a pull requests linked to this issue. Look for issues with “help wanted” or “first-time contributor.” We welcome pull requests from anyone!")]),e._v(" "),s("h3",{attrs:{id:"specific-guidelines"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#specific-guidelines"}},[e._v("#")]),e._v(" Specific guidelines:")]),e._v(" "),s("p",[e._v("Each individual software project has more specific contribution guidelines that you can find in the README in the project’s repository. For example: "),s("a",{attrs:{href:"https://github.com/frictionlessdata/frictionless-js#developers",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/frictionless-js#developers"),s("OutboundLink")],1)]),e._v(" "),s("h2",{attrs:{id:"documentation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#documentation"}},[e._v("#")]),e._v(" Documentation")]),e._v(" "),s("p",[e._v("Are you seeking to advocate and educate people in the data space? We always welcome contributions to our documentation! You can help improve our documentation by opening pull requests if you find typos, have ideas to improve the clarity of the document, or want to translate the text to a non-English language. You can also write tutorials (like this one: "),s("a",{attrs:{href:"https://colab.research.google.com/drive/12RmGajHamGP5wOoAhy8N7Gchn9TmVnG-",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Describe and Extract Tutorial"),s("OutboundLink")],1),e._v("). Let us know if you would like to contribute or if you are interested but need some help!")]),e._v(" "),s("h2",{attrs:{id:"share-your-work-with-us"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#share-your-work-with-us"}},[e._v("#")]),e._v(" Share your work with us!")]),e._v(" "),s("p",[e._v("Are you using Frictionless with your data? Have you spoken at a conference about using Frictionless? We would love to hear about it! We also have opportunities for blog writing and presenting at our monthly community calls - "),s("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[e._v("contact us")]),e._v(" to learn more!")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/197.858e8a32.js b/assets/js/197.3dce5459.js similarity index 96% rename from assets/js/197.858e8a32.js rename to assets/js/197.3dce5459.js index 4444abd42..1181c3a6b 100644 --- a/assets/js/197.858e8a32.js +++ b/assets/js/197.3dce5459.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[197],{736:function(t,a,e){"use strict";e.r(a);var r=e(29),n=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"events-calendar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events-calendar"}},[t._v("#")]),t._v(" Events Calendar")]),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Frictionless Data calendar with a listing of our upcoming "),e("RouterLink",{attrs:{to:"/tag/events/"}},[t._v("events")]),t._v(" including webinars, virtual hangouts, etc.")],1),t._v(" "),e("h2",{attrs:{id:"frictionless-data-monthly-community-call"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data-monthly-community-call"}},[t._v("#")]),t._v(" Frictionless Data Monthly Community Call")]),t._v(" "),e("p",[t._v("Join the vibrant Frictionless Data community every last Thursday of the month on a call to hear about recent project developments! You can sign up here: "),e("a",{attrs:{href:"https://forms.gle/rtK7xZw5vrwouTE98",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://forms.gle/rtK7xZw5vrwouTE98"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"calendar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#calendar"}},[t._v("#")]),t._v(" Calendar")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("You can add any upcoming event to your calendar by clicking on a specific event and "),e("strong",[t._v("selecting copy to my calendar.")])])]),t._v(" "),e("iframe",{staticStyle:{border:"solid 1px #777"},attrs:{src:"https://calendar.google.com/calendar/embed?height=700&wkst=1&bgcolor=%23EF6C00&ctz=Europe%2FRome&src=b2tmbi5vcmdfaDk3bm05ZDhxcG50cXExc2ZzcWZnbTNwdTBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%23EF6C00",width:"740",height:"700",frameborder:"0",scrolling:"no"}})])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[197],{737:function(t,a,e){"use strict";e.r(a);var r=e(29),n=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"events-calendar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#events-calendar"}},[t._v("#")]),t._v(" Events Calendar")]),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Frictionless Data calendar with a listing of our upcoming "),e("RouterLink",{attrs:{to:"/tag/events/"}},[t._v("events")]),t._v(" including webinars, virtual hangouts, etc.")],1),t._v(" "),e("h2",{attrs:{id:"frictionless-data-monthly-community-call"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#frictionless-data-monthly-community-call"}},[t._v("#")]),t._v(" Frictionless Data Monthly Community Call")]),t._v(" "),e("p",[t._v("Join the vibrant Frictionless Data community every last Thursday of the month on a call to hear about recent project developments! You can sign up here: "),e("a",{attrs:{href:"https://forms.gle/rtK7xZw5vrwouTE98",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://forms.gle/rtK7xZw5vrwouTE98"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"calendar"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#calendar"}},[t._v("#")]),t._v(" Calendar")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("You can add any upcoming event to your calendar by clicking on a specific event and "),e("strong",[t._v("selecting copy to my calendar.")])])]),t._v(" "),e("iframe",{staticStyle:{border:"solid 1px #777"},attrs:{src:"https://calendar.google.com/calendar/embed?height=700&wkst=1&bgcolor=%23EF6C00&ctz=Europe%2FRome&src=b2tmbi5vcmdfaDk3bm05ZDhxcG50cXExc2ZzcWZnbTNwdTBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%23EF6C00",width:"740",height:"700",frameborder:"0",scrolling:"no"}})])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/198.ad7a4064.js b/assets/js/198.53fba7f4.js similarity index 97% rename from assets/js/198.ad7a4064.js rename to assets/js/198.53fba7f4.js index 4a36c2106..898c09110 100644 --- a/assets/js/198.ad7a4064.js +++ b/assets/js/198.53fba7f4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{738:function(t,a,o){"use strict";o.r(a);var e=o(29),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"need-help"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#need-help"}},[t._v("#")]),t._v(" Need Help?")]),t._v(" "),o("p",{staticClass:"font-light text-xl"},[t._v(" We're happy to provide support! Please reach out to us by using one of the following methods:")]),t._v(" "),o("h2",{attrs:{id:"community-support"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#community-support"}},[t._v("#")]),t._v(" Community Support")]),t._v(" "),o("p",[t._v("You can ask any questions in our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack Community Chat room"),o("OutboundLink")],1),t._v(" (the Chat room is also accessible via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Matrix"),o("OutboundLink")],1),t._v("). You can also start a thread in "),o("a",{attrs:{href:"https://github.com/frictionlessdata/project/discussions",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Discussions"),o("OutboundLink")],1),t._v(". Frictionless is a big community that consists of people having different expertise in different domains. Feel free to ask us any questions!")]),t._v(" "),o("h2",{attrs:{id:"school-of-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#school-of-data"}},[t._v("#")]),t._v(" School of Data")]),t._v(" "),o("p",[t._v("School of Data is a project overseen by the Open Knowledge Foundation consisting of a network of individuals and organizations working on empowering civil society organizations, journalists and citizens with skills they need to use data effectively. School of Data provides data literacy trainings and resources for learning how to work with data.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://schoolofdata.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("School of Data"),o("OutboundLink")],1)]),t._v(" "),o("h2",{attrs:{id:"paid-support"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#paid-support"}},[t._v("#")]),t._v(" Paid Support")]),t._v(" "),o("p",[t._v("Professional, timely support is available on a paid basis from the creators of Frictionless Data at Datopian and Open Knowledge Foundation. Please get in touch via:")]),t._v(" "),o("p",[o("a",{attrs:{href:"http://datopian.com/contact",target:"_blank",rel:"noopener noreferrer"}},[t._v("Datopian"),o("OutboundLink")],1),o("br"),t._v("\nOpen Knowledge Foundation: "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[t._v("frictionlessdata@okfn.org")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{739:function(t,a,o){"use strict";o.r(a);var e=o(29),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"need-help"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#need-help"}},[t._v("#")]),t._v(" Need Help?")]),t._v(" "),o("p",{staticClass:"font-light text-xl"},[t._v(" We're happy to provide support! Please reach out to us by using one of the following methods:")]),t._v(" "),o("h2",{attrs:{id:"community-support"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#community-support"}},[t._v("#")]),t._v(" Community Support")]),t._v(" "),o("p",[t._v("You can ask any questions in our "),o("a",{attrs:{href:"https://join.slack.com/t/frictionlessdata/shared_invite/zt-17kpbffnm-tRfDW_wJgOw8tJVLvZTrBg",target:"_blank",rel:"noopener noreferrer"}},[t._v("Slack Community Chat room"),o("OutboundLink")],1),t._v(" (the Chat room is also accessible via "),o("a",{attrs:{href:"https://matrix.to/#/#frictionlessdata:matrix.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Matrix"),o("OutboundLink")],1),t._v("). You can also start a thread in "),o("a",{attrs:{href:"https://github.com/frictionlessdata/project/discussions",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub Discussions"),o("OutboundLink")],1),t._v(". Frictionless is a big community that consists of people having different expertise in different domains. Feel free to ask us any questions!")]),t._v(" "),o("h2",{attrs:{id:"school-of-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#school-of-data"}},[t._v("#")]),t._v(" School of Data")]),t._v(" "),o("p",[t._v("School of Data is a project overseen by the Open Knowledge Foundation consisting of a network of individuals and organizations working on empowering civil society organizations, journalists and citizens with skills they need to use data effectively. School of Data provides data literacy trainings and resources for learning how to work with data.")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://schoolofdata.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("School of Data"),o("OutboundLink")],1)]),t._v(" "),o("h2",{attrs:{id:"paid-support"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#paid-support"}},[t._v("#")]),t._v(" Paid Support")]),t._v(" "),o("p",[t._v("Professional, timely support is available on a paid basis from the creators of Frictionless Data at Datopian and Open Knowledge Foundation. Please get in touch via:")]),t._v(" "),o("p",[o("a",{attrs:{href:"http://datopian.com/contact",target:"_blank",rel:"noopener noreferrer"}},[t._v("Datopian"),o("OutboundLink")],1),o("br"),t._v("\nOpen Knowledge Foundation: "),o("a",{attrs:{href:"mailto:frictionlessdata@okfn.org"}},[t._v("frictionlessdata@okfn.org")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/20.a5fbf886.js b/assets/js/20.0b4e11bf.js similarity index 97% rename from assets/js/20.a5fbf886.js rename to assets/js/20.0b4e11bf.js index 461fa31aa..ec292edd8 100644 --- a/assets/js/20.a5fbf886.js +++ b/assets/js/20.0b4e11bf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{435:function(e,t,a){e.exports=a.p+"assets/img/ckanext-validation.9e351f1c.png"},436:function(e,t,a){e.exports=a.p+"assets/img/data-validity-badges.41769a55.png"},437:function(e,t,a){e.exports=a.p+"assets/img/data-validation-on-upload.d1c30a10.png"},583:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),r("p",[e._v("One of the main goals of the Frictionless Data project is to help improve data quality by providing easy to integrate libraries and services for data validation. We have integrated data validation seamlessly with different backends like GitHub and Amazon S3 via the online service "),r("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),r("OutboundLink")],1),e._v(", but we also wanted to explore closer integrations with other platforms.")]),e._v(" "),r("p",[e._v("An obvious choice for that are Open Data portals. They are still one of the main forms of dissemination of Open Data, especially for governments and other organizations. They provide a single entry point to data relating to a particular region or thematic area and provide users with tools to discover and access different datasets. On the backend, publishers also have tools available for the validation and publication of datasets.")]),e._v(" "),r("p",[e._v("Data Quality varies widely across different portals, reflecting the publication processes and requirements of the hosting organizations. In general, it is difficult for users to assess the quality of the data and there is a lack of descriptors for the actual data fields. At the publisher level, while strong emphasis has been put in metadata standards and interoperability, publishers don’t generally have the same help or guidance when dealing with data quality or description.")]),e._v(" "),r("p",[e._v("We believe that data quality in Open Data portals can have a central place on both these fronts, user-centric and publisher-centric, and we started this pilot to showcase a possible implementation.")]),e._v(" "),r("p",[e._v("To field test our implementation we chose the "),r("a",{attrs:{href:"https://www.wprdc.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Western Pennsylvania Regional Data Center"),r("OutboundLink")],1),e._v(" (WPRDC), managed by the "),r("a",{attrs:{href:"http://ucsur.pitt.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of Pittsburgh Center for Urban and Social Research"),r("OutboundLink")],1),e._v(". The Regional Data Center made for a good pilot as the project team takes an agile approach to managing their own CKAN instance along with support from OpenGov, members of the CKAN association. As the open data repository is used by a diverse array of data publishers (including project partners Allegheny County and the City of Pittsburgh), the Regional Data Center provides a good test case for testing the implementation across a variety of data types and publishing processes. WPRDC is a great example of a well managed Open Data portal, where datasets are actively maintained and the portal itself is just one component of a wider Open Data strategy. It also provides a good variety of publishers, including public sector agencies, academic institutions, and nonprofit organizations. The project’s partnership with the Digital Scholarship Services team at the University Library System also provides data management expertise not typically available in many open data implementations.")]),e._v(" "),r("h2",{attrs:{id:"the-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),r("h3",{attrs:{id:"what-did-we-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),r("p",[e._v("The portal software that we chose for this pilot is "),r("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),r("OutboundLink")],1),e._v(", the world’s leading open source software for Open Data portals ("),r("a",{attrs:{href:"https://github.com/jalbertbowden/open-library/blob/master/lib/d2.1-state-of-the-art-report-and-evaluation-of-existing-open-data-platforms-2015-01-06-route-to-pa.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("source"),r("OutboundLink")],1),e._v("). Open Knowledge International initially fostered the CKAN project and is now a member of the "),r("a",{attrs:{href:"https://ckan.org/about/association/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN Association"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("We created "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),r("OutboundLink")],1),e._v(", a CKAN extension that provides a low level API and readily available features for data validation and reporting that can be added to any CKAN instance. This is powered by "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables"),r("OutboundLink")],1),e._v(", a library developed by Open Knowledge International to support the validation of tabular datasets.")]),e._v(" "),r("p",[e._v("The extension allows users to perform data validation against any tabular resource, such as CSV or Excel files. This generates a report that is stored against a particular resource, describing issues found with the data, both at the structural level (missing headers, blank rows, etc) and at the data schema level (wrong data types, values out of range etc).")]),e._v(" "),r("p",[r("img",{attrs:{src:a(435),alt:""}}),r("br"),e._v(" "),r("em",[e._v("data validation on CKAN made possible by ckanext-validation extension")])]),e._v(" "),r("p",[e._v("This provides a good overview of the quality of the data to users but also to publishers so they can improve the quality of the data file by addressing these issues. The reports can be easily accessed via badges that provide a quick visual indication of the quality of the data file.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(436),alt:""}}),r("br"),e._v(" "),r("em",[e._v("badges indicating quality of data files on CKAN")])]),e._v(" "),r("p",[e._v("There are two default modes for performing the data validation when creating or updating resources. Data validation can be automatically performed in the background asynchronously or as part of the dataset creation in the user interface. In this case the validation will be performed immediately after uploading or linking to a new tabular file, giving quick feedback to publishers.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(437),alt:""}}),r("br"),e._v(" "),r("em",[e._v("data validation on upload or linking to a new tabular file on CKAN")])]),e._v(" "),r("p",[e._v("The extension adds functionality to provide a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema"),r("OutboundLink")],1),e._v(" for the data that describes the expected fields and types as well as other constraints, allowing to perform validation on the actual contents of the data. Additionally the schema is also stored with the resource metadata, so it can be displayed in the UI or accessed via the API.")]),e._v(" "),r("p",[e._v("The extension also provides some utility commands for CKAN maintainers, including the generation of "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation#data-validation-reports",target:"_blank",rel:"noopener noreferrer"}},[e._v("reports"),r("OutboundLink")],1),e._v(" showing the number of valid and invalid tabular files, a breakdown of the error types and links to the individual resources. This gives maintainers a snapshot of the general quality of the data hosted in their CKAN instance at any given moment in time.")]),e._v(" "),r("p",[e._v("As mentioned before, we field tested the validation extension on the Western Pennsylvania Regional Data Center (WPRDC). At the moment of the import the portal hosted 258 datasets. Out of these, 221 datasets had tabular resources, totalling 626 files (mainly CSV and XLSX files). Taking into account that we only performed the default validation that only includes structural checks (ie not schema-based ones) these are the results:")]),e._v(" "),r("blockquote",[r("p",[e._v("466 resources - validation success")])]),e._v(" "),r("blockquote",[r("p",[e._v("156 resources - validation failure")])]),e._v(" "),r("blockquote",[r("p",[e._v("4 resources - validation error")])]),e._v(" "),r("p",[e._v("The errors found are due to current limitations in the validation extension with large files.")]),e._v(" "),r("p",[e._v("Here’s a breakdown of the formats:")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"center"}}),e._v(" "),r("th",{staticStyle:{"text-align":"center"}},[e._v("Valid resources")]),e._v(" "),r("th",{staticStyle:{"text-align":"center"}},[e._v("Invalid / Errored resources")])])]),e._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("CSV")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("443")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("64")])]),e._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("XLSX")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("21")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("57")])]),e._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("XLS")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("2")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("39")])])])]),e._v(" "),r("p",[e._v("And of the error types (more information about each error type can be found in the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Quality Specification"),r("OutboundLink")],1),e._v("):")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Type of Error")]),e._v(" "),r("th",[e._v("Error Count")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Blank row")]),e._v(" "),r("td",[e._v("19654")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate row")]),e._v(" "),r("td",[e._v("810")])]),e._v(" "),r("tr",[r("td",[e._v("Blank header")]),e._v(" "),r("td",[e._v("299")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate header")]),e._v(" "),r("td",[e._v("270")])]),e._v(" "),r("tr",[r("td",[e._v("Source error")]),e._v(" "),r("td",[e._v("30")])]),e._v(" "),r("tr",[r("td",[e._v("Extra value")]),e._v(" "),r("td",[e._v("11")])]),e._v(" "),r("tr",[r("td",[e._v("Format error")]),e._v(" "),r("td",[e._v("9")])]),e._v(" "),r("tr",[r("td",[e._v("HTTP error")]),e._v(" "),r("td",[e._v("2")])]),e._v(" "),r("tr",[r("td",[e._v("Missing value")]),e._v(" "),r("td",[e._v("1")])])])]),e._v(" "),r("p",[e._v("The highest number of errors are obviously caused by blank and duplicate rows. These are generally caused by Excel adding extra rows at the end of the file or by publishers formatting the files for human rather than machine consumption. Examples of this include adding a title in the first cell (like in this case: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/046e5b6a-0f90-4f8e-8c16-14057fd8872e/resource/b4aa617d-1cb8-42d0-8eb6-b650097cf2bf",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/046e5b6a-0f90-4f8e-8c16-14057fd8872e/resource/b4aa617d-1cb8-42d0-8eb6-b650097cf2bf/download/30-day-blotter-data-dictionary.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") or even more complex layouts ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/21a032e9-6345-42b3-b61e-10de29280946",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/21a032e9-6345-42b3-b61e-10de29280946/download/permitsummaryissuedmarch2015.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("), with logos and links. Blank and duplicate header errors like on this case ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/543ae03d-3ef4-45c7-b766-2ed49338120f/resource/f587d617-7afa-4e79-8010-c0d2bdff4c04",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/543ae03d-3ef4-45c7-b766-2ed49338120f/resource/f587d617-7afa-4e79-8010-c0d2bdff4c04/download/opendata-citiparks---summer-meal-sites-2015.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") are also normally caused by Excel storing extra empty columns (and something that can not be noticed directly from Excel).")]),e._v(" "),r("p",[e._v("These errors are easy to spot and fix manually once the file has been opened for inspection but this is still an extra step that data consumers need to perform before using the data on their own processes. It is also true that they are errors that could be easily fixed automatically as part of a pre-process of data cleanup before publication. Perhaps this is something that could be developed in the validation extension in the future.")]),e._v(" "),r("p",[e._v("Other less common errors include Source errors, which include errors that prevented the file from being read by goodtables, like encoding issues or HTTP responses or HTML files incorrectly being marked as Excel files (like in this case: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/9ea45609-e3b0-445a-8ace-0addb973fdf5",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/9ea45609-e3b0-445a-8ace-0addb973fdf5/download/plipublicwebsitemonthlysummaryaugust2017.xls",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("). Extra value errors are generally caused by not properly quoting fields that contain commas, thus breaking the parser (example: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/3130f583-9499-472b-bb5a-f63a6ff6059a/resource/12d9e6e1-3657-4cad-a430-119d34b1a5b2",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/3130f583-9499-472b-bb5a-f63a6ff6059a/resource/12d9e6e1-3657-4cad-a430-119d34b1a5b2/download/crashdatadictionary.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Format errors are caused by labelling incorrectly the format of the hosted file, for instance CSV when it links to an Excel file ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/669b2409-bb4b-46e5-9d91-c36876b58a17/resource/e919ecd3-bb11-4883-a041-bded25dc651c",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/669b2409-bb4b-46e5-9d91-c36876b58a17/resource/e919ecd3-bb11-4883-a041-bded25dc651c/download/2016-cveu-inspections.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("), CSV linking to HTML ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/libraries/resource/14babf3f-4932-4828-8b49-3c9a03bae6d0",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://wprdc-maps.carto.com/u/wprdc/builder/1142950f-f054-4b3f-8c52-2f020e23cf78/embed",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") or XLS linking to XLSX ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/40188e1c-6d2e-4f20-9391-607bd3054949/resource/cf0617a1-b950-4aa7-a36d-dc9da412ddf7",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/40188e1c-6d2e-4f20-9391-607bd3054949/resource/cf0617a1-b950-4aa7-a36d-dc9da412ddf7/download/transportation.xls",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("). These are all easily fixed at the metadata level.")]),e._v(" "),r("p",[e._v("Finally HTTP errors just show that the linked file hosted elsewhere does not exist or has been moved.")]),e._v(" "),r("p",[e._v("Again, it is important to stress that the checks performed are just "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py#validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("basic and structural checks"),r("OutboundLink")],1),e._v(" that affect the general availability of the file and its general structure. The addition of standardized schemas would allow for a more thorough and precise validation, checking the data contents and ensuring that this is what was expected.")]),e._v(" "),r("p",[e._v("Also it is interesting to note that WPRDC has the excellent good practice of publishing data dictionaries describing the contents of the data files. These are generally published in CSV format and they themselves can present validation errors as well. As we saw before, using the validation extension we can assign a schema defined in the Table Schema spec to a resource. This will be used during the validation, but the information could also be used to render it nicely on the UI or export it consistently as a CSV or PDF file.")]),e._v(" "),r("p",[e._v("All the generated reports can be further analyzed using the output files stored "),r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-wprdc",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Additionally, to help browse the validation reports created from the WPRDC site we have set up a demo site that mirrors the datasets, organizations and groups hosted there (at the time we did the import).")]),e._v(" "),r("p",[e._v("All tabular resources have the validation report attached, that can be accessed clicking on the data valid / invalid badges.")]),e._v(" "),r("h2",{attrs:{id:"next-steps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),r("h3",{attrs:{id:"areas-for-further-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),r("p",[e._v("The validation extension for CKAN currently provides a very basic workflow for validation at creation and update time: basically if the validation fails in any way you are not allowed to create or edit the dataset. Maintainers can define a set of default validation options to make it more permissive but even so some publishers probably wouldn’t want to enforce all validation checks before allowing the creation of a dataset, or just apply validation to datasets from a particular organization or type. Of course the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation#action-functions",target:"_blank",rel:"noopener noreferrer"}},[e._v("underlying API"),r("OutboundLink")],1),e._v(" is available for extension developers to implement these workflows, but the validation extension itself could provide some of them.")]),e._v(" "),r("p",[e._v("The user interface for defining the validation options can definitely be improved, and we are planning to integrate a "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation/issues/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema Creator"),r("OutboundLink")],1),e._v(" to make easier for publishers to describe their data with a schema based on the actual fields on the file. If the resource has a schema assigned, this information can be presented nicely on the UI to the users and exported in different formats.")]),e._v(" "),r("p",[e._v("The validation extension is a first iteration to demonstrate the capabilities of integrating data validation directly into CKAN, but we are keen to know about different ways in which this could be expanded or integrated in other workflows, so any feedback or thoughts is appreciated.")]),e._v(" "),r("h3",{attrs:{id:"additional-resources"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[e._v("#")]),e._v(" Additional Resources")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("Check the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation/blob/master/README.md#how-it-works",target:"_blank",rel:"noopener noreferrer"}},[e._v("full documentation"),r("OutboundLink")],1),e._v(" for ckanext-validation, covering all details on how to install it and configure it, features and available API")])]),e._v(" "),r("li",[r("p",[e._v("Source material:")])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation codebase"),r("OutboundLink")],1)])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-wprdc",target:"_blank",rel:"noopener noreferrer"}},[e._v("Western Pennsylvania Regional Data Center Github repository"),r("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{438:function(e,t,a){e.exports=a.p+"assets/img/ckanext-validation.9e351f1c.png"},439:function(e,t,a){e.exports=a.p+"assets/img/data-validity-badges.41769a55.png"},440:function(e,t,a){e.exports=a.p+"assets/img/data-validation-on-upload.d1c30a10.png"},584:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),r("p",[e._v("One of the main goals of the Frictionless Data project is to help improve data quality by providing easy to integrate libraries and services for data validation. We have integrated data validation seamlessly with different backends like GitHub and Amazon S3 via the online service "),r("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),r("OutboundLink")],1),e._v(", but we also wanted to explore closer integrations with other platforms.")]),e._v(" "),r("p",[e._v("An obvious choice for that are Open Data portals. They are still one of the main forms of dissemination of Open Data, especially for governments and other organizations. They provide a single entry point to data relating to a particular region or thematic area and provide users with tools to discover and access different datasets. On the backend, publishers also have tools available for the validation and publication of datasets.")]),e._v(" "),r("p",[e._v("Data Quality varies widely across different portals, reflecting the publication processes and requirements of the hosting organizations. In general, it is difficult for users to assess the quality of the data and there is a lack of descriptors for the actual data fields. At the publisher level, while strong emphasis has been put in metadata standards and interoperability, publishers don’t generally have the same help or guidance when dealing with data quality or description.")]),e._v(" "),r("p",[e._v("We believe that data quality in Open Data portals can have a central place on both these fronts, user-centric and publisher-centric, and we started this pilot to showcase a possible implementation.")]),e._v(" "),r("p",[e._v("To field test our implementation we chose the "),r("a",{attrs:{href:"https://www.wprdc.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Western Pennsylvania Regional Data Center"),r("OutboundLink")],1),e._v(" (WPRDC), managed by the "),r("a",{attrs:{href:"http://ucsur.pitt.edu/",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of Pittsburgh Center for Urban and Social Research"),r("OutboundLink")],1),e._v(". The Regional Data Center made for a good pilot as the project team takes an agile approach to managing their own CKAN instance along with support from OpenGov, members of the CKAN association. As the open data repository is used by a diverse array of data publishers (including project partners Allegheny County and the City of Pittsburgh), the Regional Data Center provides a good test case for testing the implementation across a variety of data types and publishing processes. WPRDC is a great example of a well managed Open Data portal, where datasets are actively maintained and the portal itself is just one component of a wider Open Data strategy. It also provides a good variety of publishers, including public sector agencies, academic institutions, and nonprofit organizations. The project’s partnership with the Digital Scholarship Services team at the University Library System also provides data management expertise not typically available in many open data implementations.")]),e._v(" "),r("h2",{attrs:{id:"the-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),r("h3",{attrs:{id:"what-did-we-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),r("p",[e._v("The portal software that we chose for this pilot is "),r("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),r("OutboundLink")],1),e._v(", the world’s leading open source software for Open Data portals ("),r("a",{attrs:{href:"https://github.com/jalbertbowden/open-library/blob/master/lib/d2.1-state-of-the-art-report-and-evaluation-of-existing-open-data-platforms-2015-01-06-route-to-pa.pdf",target:"_blank",rel:"noopener noreferrer"}},[e._v("source"),r("OutboundLink")],1),e._v("). Open Knowledge International initially fostered the CKAN project and is now a member of the "),r("a",{attrs:{href:"https://ckan.org/about/association/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN Association"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("We created "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),r("OutboundLink")],1),e._v(", a CKAN extension that provides a low level API and readily available features for data validation and reporting that can be added to any CKAN instance. This is powered by "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables"),r("OutboundLink")],1),e._v(", a library developed by Open Knowledge International to support the validation of tabular datasets.")]),e._v(" "),r("p",[e._v("The extension allows users to perform data validation against any tabular resource, such as CSV or Excel files. This generates a report that is stored against a particular resource, describing issues found with the data, both at the structural level (missing headers, blank rows, etc) and at the data schema level (wrong data types, values out of range etc).")]),e._v(" "),r("p",[r("img",{attrs:{src:a(438),alt:""}}),r("br"),e._v(" "),r("em",[e._v("data validation on CKAN made possible by ckanext-validation extension")])]),e._v(" "),r("p",[e._v("This provides a good overview of the quality of the data to users but also to publishers so they can improve the quality of the data file by addressing these issues. The reports can be easily accessed via badges that provide a quick visual indication of the quality of the data file.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(439),alt:""}}),r("br"),e._v(" "),r("em",[e._v("badges indicating quality of data files on CKAN")])]),e._v(" "),r("p",[e._v("There are two default modes for performing the data validation when creating or updating resources. Data validation can be automatically performed in the background asynchronously or as part of the dataset creation in the user interface. In this case the validation will be performed immediately after uploading or linking to a new tabular file, giving quick feedback to publishers.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(440),alt:""}}),r("br"),e._v(" "),r("em",[e._v("data validation on upload or linking to a new tabular file on CKAN")])]),e._v(" "),r("p",[e._v("The extension adds functionality to provide a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema"),r("OutboundLink")],1),e._v(" for the data that describes the expected fields and types as well as other constraints, allowing to perform validation on the actual contents of the data. Additionally the schema is also stored with the resource metadata, so it can be displayed in the UI or accessed via the API.")]),e._v(" "),r("p",[e._v("The extension also provides some utility commands for CKAN maintainers, including the generation of "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation#data-validation-reports",target:"_blank",rel:"noopener noreferrer"}},[e._v("reports"),r("OutboundLink")],1),e._v(" showing the number of valid and invalid tabular files, a breakdown of the error types and links to the individual resources. This gives maintainers a snapshot of the general quality of the data hosted in their CKAN instance at any given moment in time.")]),e._v(" "),r("p",[e._v("As mentioned before, we field tested the validation extension on the Western Pennsylvania Regional Data Center (WPRDC). At the moment of the import the portal hosted 258 datasets. Out of these, 221 datasets had tabular resources, totalling 626 files (mainly CSV and XLSX files). Taking into account that we only performed the default validation that only includes structural checks (ie not schema-based ones) these are the results:")]),e._v(" "),r("blockquote",[r("p",[e._v("466 resources - validation success")])]),e._v(" "),r("blockquote",[r("p",[e._v("156 resources - validation failure")])]),e._v(" "),r("blockquote",[r("p",[e._v("4 resources - validation error")])]),e._v(" "),r("p",[e._v("The errors found are due to current limitations in the validation extension with large files.")]),e._v(" "),r("p",[e._v("Here’s a breakdown of the formats:")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"center"}}),e._v(" "),r("th",{staticStyle:{"text-align":"center"}},[e._v("Valid resources")]),e._v(" "),r("th",{staticStyle:{"text-align":"center"}},[e._v("Invalid / Errored resources")])])]),e._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("CSV")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("443")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("64")])]),e._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("XLSX")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("21")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("57")])]),e._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"center"}},[e._v("XLS")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("2")]),e._v(" "),r("td",{staticStyle:{"text-align":"center"}},[e._v("39")])])])]),e._v(" "),r("p",[e._v("And of the error types (more information about each error type can be found in the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Quality Specification"),r("OutboundLink")],1),e._v("):")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Type of Error")]),e._v(" "),r("th",[e._v("Error Count")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Blank row")]),e._v(" "),r("td",[e._v("19654")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate row")]),e._v(" "),r("td",[e._v("810")])]),e._v(" "),r("tr",[r("td",[e._v("Blank header")]),e._v(" "),r("td",[e._v("299")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate header")]),e._v(" "),r("td",[e._v("270")])]),e._v(" "),r("tr",[r("td",[e._v("Source error")]),e._v(" "),r("td",[e._v("30")])]),e._v(" "),r("tr",[r("td",[e._v("Extra value")]),e._v(" "),r("td",[e._v("11")])]),e._v(" "),r("tr",[r("td",[e._v("Format error")]),e._v(" "),r("td",[e._v("9")])]),e._v(" "),r("tr",[r("td",[e._v("HTTP error")]),e._v(" "),r("td",[e._v("2")])]),e._v(" "),r("tr",[r("td",[e._v("Missing value")]),e._v(" "),r("td",[e._v("1")])])])]),e._v(" "),r("p",[e._v("The highest number of errors are obviously caused by blank and duplicate rows. These are generally caused by Excel adding extra rows at the end of the file or by publishers formatting the files for human rather than machine consumption. Examples of this include adding a title in the first cell (like in this case: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/046e5b6a-0f90-4f8e-8c16-14057fd8872e/resource/b4aa617d-1cb8-42d0-8eb6-b650097cf2bf",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/046e5b6a-0f90-4f8e-8c16-14057fd8872e/resource/b4aa617d-1cb8-42d0-8eb6-b650097cf2bf/download/30-day-blotter-data-dictionary.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") or even more complex layouts ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/21a032e9-6345-42b3-b61e-10de29280946",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/21a032e9-6345-42b3-b61e-10de29280946/download/permitsummaryissuedmarch2015.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("), with logos and links. Blank and duplicate header errors like on this case ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/543ae03d-3ef4-45c7-b766-2ed49338120f/resource/f587d617-7afa-4e79-8010-c0d2bdff4c04",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/543ae03d-3ef4-45c7-b766-2ed49338120f/resource/f587d617-7afa-4e79-8010-c0d2bdff4c04/download/opendata-citiparks---summer-meal-sites-2015.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") are also normally caused by Excel storing extra empty columns (and something that can not be noticed directly from Excel).")]),e._v(" "),r("p",[e._v("These errors are easy to spot and fix manually once the file has been opened for inspection but this is still an extra step that data consumers need to perform before using the data on their own processes. It is also true that they are errors that could be easily fixed automatically as part of a pre-process of data cleanup before publication. Perhaps this is something that could be developed in the validation extension in the future.")]),e._v(" "),r("p",[e._v("Other less common errors include Source errors, which include errors that prevented the file from being read by goodtables, like encoding issues or HTTP responses or HTML files incorrectly being marked as Excel files (like in this case: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/9ea45609-e3b0-445a-8ace-0addb973fdf5",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/9c4eab3b-e05d-4af8-ad18-76e4c1a71a74/resource/9ea45609-e3b0-445a-8ace-0addb973fdf5/download/plipublicwebsitemonthlysummaryaugust2017.xls",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("). Extra value errors are generally caused by not properly quoting fields that contain commas, thus breaking the parser (example: "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/3130f583-9499-472b-bb5a-f63a6ff6059a/resource/12d9e6e1-3657-4cad-a430-119d34b1a5b2",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/3130f583-9499-472b-bb5a-f63a6ff6059a/resource/12d9e6e1-3657-4cad-a430-119d34b1a5b2/download/crashdatadictionary.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Format errors are caused by labelling incorrectly the format of the hosted file, for instance CSV when it links to an Excel file ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/669b2409-bb4b-46e5-9d91-c36876b58a17/resource/e919ecd3-bb11-4883-a041-bded25dc651c",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/669b2409-bb4b-46e5-9d91-c36876b58a17/resource/e919ecd3-bb11-4883-a041-bded25dc651c/download/2016-cveu-inspections.xlsx",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("), CSV linking to HTML ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/libraries/resource/14babf3f-4932-4828-8b49-3c9a03bae6d0",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://wprdc-maps.carto.com/u/wprdc/builder/1142950f-f054-4b3f-8c52-2f020e23cf78/embed",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v(") or XLS linking to XLSX ("),r("a",{attrs:{href:"https://data.wprdc.org/dataset/40188e1c-6d2e-4f20-9391-607bd3054949/resource/cf0617a1-b950-4aa7-a36d-dc9da412ddf7",target:"_blank",rel:"noopener noreferrer"}},[e._v("portal page"),r("OutboundLink")],1),e._v(" | "),r("a",{attrs:{href:"https://data.wprdc.org/dataset/40188e1c-6d2e-4f20-9391-607bd3054949/resource/cf0617a1-b950-4aa7-a36d-dc9da412ddf7/download/transportation.xls",target:"_blank",rel:"noopener noreferrer"}},[e._v("file"),r("OutboundLink")],1),e._v("). These are all easily fixed at the metadata level.")]),e._v(" "),r("p",[e._v("Finally HTTP errors just show that the linked file hosted elsewhere does not exist or has been moved.")]),e._v(" "),r("p",[e._v("Again, it is important to stress that the checks performed are just "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py#validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("basic and structural checks"),r("OutboundLink")],1),e._v(" that affect the general availability of the file and its general structure. The addition of standardized schemas would allow for a more thorough and precise validation, checking the data contents and ensuring that this is what was expected.")]),e._v(" "),r("p",[e._v("Also it is interesting to note that WPRDC has the excellent good practice of publishing data dictionaries describing the contents of the data files. These are generally published in CSV format and they themselves can present validation errors as well. As we saw before, using the validation extension we can assign a schema defined in the Table Schema spec to a resource. This will be used during the validation, but the information could also be used to render it nicely on the UI or export it consistently as a CSV or PDF file.")]),e._v(" "),r("p",[e._v("All the generated reports can be further analyzed using the output files stored "),r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-wprdc",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Additionally, to help browse the validation reports created from the WPRDC site we have set up a demo site that mirrors the datasets, organizations and groups hosted there (at the time we did the import).")]),e._v(" "),r("p",[e._v("All tabular resources have the validation report attached, that can be accessed clicking on the data valid / invalid badges.")]),e._v(" "),r("h2",{attrs:{id:"next-steps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),r("h3",{attrs:{id:"areas-for-further-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),r("p",[e._v("The validation extension for CKAN currently provides a very basic workflow for validation at creation and update time: basically if the validation fails in any way you are not allowed to create or edit the dataset. Maintainers can define a set of default validation options to make it more permissive but even so some publishers probably wouldn’t want to enforce all validation checks before allowing the creation of a dataset, or just apply validation to datasets from a particular organization or type. Of course the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation#action-functions",target:"_blank",rel:"noopener noreferrer"}},[e._v("underlying API"),r("OutboundLink")],1),e._v(" is available for extension developers to implement these workflows, but the validation extension itself could provide some of them.")]),e._v(" "),r("p",[e._v("The user interface for defining the validation options can definitely be improved, and we are planning to integrate a "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation/issues/10",target:"_blank",rel:"noopener noreferrer"}},[e._v("Schema Creator"),r("OutboundLink")],1),e._v(" to make easier for publishers to describe their data with a schema based on the actual fields on the file. If the resource has a schema assigned, this information can be presented nicely on the UI to the users and exported in different formats.")]),e._v(" "),r("p",[e._v("The validation extension is a first iteration to demonstrate the capabilities of integrating data validation directly into CKAN, but we are keen to know about different ways in which this could be expanded or integrated in other workflows, so any feedback or thoughts is appreciated.")]),e._v(" "),r("h3",{attrs:{id:"additional-resources"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#additional-resources"}},[e._v("#")]),e._v(" Additional Resources")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("Check the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation/blob/master/README.md#how-it-works",target:"_blank",rel:"noopener noreferrer"}},[e._v("full documentation"),r("OutboundLink")],1),e._v(" for ckanext-validation, covering all details on how to install it and configure it, features and available API")])]),e._v(" "),r("li",[r("p",[e._v("Source material:")])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation codebase"),r("OutboundLink")],1)])]),e._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-wprdc",target:"_blank",rel:"noopener noreferrer"}},[e._v("Western Pennsylvania Regional Data Center Github repository"),r("OutboundLink")],1)])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/22.7697693e.js b/assets/js/22.81131f41.js similarity index 97% rename from assets/js/22.7697693e.js rename to assets/js/22.81131f41.js index 5e42e4804..0e973bc2e 100644 --- a/assets/js/22.7697693e.js +++ b/assets/js/22.81131f41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{475:function(e,a,t){e.exports=t.p+"assets/img/data-curator.1e9d2493.png"},476:function(e,a,t){e.exports=t.p+"assets/img/data-curator-2.947fbd26.png"},477:function(e,a,t){e.exports=t.p+"assets/img/data-curator-3.4f1191bc.png"},608:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"data-curator-share-usable-open-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#data-curator-share-usable-open-data"}},[e._v("#")]),e._v(" Data Curator - share usable open data")]),e._v(" "),r("p",[e._v("Open data producers are increasingly focusing on improving open data so it can be easily used to create insight and drive positive change.")]),e._v(" "),r("p",[e._v("Open data is more likely to be used if data consumers can:")]),e._v(" "),r("ul",[r("li",[e._v("understand the structure of the data")]),e._v(" "),r("li",[e._v("understand the quality of the data")]),e._v(" "),r("li",[e._v("understand why and how the data was collected")]),e._v(" "),r("li",[e._v("look up the meaning of codes used in the data")]),e._v(" "),r("li",[e._v("access the data in an open machine-readable format")]),e._v(" "),r("li",[e._v("know how the data is licensed and how it can be reused")])]),e._v(" "),r("p",[e._v("Data Curator enables open data producers to define all this information using their desktop computer, prior to publishing it on the Internet.")]),e._v(" "),r("p",[e._v("Data Curator uses the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data specification"),r("OutboundLink")],1),e._v(" and software to package the data and supporting information in a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",title:"Tabular Data Package specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular Data Package"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[r("img",{attrs:{src:t(475),alt:"Data Curator screenshot"}})]),e._v(" "),r("h2",{attrs:{id:"using-data-curator"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#using-data-curator"}},[e._v("#")]),e._v(" Using Data Curator")]),e._v(" "),r("p",[e._v("Here’s how to use Data Curator to share usable open data in a data package:")]),e._v(" "),r("ol",[r("li",[e._v("Download "),r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/releases/latest",title:"Download Data Curator for Windows or macOS",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Curator"),r("OutboundLink")],1),e._v(" for Windows or macOS")]),e._v(" "),r("li",[e._v("In Data Curator, either:\n"),r("ul",[r("li",[e._v("create some data")]),e._v(" "),r("li",[e._v("open an Excel sheet")]),e._v(" "),r("li",[e._v("open a separated value file (e.g. CSV, TSV)")])])]),e._v(" "),r("li",[e._v("Follow the steps below…")])]),e._v(" "),r("h3",{attrs:{id:"describe-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#describe-the-data"}},[e._v("#")]),e._v(" Describe the data")]),e._v(" "),r("p",[e._v("The Frictionless Data specification allows you to describe tabular data using a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",title:"Table Schema specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),r("OutboundLink")],1),e._v(". A Table Schema allows each field in the data to be given:")]),e._v(" "),r("ul",[r("li",[e._v("a "),r("code",[e._v("name")]),e._v(", "),r("code",[e._v("title")]),e._v(" and "),r("code",[e._v("description")])]),e._v(" "),r("li",[e._v("a data "),r("code",[e._v("type")]),e._v(" (e.g. "),r("code",[e._v("string")]),e._v(", "),r("code",[e._v("integer")]),e._v(") and "),r("code",[e._v("format")]),e._v(" (e.g. "),r("code",[e._v("uri")]),e._v(", "),r("code",[e._v("email")]),e._v(")")]),e._v(" "),r("li",[e._v("one or more "),r("code",[e._v("constraints")]),e._v(" (e.g. "),r("code",[e._v("required")]),e._v(", "),r("code",[e._v("unique")]),e._v(") to limit data values and improve data validation")])]),e._v(" "),r("p",[e._v("The Table Schema also allows you to describe the characters used to represent missing values (e.g. "),r("code",[e._v("n/a")]),e._v(", "),r("code",[e._v("tba")]),e._v("), primary keys, and foreign key relationships.")]),e._v(" "),r("p",[e._v("After adding data in Data Curator, to create a Table Schema:")]),e._v(" "),r("ul",[r("li",[e._v("Give your data a header row, if it doesn’t have one")]),e._v(" "),r("li",[e._v("Set the header row to give each field a "),r("code",[e._v("name")])]),e._v(" "),r("li",[e._v("Guess column properties to give each field a "),r("code",[e._v("type")]),e._v(" and "),r("code",[e._v("format")])]),e._v(" "),r("li",[e._v("Set column properties to improve the data "),r("code",[e._v("type")]),e._v(" and "),r("code",[e._v("format")]),e._v(" guesses, and add a "),r("code",[e._v("title")]),e._v(", "),r("code",[e._v("description")]),e._v(" and "),r("code",[e._v("constraints")])]),e._v(" "),r("li",[e._v("Set table properties to give the table a "),r("code",[e._v("name")]),e._v(", define missing values, a primary key, and foreign keys.")])]),e._v(" "),r("h3",{attrs:{id:"validate-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#validate-the-data"}},[e._v("#")]),e._v(" Validate the data")]),e._v(" "),r("p",[e._v("Using Data Curator, you can validate if the data complies with the field’s "),r("code",[e._v("type")]),e._v(", "),r("code",[e._v("format")]),e._v(" and "),r("code",[e._v("contraints")]),e._v(". Errors found can be filtered in different ways so you can correct errors by row, by column or by error type.")]),e._v(" "),r("p",[e._v("In some cases data errors cannot be corrected, as they should be corrected in the source system and not as part of the data packaging process. If you’re happy to publish the data with errors, the error messages can be appended to the provenance information.")]),e._v(" "),r("h3",{attrs:{id:"provide-context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#provide-context"}},[e._v("#")]),e._v(" Provide context")]),e._v(" "),r("p",[e._v("Data Curator lets you add provenance information to help people understand why and how the data was collected and determine if it is fit for their purpose.")]),e._v(" "),r("p",[e._v("Provenance information can be entered using "),r("a",{attrs:{href:"http://commonmark.org",title:"Markdown specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Markdown"),r("OutboundLink")],1),e._v(". You can preview the Markdown formatting in Data Curator.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(476),alt:"Add provenance information screenshot"}})]),e._v(" "),r("p",[e._v("You should follow the "),r("RouterLink",{attrs:{to:"/blog/2016/04/20/publish-faq/",title:"Publishing Data Packages - FAQ"}},[e._v("Readme FAQ")]),e._v(" when writing provenance information or, even easier, cut and paste from this "),r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/blob/develop/test/features/tools/sample-provenance-information.md",title:"Sample Provenance Information Markdown file on GitHub",target:"_blank",rel:"noopener noreferrer"}},[e._v("sample"),r("OutboundLink")],1),e._v(".")],1),e._v(" "),r("h3",{attrs:{id:"explain-the-meaning-of-codes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#explain-the-meaning-of-codes"}},[e._v("#")]),e._v(" Explain the meaning of codes")]),e._v(" "),r("p",[e._v("Data Curator supports foreign key relationships between data. Often a set of codes is used in a column of data and the list of valid codes and their description is in another table. The Frictionless Data specification enables linking this data within a table or across two tables in the same data package.")]),e._v(" "),r("p",[e._v("We’ve implemented the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#table-schema:-foreign-keys-to-data-packages",title:"The Foreign Keys to Data Packages pattern",target:"_blank",rel:"noopener noreferrer"}},[e._v("Foreign Keys to Data Packages pattern"),r("OutboundLink")],1),e._v(" so you can have foreign key relationships across two data packages. This is really useful if you want to share code-lists across organisations.")]),e._v(" "),r("p",[e._v("You can define foreign key relationships in Data Curator in the table properties and the relationships are checked when you validate the data.")]),e._v(" "),r("h3",{attrs:{id:"save-the-data-in-an-open-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#save-the-data-in-an-open-format"}},[e._v("#")]),e._v(" Save the data in an open format")]),e._v(" "),r("p",[e._v("Data Curator lets you save data as a comma, semicolon, or tab separated value file. A matching "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/csv-dialect/",title:"The CSV Dialect specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Dialect"),r("OutboundLink")],1),e._v(" is added to the data package.")]),e._v(" "),r("h3",{attrs:{id:"apply-an-open-license"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#apply-an-open-license"}},[e._v("#")]),e._v(" Apply an open license")]),e._v(" "),r("p",[e._v("Applying a license, waiver, or public domain mark to a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",title:"The licenses property in the Data Package specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package"),r("OutboundLink")],1),e._v(" and its "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#optional-properties",title:"The licenses property in the Data Resource specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("resources"),r("OutboundLink")],1),e._v(" helps people understand how they can use, modify, and share the contents of the data package.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(477),alt:"Apply open license to data package screenshot"}})]),e._v(" "),r("p",[e._v("Although there are many ways to "),r("RouterLink",{attrs:{to:"/blog/2018/03/27/applying-licenses/",title:"Guide to applying licenses, waivers or public domain marks to data packages"}},[e._v("apply a licence, waiver or public domain mark")]),e._v(" to a data package, Data Curator only allows you to use open licences - after all, its purpose is to share usable open data.")],1),e._v(" "),r("h3",{attrs:{id:"export-the-data-package"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#export-the-data-package"}},[e._v("#")]),e._v(" Export the data package")]),e._v(" "),r("p",[e._v("To ensure only usable open data is shared, Data Curator applies some checks before allowing a data package to be exported. These go beyond the mandatory requirements* in the Frictionless Data specification.")]),e._v(" "),r("p",[e._v("To export a tabular data package, it must have:")]),e._v(" "),r("ul",[r("li",[e._v("a header row")]),e._v(" "),r("li",[e._v("a table schema*")]),e._v(" "),r("li",[e._v("a table (resource) "),r("code",[e._v("name")]),e._v("*")]),e._v(" "),r("li",[e._v("a data package "),r("code",[e._v("name")]),e._v("*")]),e._v(" "),r("li",[e._v("provenance information")]),e._v(" "),r("li",[e._v("an open licence applied to the data package")])]),e._v(" "),r("p",[e._v("If a data package "),r("code",[e._v("version")]),e._v(" is used, it must follow the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#data-package-version",title:"Data Package Version pattern",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package version pattern"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Before exporting a data package you should:")]),e._v(" "),r("ul",[r("li",[e._v("add a "),r("code",[e._v("title")]),e._v(" and "),r("code",[e._v("description")]),e._v(" to each field, table and data package")]),e._v(" "),r("li",[e._v("acknowledge any data sources and contributors")]),e._v(" "),r("li",[e._v("validate the data and add any known errors to the provenance information")])]),e._v(" "),r("p",[e._v("The data package is exported as a "),r("code",[e._v("datapackage.zip")]),e._v(" file that contains the:")]),e._v(" "),r("ul",[r("li",[e._v("data files in a "),r("code",[e._v("/data")]),e._v(" directory")]),e._v(" "),r("li",[e._v("data package, table (resource), table schema, and csv dialect properties in a"),r("code",[e._v("datapackage.json")]),e._v(" file")]),e._v(" "),r("li",[e._v("provenance information in a "),r("code",[e._v("README.md")]),e._v(" file")])]),e._v(" "),r("h3",{attrs:{id:"share-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#share-the-data"}},[e._v("#")]),e._v(" Share the data")]),e._v(" "),r("p",[e._v("Share the "),r("code",[e._v("datapackage.zip")]),e._v(" with open data consumers by publishing it on the Internet or on an open data platform. Some platforms support uploading, displaying, and downloading data packages.")]),e._v(" "),r("p",[e._v("Open data consumers will be able to read the data package with one of the many applications and software libraries that work with data packages, including Data Curator.")]),e._v(" "),r("h2",{attrs:{id:"get-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#get-started"}},[e._v("#")]),e._v(" Get Started")]),e._v(" "),r("p",[r("strong",[r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/releases/latest",title:"Download Data Curator for Windows or macOS",target:"_blank",rel:"noopener noreferrer"}},[e._v("Download Data Curator"),r("OutboundLink")],1)]),e._v(" for Windows or macOS and start sharing usable open data.")]),e._v(" "),r("h2",{attrs:{id:"who-made-data-curator"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#who-made-data-curator"}},[e._v("#")]),e._v(" Who made Data Curator?")]),e._v(" "),r("p",[e._v("Data Curator was made possible with funding from the "),r("a",{attrs:{href:"https://www.qld.gov.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Queensland Government"),r("OutboundLink")],1),e._v(" and the guidance of the Open Data Policy team within the Department of Housing and Public Works. We’re grateful for the ideas and testing provided by open data champions in the Department of Environment and Science, and the Department of Transport and Main Roads.")]),e._v(" "),r("p",[e._v("The project was led by "),r("a",{attrs:{href:"https://theodi.org/article/open-data-pathway-introducing-country-level-statistics/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Stephen Gates"),r("OutboundLink")],1),e._v(" from the "),r("a",{attrs:{href:"https://www.linkedin.com/company/odiaustraliannetwork/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ODI Australian Network"),r("OutboundLink")],1),e._v(". Software development was coordinated by Gavin Kennedy and performed by Matt Mulholland from the "),r("a",{attrs:{href:"https://www.qcif.edu.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Queensland Cyber Infrastructure Foundation"),r("OutboundLink")],1),e._v(" (QCIF).")]),e._v(" "),r("p",[e._v("Data Curator uses the Frictionless Data software libraries maintained by "),r("a",{attrs:{href:"https://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(" and we’re extremely grateful for the support provided by "),r("a",{attrs:{href:"https://github.com/orgs/frictionlessdata/teams/core/members",target:"_blank",rel:"noopener noreferrer"}},[e._v("the team"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Data Curator started life as "),r("a",{attrs:{href:"http://comma-chameleon.io",title:"Comma Chameleon - A desktop CSV editor for data publishers\n",target:"_blank",rel:"noopener noreferrer"}},[e._v("Comma Chameleon"),r("OutboundLink")],1),e._v(", an "),r("a",{attrs:{href:"https://youtu.be/wIIw0cTeUG0",title:"Stuart Harrison explains Comma Chameleon at CSVConf",target:"_blank",rel:"noopener noreferrer"}},[e._v("experiment"),r("OutboundLink")],1),e._v(" by "),r("a",{attrs:{href:"https://theodi.org",title:"The Open Data Institute",target:"_blank",rel:"noopener noreferrer"}},[e._v("the ODI"),r("OutboundLink")],1),e._v(". The ODI and the ODI Australian Network agreed to take the software in "),r("a",{attrs:{href:"https://theodi.org/article/odi-toolbox-application-experiments-from-comma-chameleon-to-data-curator/",title:"Stephen Fortune explains why Data Curator is a fork of Comma Chameleon",target:"_blank",rel:"noopener noreferrer"}},[e._v("different directions"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{484:function(e,a,t){e.exports=t.p+"assets/img/data-curator.1e9d2493.png"},485:function(e,a,t){e.exports=t.p+"assets/img/data-curator-2.947fbd26.png"},486:function(e,a,t){e.exports=t.p+"assets/img/data-curator-3.4f1191bc.png"},610:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"data-curator-share-usable-open-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#data-curator-share-usable-open-data"}},[e._v("#")]),e._v(" Data Curator - share usable open data")]),e._v(" "),r("p",[e._v("Open data producers are increasingly focusing on improving open data so it can be easily used to create insight and drive positive change.")]),e._v(" "),r("p",[e._v("Open data is more likely to be used if data consumers can:")]),e._v(" "),r("ul",[r("li",[e._v("understand the structure of the data")]),e._v(" "),r("li",[e._v("understand the quality of the data")]),e._v(" "),r("li",[e._v("understand why and how the data was collected")]),e._v(" "),r("li",[e._v("look up the meaning of codes used in the data")]),e._v(" "),r("li",[e._v("access the data in an open machine-readable format")]),e._v(" "),r("li",[e._v("know how the data is licensed and how it can be reused")])]),e._v(" "),r("p",[e._v("Data Curator enables open data producers to define all this information using their desktop computer, prior to publishing it on the Internet.")]),e._v(" "),r("p",[e._v("Data Curator uses the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data specification"),r("OutboundLink")],1),e._v(" and software to package the data and supporting information in a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",title:"Tabular Data Package specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular Data Package"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[r("img",{attrs:{src:t(484),alt:"Data Curator screenshot"}})]),e._v(" "),r("h2",{attrs:{id:"using-data-curator"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#using-data-curator"}},[e._v("#")]),e._v(" Using Data Curator")]),e._v(" "),r("p",[e._v("Here’s how to use Data Curator to share usable open data in a data package:")]),e._v(" "),r("ol",[r("li",[e._v("Download "),r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/releases/latest",title:"Download Data Curator for Windows or macOS",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Curator"),r("OutboundLink")],1),e._v(" for Windows or macOS")]),e._v(" "),r("li",[e._v("In Data Curator, either:\n"),r("ul",[r("li",[e._v("create some data")]),e._v(" "),r("li",[e._v("open an Excel sheet")]),e._v(" "),r("li",[e._v("open a separated value file (e.g. CSV, TSV)")])])]),e._v(" "),r("li",[e._v("Follow the steps below…")])]),e._v(" "),r("h3",{attrs:{id:"describe-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#describe-the-data"}},[e._v("#")]),e._v(" Describe the data")]),e._v(" "),r("p",[e._v("The Frictionless Data specification allows you to describe tabular data using a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",title:"Table Schema specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),r("OutboundLink")],1),e._v(". A Table Schema allows each field in the data to be given:")]),e._v(" "),r("ul",[r("li",[e._v("a "),r("code",[e._v("name")]),e._v(", "),r("code",[e._v("title")]),e._v(" and "),r("code",[e._v("description")])]),e._v(" "),r("li",[e._v("a data "),r("code",[e._v("type")]),e._v(" (e.g. "),r("code",[e._v("string")]),e._v(", "),r("code",[e._v("integer")]),e._v(") and "),r("code",[e._v("format")]),e._v(" (e.g. "),r("code",[e._v("uri")]),e._v(", "),r("code",[e._v("email")]),e._v(")")]),e._v(" "),r("li",[e._v("one or more "),r("code",[e._v("constraints")]),e._v(" (e.g. "),r("code",[e._v("required")]),e._v(", "),r("code",[e._v("unique")]),e._v(") to limit data values and improve data validation")])]),e._v(" "),r("p",[e._v("The Table Schema also allows you to describe the characters used to represent missing values (e.g. "),r("code",[e._v("n/a")]),e._v(", "),r("code",[e._v("tba")]),e._v("), primary keys, and foreign key relationships.")]),e._v(" "),r("p",[e._v("After adding data in Data Curator, to create a Table Schema:")]),e._v(" "),r("ul",[r("li",[e._v("Give your data a header row, if it doesn’t have one")]),e._v(" "),r("li",[e._v("Set the header row to give each field a "),r("code",[e._v("name")])]),e._v(" "),r("li",[e._v("Guess column properties to give each field a "),r("code",[e._v("type")]),e._v(" and "),r("code",[e._v("format")])]),e._v(" "),r("li",[e._v("Set column properties to improve the data "),r("code",[e._v("type")]),e._v(" and "),r("code",[e._v("format")]),e._v(" guesses, and add a "),r("code",[e._v("title")]),e._v(", "),r("code",[e._v("description")]),e._v(" and "),r("code",[e._v("constraints")])]),e._v(" "),r("li",[e._v("Set table properties to give the table a "),r("code",[e._v("name")]),e._v(", define missing values, a primary key, and foreign keys.")])]),e._v(" "),r("h3",{attrs:{id:"validate-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#validate-the-data"}},[e._v("#")]),e._v(" Validate the data")]),e._v(" "),r("p",[e._v("Using Data Curator, you can validate if the data complies with the field’s "),r("code",[e._v("type")]),e._v(", "),r("code",[e._v("format")]),e._v(" and "),r("code",[e._v("contraints")]),e._v(". Errors found can be filtered in different ways so you can correct errors by row, by column or by error type.")]),e._v(" "),r("p",[e._v("In some cases data errors cannot be corrected, as they should be corrected in the source system and not as part of the data packaging process. If you’re happy to publish the data with errors, the error messages can be appended to the provenance information.")]),e._v(" "),r("h3",{attrs:{id:"provide-context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#provide-context"}},[e._v("#")]),e._v(" Provide context")]),e._v(" "),r("p",[e._v("Data Curator lets you add provenance information to help people understand why and how the data was collected and determine if it is fit for their purpose.")]),e._v(" "),r("p",[e._v("Provenance information can be entered using "),r("a",{attrs:{href:"http://commonmark.org",title:"Markdown specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("Markdown"),r("OutboundLink")],1),e._v(". You can preview the Markdown formatting in Data Curator.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(485),alt:"Add provenance information screenshot"}})]),e._v(" "),r("p",[e._v("You should follow the "),r("RouterLink",{attrs:{to:"/blog/2016/04/20/publish-faq/",title:"Publishing Data Packages - FAQ"}},[e._v("Readme FAQ")]),e._v(" when writing provenance information or, even easier, cut and paste from this "),r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/blob/develop/test/features/tools/sample-provenance-information.md",title:"Sample Provenance Information Markdown file on GitHub",target:"_blank",rel:"noopener noreferrer"}},[e._v("sample"),r("OutboundLink")],1),e._v(".")],1),e._v(" "),r("h3",{attrs:{id:"explain-the-meaning-of-codes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#explain-the-meaning-of-codes"}},[e._v("#")]),e._v(" Explain the meaning of codes")]),e._v(" "),r("p",[e._v("Data Curator supports foreign key relationships between data. Often a set of codes is used in a column of data and the list of valid codes and their description is in another table. The Frictionless Data specification enables linking this data within a table or across two tables in the same data package.")]),e._v(" "),r("p",[e._v("We’ve implemented the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#table-schema:-foreign-keys-to-data-packages",title:"The Foreign Keys to Data Packages pattern",target:"_blank",rel:"noopener noreferrer"}},[e._v("Foreign Keys to Data Packages pattern"),r("OutboundLink")],1),e._v(" so you can have foreign key relationships across two data packages. This is really useful if you want to share code-lists across organisations.")]),e._v(" "),r("p",[e._v("You can define foreign key relationships in Data Curator in the table properties and the relationships are checked when you validate the data.")]),e._v(" "),r("h3",{attrs:{id:"save-the-data-in-an-open-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#save-the-data-in-an-open-format"}},[e._v("#")]),e._v(" Save the data in an open format")]),e._v(" "),r("p",[e._v("Data Curator lets you save data as a comma, semicolon, or tab separated value file. A matching "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/csv-dialect/",title:"The CSV Dialect specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Dialect"),r("OutboundLink")],1),e._v(" is added to the data package.")]),e._v(" "),r("h3",{attrs:{id:"apply-an-open-license"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#apply-an-open-license"}},[e._v("#")]),e._v(" Apply an open license")]),e._v(" "),r("p",[e._v("Applying a license, waiver, or public domain mark to a "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",title:"The licenses property in the Data Package specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package"),r("OutboundLink")],1),e._v(" and its "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#optional-properties",title:"The licenses property in the Data Resource specification",target:"_blank",rel:"noopener noreferrer"}},[e._v("resources"),r("OutboundLink")],1),e._v(" helps people understand how they can use, modify, and share the contents of the data package.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(486),alt:"Apply open license to data package screenshot"}})]),e._v(" "),r("p",[e._v("Although there are many ways to "),r("RouterLink",{attrs:{to:"/blog/2018/03/27/applying-licenses/",title:"Guide to applying licenses, waivers or public domain marks to data packages"}},[e._v("apply a licence, waiver or public domain mark")]),e._v(" to a data package, Data Curator only allows you to use open licences - after all, its purpose is to share usable open data.")],1),e._v(" "),r("h3",{attrs:{id:"export-the-data-package"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#export-the-data-package"}},[e._v("#")]),e._v(" Export the data package")]),e._v(" "),r("p",[e._v("To ensure only usable open data is shared, Data Curator applies some checks before allowing a data package to be exported. These go beyond the mandatory requirements* in the Frictionless Data specification.")]),e._v(" "),r("p",[e._v("To export a tabular data package, it must have:")]),e._v(" "),r("ul",[r("li",[e._v("a header row")]),e._v(" "),r("li",[e._v("a table schema*")]),e._v(" "),r("li",[e._v("a table (resource) "),r("code",[e._v("name")]),e._v("*")]),e._v(" "),r("li",[e._v("a data package "),r("code",[e._v("name")]),e._v("*")]),e._v(" "),r("li",[e._v("provenance information")]),e._v(" "),r("li",[e._v("an open licence applied to the data package")])]),e._v(" "),r("p",[e._v("If a data package "),r("code",[e._v("version")]),e._v(" is used, it must follow the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#data-package-version",title:"Data Package Version pattern",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package version pattern"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Before exporting a data package you should:")]),e._v(" "),r("ul",[r("li",[e._v("add a "),r("code",[e._v("title")]),e._v(" and "),r("code",[e._v("description")]),e._v(" to each field, table and data package")]),e._v(" "),r("li",[e._v("acknowledge any data sources and contributors")]),e._v(" "),r("li",[e._v("validate the data and add any known errors to the provenance information")])]),e._v(" "),r("p",[e._v("The data package is exported as a "),r("code",[e._v("datapackage.zip")]),e._v(" file that contains the:")]),e._v(" "),r("ul",[r("li",[e._v("data files in a "),r("code",[e._v("/data")]),e._v(" directory")]),e._v(" "),r("li",[e._v("data package, table (resource), table schema, and csv dialect properties in a"),r("code",[e._v("datapackage.json")]),e._v(" file")]),e._v(" "),r("li",[e._v("provenance information in a "),r("code",[e._v("README.md")]),e._v(" file")])]),e._v(" "),r("h3",{attrs:{id:"share-the-data"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#share-the-data"}},[e._v("#")]),e._v(" Share the data")]),e._v(" "),r("p",[e._v("Share the "),r("code",[e._v("datapackage.zip")]),e._v(" with open data consumers by publishing it on the Internet or on an open data platform. Some platforms support uploading, displaying, and downloading data packages.")]),e._v(" "),r("p",[e._v("Open data consumers will be able to read the data package with one of the many applications and software libraries that work with data packages, including Data Curator.")]),e._v(" "),r("h2",{attrs:{id:"get-started"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#get-started"}},[e._v("#")]),e._v(" Get Started")]),e._v(" "),r("p",[r("strong",[r("a",{attrs:{href:"https://github.com/ODIQueensland/data-curator/releases/latest",title:"Download Data Curator for Windows or macOS",target:"_blank",rel:"noopener noreferrer"}},[e._v("Download Data Curator"),r("OutboundLink")],1)]),e._v(" for Windows or macOS and start sharing usable open data.")]),e._v(" "),r("h2",{attrs:{id:"who-made-data-curator"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#who-made-data-curator"}},[e._v("#")]),e._v(" Who made Data Curator?")]),e._v(" "),r("p",[e._v("Data Curator was made possible with funding from the "),r("a",{attrs:{href:"https://www.qld.gov.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Queensland Government"),r("OutboundLink")],1),e._v(" and the guidance of the Open Data Policy team within the Department of Housing and Public Works. We’re grateful for the ideas and testing provided by open data champions in the Department of Environment and Science, and the Department of Transport and Main Roads.")]),e._v(" "),r("p",[e._v("The project was led by "),r("a",{attrs:{href:"https://theodi.org/article/open-data-pathway-introducing-country-level-statistics/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Stephen Gates"),r("OutboundLink")],1),e._v(" from the "),r("a",{attrs:{href:"https://www.linkedin.com/company/odiaustraliannetwork/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ODI Australian Network"),r("OutboundLink")],1),e._v(". Software development was coordinated by Gavin Kennedy and performed by Matt Mulholland from the "),r("a",{attrs:{href:"https://www.qcif.edu.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Queensland Cyber Infrastructure Foundation"),r("OutboundLink")],1),e._v(" (QCIF).")]),e._v(" "),r("p",[e._v("Data Curator uses the Frictionless Data software libraries maintained by "),r("a",{attrs:{href:"https://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(" and we’re extremely grateful for the support provided by "),r("a",{attrs:{href:"https://github.com/orgs/frictionlessdata/teams/core/members",target:"_blank",rel:"noopener noreferrer"}},[e._v("the team"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Data Curator started life as "),r("a",{attrs:{href:"http://comma-chameleon.io",title:"Comma Chameleon - A desktop CSV editor for data publishers\n",target:"_blank",rel:"noopener noreferrer"}},[e._v("Comma Chameleon"),r("OutboundLink")],1),e._v(", an "),r("a",{attrs:{href:"https://youtu.be/wIIw0cTeUG0",title:"Stuart Harrison explains Comma Chameleon at CSVConf",target:"_blank",rel:"noopener noreferrer"}},[e._v("experiment"),r("OutboundLink")],1),e._v(" by "),r("a",{attrs:{href:"https://theodi.org",title:"The Open Data Institute",target:"_blank",rel:"noopener noreferrer"}},[e._v("the ODI"),r("OutboundLink")],1),e._v(". The ODI and the ODI Australian Network agreed to take the software in "),r("a",{attrs:{href:"https://theodi.org/article/odi-toolbox-application-experiments-from-comma-chameleon-to-data-curator/",title:"Stephen Fortune explains why Data Curator is a fork of Comma Chameleon",target:"_blank",rel:"noopener noreferrer"}},[e._v("different directions"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/23.895e9b8a.js b/assets/js/23.2dcf8244.js similarity index 93% rename from assets/js/23.895e9b8a.js rename to assets/js/23.2dcf8244.js index 9851d855d..a5e3523dd 100644 --- a/assets/js/23.895e9b8a.js +++ b/assets/js/23.2dcf8244.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{491:function(e,t,a){e.exports=a.p+"assets/img/nes1.5a0386a2.png"},492:function(e,t,a){e.exports=a.p+"assets/img/nes2.1c703c57.png"},493:function(e,t,a){e.exports=a.p+"assets/img/tree.fb09085d.png"},619:function(e,t,a){"use strict";a.r(t);var n=a(29),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Tool Fund."),n("br")]),e._v(" "),n("p",[e._v("Originally published at "),n("a",{attrs:{href:"https://blog.okfn.org/2019/12/16/neuroscience-experiments-system-frictionless-tool/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2019/12/16 neuroscience-experiments-system-frictionless-tool/"),n("OutboundLink")],1)]),e._v(" "),n("p",[n("em",[e._v("The 2019 Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This Fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),n("p",[e._v("The Research, Innovation and Dissemination Center for Neuromathematics (RIDC NeuroMat) is a research center established in 2013 by the São Paulo Research Foundation (FAPESP) at the University of São Paulo, in Brazil. A core mission of NeuroMat is the development of open-source computational tools to aid in scientific dissemination and advance open knowledge and open science. To this end, the team has created the Neuroscience Experiments System (NES), which is an open-source tool to assist neuroscience research laboratories in routine procedures for data collection. To more effectively understand the function and treatment of brain pathologies, NES aids in recording data and metadata from various experiments, including clinical data, electrophysiological data, and fundamental provenance information. NES then stores that data in a structured way, allowing researchers to seek and share data and metadata from those neuroscience experiments. For the 2019 Tool Fund, the NES team, particularly João Alexandre Peschanski, Cassiano dos Santos and Carlos Eduardo Ribas, proposed to adapt their existing export component to conform to the Frictionless Data specifications.")]),e._v(" "),n("p",[e._v("Public databases are seen as crucial by many members of the neuroscientific community as a means of moving science forward. However, simply opening up data is not enough; it should be created in a way that can be easily shared and used. For example, data and metadata should be readable by both researchers and machines, yet they typically are not. When the NES team learned about Frictionless Data, they were interested in trying to implement the specifications to help make the data and metadata in NES machine readable. For them, the advantage of the Frictionless Data approach was to be able to standardize data opening and sharing within the neuroscience community.")]),e._v(" "),n("p",[e._v("Before the Tool Fund, NES had an export component that set up a file with folders and documents with information on an entire experiment (including data collected from participants, device metadata, questionnaires, etc. ), but they wanted to improve this export to be more structured and open. By implementing Frictionless Data specifications, the resulting export component includes the Data Package (datapackage.json) and the folders/files inside the archive, with a root folder called data. With this new “frictionless” export component, researchers can transport and share their export data with other researchers in a recognized open standard format (the Data Package), facilitating the understanding of that exported data. They have also implemented Goodtables into the unit tests to check data structure.")]),e._v(" "),n("p",[e._v("The RIDC NeuroMat team’s expectation is that many researchers, particularly neuroscientists and experimentalists, will have an interest in using the freely available NES tool. With the anonymization of sensitive information, the data collected using NES can be publicly available through the NeuroMat Open Database, allowing any researcher to reproduce the experiment or simply use the data in a different study. In addition to storing collected experimental data and being a tool for guiding and documenting all the steps involved in a neuroscience experiment, NES has an integration with the Neuroscience Experiment Database, another NeuroMat project, based on a REST API, where NES users can send their experiments to become publicly available for other researchers to reproduce them or to use as inspiration for further experiments.")]),e._v(" "),n("p",[n("img",{attrs:{src:a(491),alt:"export"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Screenshot of the export of an experiment")]),n("br"),e._v(" "),n("img",{attrs:{src:a(492),alt:"data"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Screenshot of the export of data on participants")]),n("br"),e._v(" "),n("img",{attrs:{src:a(493),alt:"tree"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Picture of a hypothetical export file tree of type Per Experiment after the Frictionless Data implementation")])]),e._v(" "),n("h2",{attrs:{id:"further-reading"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#further-reading"}},[e._v("#")]),e._v(" Further reading")]),e._v(" "),n("ul",[n("li",[e._v("Repository: "),n("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/neuromat/nes"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("User manual: "),n("a",{attrs:{href:"https://nes.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://nes.readthedocs.io/en/latest/"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("NeuroMat blog: "),n("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://neuromat.numec.prp.usp.br/"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("Post on NES at the NeuroMat blog: "),n("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/content/a-pathway-to-reproducible-science-the-neuroscience-experiments-system/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://neuromat.numec.prp.usp.br/content/a-pathway-to-reproducible-science-the-neuroscience-experiments-system/"),n("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{489:function(e,t,a){e.exports=a.p+"assets/img/nes1.5a0386a2.png"},490:function(e,t,a){e.exports=a.p+"assets/img/nes2.1c703c57.png"},491:function(e,t,a){e.exports=a.p+"assets/img/tree.fb09085d.png"},617:function(e,t,a){"use strict";a.r(t);var n=a(29),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Tool Fund."),n("br")]),e._v(" "),n("p",[e._v("Originally published at "),n("a",{attrs:{href:"https://blog.okfn.org/2019/12/16/neuroscience-experiments-system-frictionless-tool/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2019/12/16 neuroscience-experiments-system-frictionless-tool/"),n("OutboundLink")],1)]),e._v(" "),n("p",[n("em",[e._v("The 2019 Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This Fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),n("p",[e._v("The Research, Innovation and Dissemination Center for Neuromathematics (RIDC NeuroMat) is a research center established in 2013 by the São Paulo Research Foundation (FAPESP) at the University of São Paulo, in Brazil. A core mission of NeuroMat is the development of open-source computational tools to aid in scientific dissemination and advance open knowledge and open science. To this end, the team has created the Neuroscience Experiments System (NES), which is an open-source tool to assist neuroscience research laboratories in routine procedures for data collection. To more effectively understand the function and treatment of brain pathologies, NES aids in recording data and metadata from various experiments, including clinical data, electrophysiological data, and fundamental provenance information. NES then stores that data in a structured way, allowing researchers to seek and share data and metadata from those neuroscience experiments. For the 2019 Tool Fund, the NES team, particularly João Alexandre Peschanski, Cassiano dos Santos and Carlos Eduardo Ribas, proposed to adapt their existing export component to conform to the Frictionless Data specifications.")]),e._v(" "),n("p",[e._v("Public databases are seen as crucial by many members of the neuroscientific community as a means of moving science forward. However, simply opening up data is not enough; it should be created in a way that can be easily shared and used. For example, data and metadata should be readable by both researchers and machines, yet they typically are not. When the NES team learned about Frictionless Data, they were interested in trying to implement the specifications to help make the data and metadata in NES machine readable. For them, the advantage of the Frictionless Data approach was to be able to standardize data opening and sharing within the neuroscience community.")]),e._v(" "),n("p",[e._v("Before the Tool Fund, NES had an export component that set up a file with folders and documents with information on an entire experiment (including data collected from participants, device metadata, questionnaires, etc. ), but they wanted to improve this export to be more structured and open. By implementing Frictionless Data specifications, the resulting export component includes the Data Package (datapackage.json) and the folders/files inside the archive, with a root folder called data. With this new “frictionless” export component, researchers can transport and share their export data with other researchers in a recognized open standard format (the Data Package), facilitating the understanding of that exported data. They have also implemented Goodtables into the unit tests to check data structure.")]),e._v(" "),n("p",[e._v("The RIDC NeuroMat team’s expectation is that many researchers, particularly neuroscientists and experimentalists, will have an interest in using the freely available NES tool. With the anonymization of sensitive information, the data collected using NES can be publicly available through the NeuroMat Open Database, allowing any researcher to reproduce the experiment or simply use the data in a different study. In addition to storing collected experimental data and being a tool for guiding and documenting all the steps involved in a neuroscience experiment, NES has an integration with the Neuroscience Experiment Database, another NeuroMat project, based on a REST API, where NES users can send their experiments to become publicly available for other researchers to reproduce them or to use as inspiration for further experiments.")]),e._v(" "),n("p",[n("img",{attrs:{src:a(489),alt:"export"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Screenshot of the export of an experiment")]),n("br"),e._v(" "),n("img",{attrs:{src:a(490),alt:"data"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Screenshot of the export of data on participants")]),n("br"),e._v(" "),n("img",{attrs:{src:a(491),alt:"tree"}}),e._v(" "),n("br"),e._v(" "),n("em",[e._v("Picture of a hypothetical export file tree of type Per Experiment after the Frictionless Data implementation")])]),e._v(" "),n("h2",{attrs:{id:"further-reading"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#further-reading"}},[e._v("#")]),e._v(" Further reading")]),e._v(" "),n("ul",[n("li",[e._v("Repository: "),n("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/neuromat/nes"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("User manual: "),n("a",{attrs:{href:"https://nes.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://nes.readthedocs.io/en/latest/"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("NeuroMat blog: "),n("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://neuromat.numec.prp.usp.br/"),n("OutboundLink")],1)]),e._v(" "),n("li",[e._v("Post on NES at the NeuroMat blog: "),n("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/content/a-pathway-to-reproducible-science-the-neuroscience-experiments-system/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://neuromat.numec.prp.usp.br/content/a-pathway-to-reproducible-science-the-neuroscience-experiments-system/"),n("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/24.c39cdc0b.js b/assets/js/24.6b19fc75.js similarity index 98% rename from assets/js/24.c39cdc0b.js rename to assets/js/24.6b19fc75.js index 27ba85fcb..f51de580d 100644 --- a/assets/js/24.c39cdc0b.js +++ b/assets/js/24.6b19fc75.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{503:function(e,t,o){e.exports=o.p+"assets/img/home.82d676b3.png"},504:function(e,t,o){e.exports=o.p+"assets/img/brand.5332d005.png"},505:function(e,t,o){e.exports=o.p+"assets/img/team.d3b5ad31.png"},626:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("We’re excited to announce the launch of our newly designed Frictionless Data website. The goal of the rebranding was to better communicate our brand values and improve the user experience. We want Frictionless Data to be wildly successful – we want people to not only know about us, but also also use our tools by default.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(503),alt:"Frictionless Data Homepage"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Screenshot of Frictionless Data Homepage")])]),e._v(" "),r("p",[e._v("We’ve improved the layout of our content, done some general changes on our brand logo, design, as well as on the whole site structure - the navigation is now more accessible with a sidebar option integrated so you can access key items easily and you get more from a quick read.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(504),alt:"Revamped Frictionless Brand Logo"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Revamped Frictionless Brand Logo")])]),e._v(" "),r("p",[e._v("We have a new "),r("a",{attrs:{href:"https://frictionlessdata.io/team/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Team page"),r("OutboundLink")],1),e._v(" with a list of Core Team Members, Tool Fund Partners, and Reproducible Research Fellows contributing effort to the project. There are also many other smaller, but impactful changes, all aiming to make the experience of the Frictionless Data website much better for you.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(505),alt:" Team Page"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Frictionless Data Team Page")])]),e._v(" "),r("p",[e._v("In our bid to increase the adoption of our tooling and specifications, we are also working on rewriting our documentation. The current effort involved will birth a new subpage called the "),r("a",{attrs:{href:"https://frictionlessdata.io/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Guide"),r("OutboundLink")],1),e._v(" - it’s first section is even already published on the website. Furthermore, we’ll be releasing different How-to’s sections that’ll walk our users through the steps required to solve a real-world data problem.")]),e._v(" "),r("p",[e._v("We hope you find our new website fresher, cleaner and clearer. If you have any feedback and/or improvement suggestions, please let us know on our "),r("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord Channel"),r("OutboundLink")],1),e._v(" or on "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{503:function(e,t,o){e.exports=o.p+"assets/img/home.82d676b3.png"},504:function(e,t,o){e.exports=o.p+"assets/img/brand.5332d005.png"},505:function(e,t,o){e.exports=o.p+"assets/img/team.d3b5ad31.png"},627:function(e,t,o){"use strict";o.r(t);var r=o(29),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("We’re excited to announce the launch of our newly designed Frictionless Data website. The goal of the rebranding was to better communicate our brand values and improve the user experience. We want Frictionless Data to be wildly successful – we want people to not only know about us, but also also use our tools by default.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(503),alt:"Frictionless Data Homepage"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Screenshot of Frictionless Data Homepage")])]),e._v(" "),r("p",[e._v("We’ve improved the layout of our content, done some general changes on our brand logo, design, as well as on the whole site structure - the navigation is now more accessible with a sidebar option integrated so you can access key items easily and you get more from a quick read.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(504),alt:"Revamped Frictionless Brand Logo"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Revamped Frictionless Brand Logo")])]),e._v(" "),r("p",[e._v("We have a new "),r("a",{attrs:{href:"https://frictionlessdata.io/team/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Team page"),r("OutboundLink")],1),e._v(" with a list of Core Team Members, Tool Fund Partners, and Reproducible Research Fellows contributing effort to the project. There are also many other smaller, but impactful changes, all aiming to make the experience of the Frictionless Data website much better for you.")]),e._v(" "),r("figure",[r("img",{attrs:{src:o(505),alt:" Team Page"}}),e._v(" "),r("figcaption",{staticStyle:{"text-align":"center"}},[e._v("Frictionless Data Team Page")])]),e._v(" "),r("p",[e._v("In our bid to increase the adoption of our tooling and specifications, we are also working on rewriting our documentation. The current effort involved will birth a new subpage called the "),r("a",{attrs:{href:"https://frictionlessdata.io/guide/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Guide"),r("OutboundLink")],1),e._v(" - it’s first section is even already published on the website. Furthermore, we’ll be releasing different How-to’s sections that’ll walk our users through the steps required to solve a real-world data problem.")]),e._v(" "),r("p",[e._v("We hope you find our new website fresher, cleaner and clearer. If you have any feedback and/or improvement suggestions, please let us know on our "),r("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord Channel"),r("OutboundLink")],1),e._v(" or on "),r("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("Twitter"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/27.49f94834.js b/assets/js/27.c41f5d1a.js similarity index 68% rename from assets/js/27.49f94834.js rename to assets/js/27.c41f5d1a.js index 286eae72e..2a171afa6 100644 --- a/assets/js/27.49f94834.js +++ b/assets/js/27.c41f5d1a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{359:function(t,e,a){},537:function(t,e,a){"use strict";a(359)},551:function(t,e,a){"use strict";a.r(e);var n={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(537),a(29)),s=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{360:function(t,e,a){},538:function(t,e,a){"use strict";a(360)},552:function(t,e,a){"use strict";a.r(e);var n={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(538),a(29)),s=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/28.0b998858.js b/assets/js/28.46cf6b02.js similarity index 89% rename from assets/js/28.0b998858.js rename to assets/js/28.46cf6b02.js index ef10184ae..478b7cd5f 100644 --- a/assets/js/28.0b998858.js +++ b/assets/js/28.46cf6b02.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{360:function(e,t,a){},538:function(e,t,a){"use strict";a(360)},552:function(e,t,a){"use strict";a.r(t);a(50),a(30),a(75),a(76);var o={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.activateCodeTab(e)}},mounted:function(){this.loadTabs()},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e},loadTabs:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,a){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=a),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab:function(e){this.codeTabs.forEach((function(e){e.elm&&e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},n=(a(538),a(29)),c=Object(n.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{359:function(e,t,a){},537:function(e,t,a){"use strict";a(359)},551:function(e,t,a){"use strict";a.r(t);a(50),a(30),a(75),a(76);var o={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.activateCodeTab(e)}},mounted:function(){this.loadTabs()},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e},loadTabs:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,a){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=a),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab:function(e){this.codeTabs.forEach((function(e){e.elm&&e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},n=(a(537),a(29)),c=Object(n.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/33.cc73c525.js b/assets/js/33.ed9301b7.js similarity index 98% rename from assets/js/33.cc73c525.js rename to assets/js/33.ed9301b7.js index b9206011d..a6d22a46b 100644 --- a/assets/js/33.cc73c525.js +++ b/assets/js/33.ed9301b7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{426:function(e,t,a){e.exports=a.p+"assets/img/elife1.bec2a182.png"},427:function(e,t,a){e.exports=a.p+"assets/img/elife3.4a4230d3.png"},576:function(e,t,a){"use strict";a.r(t);var r=a(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://elifesciences.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("eLife"),r("OutboundLink")],1),e._v(" is a non-profit organisation with a mission to help scientists accelerate discovery by operating a platform for research communication that encourages and recognises the most responsible behaviours in science. eLife publishes important research in all areas of life and biomedical sciences. The research is selected and evaluated by working scientists and is made freely available to all readers.")]),e._v(" "),r("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),r("p",[e._v("Having met at csv,conf,v3 in Portland in May 2017, eLife’s "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=YYWNSWNq-do&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN&index=27",target:"_blank",rel:"noopener noreferrer"}},[e._v("Naomi Penfold"),r("OutboundLink")],1),e._v(" and Open Knowledge International’s "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=Gk2F4hncAgY&index=35&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN",target:"_blank",rel:"noopener noreferrer"}},[e._v("Adrià Mercader"),r("OutboundLink")],1),e._v(" determined that eLife would be a good candidate for a Frictionless Data pilot. eLife has a strong emphasis on research data, and stood to benefit from the data validation service offered by Frictionless Data’s goodtables.")]),e._v(" "),r("h2",{attrs:{id:"the-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),r("p",[e._v("In order to assess the potential for a goodtables integration at eLife, we first needed to measure the quality of source data shared directly through eLife.")]),e._v(" "),r("h3",{attrs:{id:"software"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),r("p",[e._v("To explore the data published in the eLife platform we used the goodtables library"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(". Both the goodtables python library and web service"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" were developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema. You can read more about them "),r("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this introductory blog post"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h3",{attrs:{id:"what-did-we-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),r("p",[e._v("The first stage was to perform validation on all files made available through the eLife API in order to generate a report on data quality - this would allow us to understand the current state of eLife-published data and present the possibility of doing more exciting things with the data such as more comprehensive tests or visualisations.")]),e._v(" "),r("p",[e._v("The process:")]),e._v(" "),r("ul",[r("li",[e._v("We downloaded a big subset of the articles metadata made available via the eLife public API"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(".")]),e._v(" "),r("li",[e._v("We parsed all metadata files in order to extract the data files linked to each article, regardless of whether it was an additional file or a figure source. This gave us a direct link to each data file linked to the parent article.")]),e._v(" "),r("li",[e._v("We then ran the validation process on each file, storing the resulting report for future analysis.")])]),e._v(" "),r("p",[e._v("All scripts used in the process as well as the outputs can be found in "),r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-elife",target:"_blank",rel:"noopener noreferrer"}},[e._v("our pilot repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Here are some high-level statistics for the process:")]),e._v(" "),r("p",[e._v("We analyzed 3910 articles, 1085 of which had data files. The most common format was Microsoft Excel Open XML Format Spreadsheet (xlsx), with 89% of all 4318 files being published on this format. Older versions of Excel and CSV files made up the rest.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(426),alt:"datasets analysed by eLife image"}}),e._v(" "),r("em",[e._v("A summary of the eLife research articles analysed as part of the Frictionless Data pilot work")])]),e._v(" "),r("p",[e._v("In terms of validation, more than 75% of the articles analyzed contained at least one invalid file. Of course valid data is an arbitrary term based on the tests that are set within goodtables and results need to be reviewed to adjust the checks performed. For instance errors raised by blank rows are really common on Excel files as people add a title on the first row, leaving an empty row before the data, or empty rows are detected at the end of the sheet.")]),e._v(" "),r("p",[e._v("Other errors raised that might actually point to genuine errors included duplicated headers, extra headers, missing values, incorrect format values (e.g. date format instead of gene name) to give just some examples. Here’s a summary of the raw number of errors encountered. For a more complete description of each error, see the Data Quality Spec"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(":")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Error Type")]),e._v(" "),r("th",[e._v("Count")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Blank rows")]),e._v(" "),r("td",[e._v("45748")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate rows")]),e._v(" "),r("td",[e._v("9384")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate headers")]),e._v(" "),r("td",[e._v("6672")])]),e._v(" "),r("tr",[r("td",[e._v("Blank headers")]),e._v(" "),r("td",[e._v("2479")])]),e._v(" "),r("tr",[r("td",[e._v("Missing values")]),e._v(" "),r("td",[e._v("1032")])]),e._v(" "),r("tr",[r("td",[e._v("Extra values")]),e._v(" "),r("td",[e._v("39")])]),e._v(" "),r("tr",[r("td",[e._v("Source errors")]),e._v(" "),r("td",[e._v("11")])]),e._v(" "),r("tr",[r("td",[e._v("Format errors")]),e._v(" "),r("td",[e._v("4")])])])]),e._v(" "),r("h2",{attrs:{id:"review"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),r("h3",{attrs:{id:"how-effective-was-it"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[e._v("#")]),e._v(" How Effective Was It")]),e._v(" "),r("p",[e._v("Following analysis of a sample of the results, the vast majority of the errors appear to be due to the data being presented in nice-looking tables, using formatting to make particular elements more visually clear, as opposed to a machine-readable format:")]),e._v(" "),r("p",[r("img",{attrs:{src:a(427),alt:"example tables image shared by Naomi"}}),e._v(" "),r("em",[e._v("Data from Maddox et al. was shared in a machine-readable format (top), and adapted here to demonstrate how such data are often shared in a format that looks nice to the human reader (bottom)."),r("br"),e._v("\nSource: Source data"),r("br"),e._v("\nThe data file is presented as is and adapted from Maddox et al. eLife 2015;4:e04995 under the Creative Commons Attribution License (CC BY 4.0).")])]),e._v(" "),r("p",[e._v("This is not limited to the academic field of course, and the tendency to present data in spreadsheets so it is visually appealing is perhaps more prevalent in other areas. Perhaps because consumers of the data are even less likely to have the data processed by machines or because the data is collated by people with no experience of having to use it in their work.")]),e._v(" "),r("p",[e._v("In general the eLife datasets had better quality than for instance those created by government organisations, where structural issues like missing headers, extra cells, etc are much more common. So although the results here have been good, the community could derive substantial benefit from researchers going that extra mile to make files more machine-friendly and embrace more robust data description techniques like Data Packages.")]),e._v(" "),r("p",[e._v("Because these types of ‘errors’ are so common we have introduced default "),r("code",[e._v("ignore blank rows")]),e._v(" and "),r("code",[e._v("ignore duplicate rows")]),e._v(" options in "),r("a",{attrs:{href:"https://try.goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("our standalone validator"),r("OutboundLink")],1),e._v(" since this helps bring more complex errors to the surface and focusses attention on the errors which may be less trivial to resolve. Excluding duplicate and blank rows as well as duplicate headers (the most common but also relatively simple errors), 6.4% (277/4318) of data files had errors remaining, affecting 10% of research articles (112/1085).")]),e._v(" "),r("p",[e._v("Having said this, the relevance of these errors should not be underplayed as "),r("code",[e._v("blank rows")]),e._v(", "),r("code",[e._v("duplicate rows")]),e._v(" and other human-centered formatting preferences can still result in errors that prevent machine readability. Although the errors were often minor and easy to fix in our case, these seemingly simple errors can be obstructive to anyone trying to reuse data in a more computational workflow. Any computational analysis software, such as R"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(", requires that all column headers are variables and rows are individual observations i.e. we need variables in columns and observations in rows for any R analysis.")]),e._v(" "),r("p",[e._v("Much less frequent errors were related to difficulties retrieving and opening data files. It was certainly helpful to flag articles with files that were not actually possible to open (source-error), and the eLife production team are resolving these issues. While only representing a small number of datasets, this is one use key case for goodtables: enabling publishers to regularly check continued data availability after publication.")]),e._v(" "),r("p",[e._v("The use case for authors is clear — to identify how a dataset could be reshaped to make it reusable. However, this demands extra work if reshaping is a job added at the point of sharing work. In fact, it is important that any issues are resolved before final publication, to avoid adding updated versions of publications/datasets. Tools that reduce this burden by making it easy to quickly edit a datafile to resolve the errors are of interest moving forward. In the meantime, it may be helpful to consider some key best practises as datasets are collected.")]),e._v(" "),r("p",[e._v("Overall, the findings from this pilot demonstrate that there are different ways of producing data for sharing: datasets are predominantly presented in an Excel file with human aesthetics in mind, rather than structured for use by a statistical program. We found few issues with the data itself beyond presentation preferences. This is encouraging and is a great starting point for venturing forward with helping researchers to make greater use of open data.")]),e._v(" "),r("h2",{attrs:{id:"next-steps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),r("h3",{attrs:{id:"areas-for-further-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),r("p",[e._v("Libraries such as goodtables help to flag the gap between the current situation and the ideal situation, which is machine-readability. Most of the issues identified by goodtables in the datasets shared with eLife relate to structuring the data for human visual consumption: adding space around the table, merging header cells, etc. We encourage researchers to make data as easy to consume as possible, and recognise that datasets built primarily to look good to humans may only be sufficient for low-level reuse.")]),e._v(" "),r("p",[e._v("Moving forward, we are interested in tools and workflows that help to improve data quality earlier in the research lifecycle or make it easy to reshape at the point of sharing or reuse.")]),e._v(" "),r("h2",{attrs:{id:"find-out-more"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[e._v("#")]),e._v(" Find Out More")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-elife",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/pilot-elife"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Parts of this post are "),r("a",{attrs:{href:"https://elifesciences.org/labs/b6de9fb0/data-reusability-a-pilot-with-goodtables",target:"_blank",rel:"noopener noreferrer"}},[e._v("cross-posted"),r("OutboundLink")],1),e._v(" on eLife Labs"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn6",id:"fnref6"}},[e._v("[6]")])]),e._v(".")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("goodtables Python library: "),r("a",{attrs:{href:"http://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://github.com/frictionlessdata/goodtables-py"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("goodtables web service: "),r("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://goodtables.io"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("eLife Public API: "),r("a",{attrs:{href:"https://api.elifesciences.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://api.elifesciences.org/"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Data Quality Spec: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("R Programming Language: Popular open-source programming language and platform for data analysis: "),r("a",{attrs:{href:"https://www.r-project.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.r-project.org"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[r("p",[e._v("eLife Labs: "),r("a",{attrs:{href:"https://elifesciences.org/labs",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://elifesciences.org/labs"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{425:function(e,t,a){e.exports=a.p+"assets/img/elife1.bec2a182.png"},426:function(e,t,a){e.exports=a.p+"assets/img/elife3.4a4230d3.png"},575:function(e,t,a){"use strict";a.r(t);var r=a(29),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"context"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://elifesciences.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("eLife"),r("OutboundLink")],1),e._v(" is a non-profit organisation with a mission to help scientists accelerate discovery by operating a platform for research communication that encourages and recognises the most responsible behaviours in science. eLife publishes important research in all areas of life and biomedical sciences. The research is selected and evaluated by working scientists and is made freely available to all readers.")]),e._v(" "),r("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),r("p",[e._v("Having met at csv,conf,v3 in Portland in May 2017, eLife’s "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=YYWNSWNq-do&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN&index=27",target:"_blank",rel:"noopener noreferrer"}},[e._v("Naomi Penfold"),r("OutboundLink")],1),e._v(" and Open Knowledge International’s "),r("a",{attrs:{href:"https://www.youtube.com/watch?v=Gk2F4hncAgY&index=35&list=PLg5zZXwt2ZW5UIz13oI56vfZjF6mvpIXN",target:"_blank",rel:"noopener noreferrer"}},[e._v("Adrià Mercader"),r("OutboundLink")],1),e._v(" determined that eLife would be a good candidate for a Frictionless Data pilot. eLife has a strong emphasis on research data, and stood to benefit from the data validation service offered by Frictionless Data’s goodtables.")]),e._v(" "),r("h2",{attrs:{id:"the-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),r("p",[e._v("In order to assess the potential for a goodtables integration at eLife, we first needed to measure the quality of source data shared directly through eLife.")]),e._v(" "),r("h3",{attrs:{id:"software"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),r("p",[e._v("To explore the data published in the eLife platform we used the goodtables library"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(". Both the goodtables python library and web service"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" were developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema. You can read more about them "),r("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this introductory blog post"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h3",{attrs:{id:"what-did-we-do"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),r("p",[e._v("The first stage was to perform validation on all files made available through the eLife API in order to generate a report on data quality - this would allow us to understand the current state of eLife-published data and present the possibility of doing more exciting things with the data such as more comprehensive tests or visualisations.")]),e._v(" "),r("p",[e._v("The process:")]),e._v(" "),r("ul",[r("li",[e._v("We downloaded a big subset of the articles metadata made available via the eLife public API"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(".")]),e._v(" "),r("li",[e._v("We parsed all metadata files in order to extract the data files linked to each article, regardless of whether it was an additional file or a figure source. This gave us a direct link to each data file linked to the parent article.")]),e._v(" "),r("li",[e._v("We then ran the validation process on each file, storing the resulting report for future analysis.")])]),e._v(" "),r("p",[e._v("All scripts used in the process as well as the outputs can be found in "),r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-elife",target:"_blank",rel:"noopener noreferrer"}},[e._v("our pilot repository"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("Here are some high-level statistics for the process:")]),e._v(" "),r("p",[e._v("We analyzed 3910 articles, 1085 of which had data files. The most common format was Microsoft Excel Open XML Format Spreadsheet (xlsx), with 89% of all 4318 files being published on this format. Older versions of Excel and CSV files made up the rest.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(425),alt:"datasets analysed by eLife image"}}),e._v(" "),r("em",[e._v("A summary of the eLife research articles analysed as part of the Frictionless Data pilot work")])]),e._v(" "),r("p",[e._v("In terms of validation, more than 75% of the articles analyzed contained at least one invalid file. Of course valid data is an arbitrary term based on the tests that are set within goodtables and results need to be reviewed to adjust the checks performed. For instance errors raised by blank rows are really common on Excel files as people add a title on the first row, leaving an empty row before the data, or empty rows are detected at the end of the sheet.")]),e._v(" "),r("p",[e._v("Other errors raised that might actually point to genuine errors included duplicated headers, extra headers, missing values, incorrect format values (e.g. date format instead of gene name) to give just some examples. Here’s a summary of the raw number of errors encountered. For a more complete description of each error, see the Data Quality Spec"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(":")]),e._v(" "),r("table",[r("thead",[r("tr",[r("th",[e._v("Error Type")]),e._v(" "),r("th",[e._v("Count")])])]),e._v(" "),r("tbody",[r("tr",[r("td",[e._v("Blank rows")]),e._v(" "),r("td",[e._v("45748")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate rows")]),e._v(" "),r("td",[e._v("9384")])]),e._v(" "),r("tr",[r("td",[e._v("Duplicate headers")]),e._v(" "),r("td",[e._v("6672")])]),e._v(" "),r("tr",[r("td",[e._v("Blank headers")]),e._v(" "),r("td",[e._v("2479")])]),e._v(" "),r("tr",[r("td",[e._v("Missing values")]),e._v(" "),r("td",[e._v("1032")])]),e._v(" "),r("tr",[r("td",[e._v("Extra values")]),e._v(" "),r("td",[e._v("39")])]),e._v(" "),r("tr",[r("td",[e._v("Source errors")]),e._v(" "),r("td",[e._v("11")])]),e._v(" "),r("tr",[r("td",[e._v("Format errors")]),e._v(" "),r("td",[e._v("4")])])])]),e._v(" "),r("h2",{attrs:{id:"review"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),r("h3",{attrs:{id:"how-effective-was-it"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[e._v("#")]),e._v(" How Effective Was It")]),e._v(" "),r("p",[e._v("Following analysis of a sample of the results, the vast majority of the errors appear to be due to the data being presented in nice-looking tables, using formatting to make particular elements more visually clear, as opposed to a machine-readable format:")]),e._v(" "),r("p",[r("img",{attrs:{src:a(426),alt:"example tables image shared by Naomi"}}),e._v(" "),r("em",[e._v("Data from Maddox et al. was shared in a machine-readable format (top), and adapted here to demonstrate how such data are often shared in a format that looks nice to the human reader (bottom)."),r("br"),e._v("\nSource: Source data"),r("br"),e._v("\nThe data file is presented as is and adapted from Maddox et al. eLife 2015;4:e04995 under the Creative Commons Attribution License (CC BY 4.0).")])]),e._v(" "),r("p",[e._v("This is not limited to the academic field of course, and the tendency to present data in spreadsheets so it is visually appealing is perhaps more prevalent in other areas. Perhaps because consumers of the data are even less likely to have the data processed by machines or because the data is collated by people with no experience of having to use it in their work.")]),e._v(" "),r("p",[e._v("In general the eLife datasets had better quality than for instance those created by government organisations, where structural issues like missing headers, extra cells, etc are much more common. So although the results here have been good, the community could derive substantial benefit from researchers going that extra mile to make files more machine-friendly and embrace more robust data description techniques like Data Packages.")]),e._v(" "),r("p",[e._v("Because these types of ‘errors’ are so common we have introduced default "),r("code",[e._v("ignore blank rows")]),e._v(" and "),r("code",[e._v("ignore duplicate rows")]),e._v(" options in "),r("a",{attrs:{href:"https://try.goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("our standalone validator"),r("OutboundLink")],1),e._v(" since this helps bring more complex errors to the surface and focusses attention on the errors which may be less trivial to resolve. Excluding duplicate and blank rows as well as duplicate headers (the most common but also relatively simple errors), 6.4% (277/4318) of data files had errors remaining, affecting 10% of research articles (112/1085).")]),e._v(" "),r("p",[e._v("Having said this, the relevance of these errors should not be underplayed as "),r("code",[e._v("blank rows")]),e._v(", "),r("code",[e._v("duplicate rows")]),e._v(" and other human-centered formatting preferences can still result in errors that prevent machine readability. Although the errors were often minor and easy to fix in our case, these seemingly simple errors can be obstructive to anyone trying to reuse data in a more computational workflow. Any computational analysis software, such as R"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(", requires that all column headers are variables and rows are individual observations i.e. we need variables in columns and observations in rows for any R analysis.")]),e._v(" "),r("p",[e._v("Much less frequent errors were related to difficulties retrieving and opening data files. It was certainly helpful to flag articles with files that were not actually possible to open (source-error), and the eLife production team are resolving these issues. While only representing a small number of datasets, this is one use key case for goodtables: enabling publishers to regularly check continued data availability after publication.")]),e._v(" "),r("p",[e._v("The use case for authors is clear — to identify how a dataset could be reshaped to make it reusable. However, this demands extra work if reshaping is a job added at the point of sharing work. In fact, it is important that any issues are resolved before final publication, to avoid adding updated versions of publications/datasets. Tools that reduce this burden by making it easy to quickly edit a datafile to resolve the errors are of interest moving forward. In the meantime, it may be helpful to consider some key best practises as datasets are collected.")]),e._v(" "),r("p",[e._v("Overall, the findings from this pilot demonstrate that there are different ways of producing data for sharing: datasets are predominantly presented in an Excel file with human aesthetics in mind, rather than structured for use by a statistical program. We found few issues with the data itself beyond presentation preferences. This is encouraging and is a great starting point for venturing forward with helping researchers to make greater use of open data.")]),e._v(" "),r("h2",{attrs:{id:"next-steps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[e._v("#")]),e._v(" Next Steps")]),e._v(" "),r("h3",{attrs:{id:"areas-for-further-work"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-further-work"}},[e._v("#")]),e._v(" Areas for further work")]),e._v(" "),r("p",[e._v("Libraries such as goodtables help to flag the gap between the current situation and the ideal situation, which is machine-readability. Most of the issues identified by goodtables in the datasets shared with eLife relate to structuring the data for human visual consumption: adding space around the table, merging header cells, etc. We encourage researchers to make data as easy to consume as possible, and recognise that datasets built primarily to look good to humans may only be sufficient for low-level reuse.")]),e._v(" "),r("p",[e._v("Moving forward, we are interested in tools and workflows that help to improve data quality earlier in the research lifecycle or make it easy to reshape at the point of sharing or reuse.")]),e._v(" "),r("h2",{attrs:{id:"find-out-more"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[e._v("#")]),e._v(" Find Out More")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-elife",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/pilot-elife"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Parts of this post are "),r("a",{attrs:{href:"https://elifesciences.org/labs/b6de9fb0/data-reusability-a-pilot-with-goodtables",target:"_blank",rel:"noopener noreferrer"}},[e._v("cross-posted"),r("OutboundLink")],1),e._v(" on eLife Labs"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn6",id:"fnref6"}},[e._v("[6]")])]),e._v(".")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("goodtables Python library: "),r("a",{attrs:{href:"http://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://github.com/frictionlessdata/goodtables-py"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("goodtables web service: "),r("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://goodtables.io"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("eLife Public API: "),r("a",{attrs:{href:"https://api.elifesciences.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://api.elifesciences.org/"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Data Quality Spec: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/data-quality-spec/blob/master/spec.json"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("R Programming Language: Popular open-source programming language and platform for data analysis: "),r("a",{attrs:{href:"https://www.r-project.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.r-project.org"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[r("p",[e._v("eLife Labs: "),r("a",{attrs:{href:"https://elifesciences.org/labs",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://elifesciences.org/labs"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/34.006c3ade.js b/assets/js/34.979bfc4d.js similarity index 99% rename from assets/js/34.006c3ade.js rename to assets/js/34.979bfc4d.js index 960aa2916..3b6a4ac68 100644 --- a/assets/js/34.006c3ade.js +++ b/assets/js/34.979bfc4d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{442:function(t,a,e){t.exports=e.p+"assets/img/goodtablesio-screenshot.132bcda0.png"},443:function(t,a,e){t.exports=e.p+"assets/img/ckan-validation.c22eb702.png"},589:function(t,a,e){"use strict";e.r(a);var o=e(29),r=Object(o.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[t._v("One-off validation of your tabular datasets can be hectic, especially where plenty of published data is maintained and updated fairly regularly.")]),t._v(" "),o("p",[t._v("Running continuous checks on data provides regular feedback and contributes to better data quality as errors can be flagged and fixed early on. This section introduces you to tools that continually check your data for errors and flag content and structural issues as they arise. By eliminating the need to run manual checks on tabular datasets every time they are updated, they make your data workflow more efficient.")]),t._v(" "),o("p",[t._v("In this section, you will learn how to setup automatic tabular data validation using goodtables, so your data is validated every time it’s updated. Although not strictly necessary, it’s useful to "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[t._v("know about Data Packages and Table Schema")]),t._v(" before proceeding, as they allow you to describe your data in more detail, allowing more advanced validations.")],1),t._v(" "),o("p",[t._v("We will show how to set up automated tabular data validations for data published on:")]),t._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(", an open source data publishing platform;")]),t._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub"),o("OutboundLink")],1),t._v(", a hosting service;")]),t._v(" "),o("li",[o("a",{attrs:{href:"https://aws.amazon.com/s3/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazon S3"),o("OutboundLink")],1),t._v(", a data storage service.")])]),t._v(" "),o("p",[t._v("If you don’t use any of these platforms, you can still setup the validation using "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables-py"),o("OutboundLink")],1),t._v(", it will just require some technical knowledge")]),t._v(" "),o("p",[t._v("If you do use some of these platforms, the data validation report look like:")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://goodtables.io/github/vitorbaptista/birmingham_schools/jobs/3",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:e(442),alt:"Figure 1: Goodtables.io tabular data validation report"}}),o("OutboundLink")],1),o("br"),t._v(" "),o("em",[t._v("Figure 1: "),o("a",{attrs:{href:"http://Goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Goodtables.io"),o("OutboundLink")],1),t._v(" tabular data validation report.")])]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-ckan"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-ckan"}},[t._v("#")]),t._v(" Validate tabular data automatically on CKAN")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(" is an open source platform for publishing data online. It is widely used across the planet, including by the federal governments of the USA, United Kingdom, Brazil, and others.")]),t._v(" "),o("p",[t._v("To automatically validate tabular data on CKAN, enable the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension, which uses goodtables to run continuous checks on your data. The "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension:")]),t._v(" "),o("ul",[o("li",[t._v("Adds a badge next to each dataset showing the status of their validation (valid or invalid), and")]),t._v(" "),o("li",[t._v("Allows users to access the validation report, making it possible for errors to be identified and fixed.")])]),t._v(" "),o("p",[o("img",{attrs:{src:e(443),alt:"Figure 2: Annotated in red, automated validation checks on datasets in CKAN"}}),o("br"),t._v(" "),o("em",[t._v("Figure 2: Annotated in red, automated validation checks on datasets in CKAN.")])]),t._v(" "),o("p",[t._v("The installation and usage instructions for "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension are available on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("Github"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-github"}},[t._v("#")]),t._v(" Validate tabular data automatically on GitHub")]),t._v(" "),o("p",[t._v("If your data is hosted on GitHub, you can use goodtables web service to automatically validate it on every change.")]),t._v(" "),o("p",[t._v("For this section, you will first need to create a "),o("a",{attrs:{href:"https://help.github.com/articles/create-a-repo/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub repository"),o("OutboundLink")],1),t._v(" and add tabular data to it.")]),t._v(" "),o("p",[t._v("Once you have tabular data in your Github repository:")]),t._v(" "),o("ol",[o("li",[t._v("Login on "),o("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables.io"),o("OutboundLink")],1),t._v(" using your GitHub account and accept the permissions confirmation.")]),t._v(" "),o("li",[t._v("Once we’ve synchronized your repository list, go to the "),o("a",{attrs:{href:"https://goodtables.io/settings",target:"_blank",rel:"noopener noreferrer"}},[t._v("Manage Sources"),o("OutboundLink")],1),t._v(" page and enable the repository with the data you want to validate.\n"),o("ul",[o("li",[t._v("If you can’t find the repository, try clicking on the Refresh button on the Manage Sources page")])])])]),t._v(" "),o("p",[t._v("Goodtables will then validate all tabular data files (CSV, XLS, XLSX, ODS) and "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("data packages"),o("OutboundLink")],1),t._v(" in the repository. These validations will be executed on every change, including pull requests.")]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-amazon-s3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-amazon-s3"}},[t._v("#")]),t._v(" Validate tabular data automatically on Amazon S3")]),t._v(" "),o("p",[t._v("If your data is hosted on Amazon S3, you can use "),o("a",{attrs:{href:"https://goodtables.io/",title:"Goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables.io"),o("OutboundLink")],1),t._v(" to automatically validate it on every change.")]),t._v(" "),o("p",[t._v("It is a technical process to set up, as you need to know how to configure your Amazon S3 bucket. However, once it’s configured, the validations happen automatically on any tabular data created or updated. Find the detailed instructions "),o("a",{attrs:{href:"https://docs.goodtables.io/getting_started/s3.html",title:"Goodtables.io Amazon S3 instructions",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("h2",{attrs:{id:"custom-setup-of-automatic-tabular-data-validation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#custom-setup-of-automatic-tabular-data-validation"}},[t._v("#")]),t._v(" Custom setup of automatic tabular data validation")]),t._v(" "),o("p",[t._v("If you don’t use any of the officially supported data publishing platforms, you can use "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables-py"),o("OutboundLink")],1),t._v(" directly to validate your data. This is the most flexible option, as you can configure exactly when, and how your tabular data is validated. For example, if your data come from an external source, you could validate it once before you process it (so you catch errors in the source data), and once after cleaning, just before you publish it, so you catch errors introduced by your data processing.")]),t._v(" "),o("p",[t._v("The instructions on how to do this are technical, and can be found on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/goodtables-py"),o("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{442:function(t,a,e){t.exports=e.p+"assets/img/goodtablesio-screenshot.132bcda0.png"},443:function(t,a,e){t.exports=e.p+"assets/img/ckan-validation.c22eb702.png"},588:function(t,a,e){"use strict";e.r(a);var o=e(29),r=Object(o.a)({},(function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("p",[t._v("One-off validation of your tabular datasets can be hectic, especially where plenty of published data is maintained and updated fairly regularly.")]),t._v(" "),o("p",[t._v("Running continuous checks on data provides regular feedback and contributes to better data quality as errors can be flagged and fixed early on. This section introduces you to tools that continually check your data for errors and flag content and structural issues as they arise. By eliminating the need to run manual checks on tabular datasets every time they are updated, they make your data workflow more efficient.")]),t._v(" "),o("p",[t._v("In this section, you will learn how to setup automatic tabular data validation using goodtables, so your data is validated every time it’s updated. Although not strictly necessary, it’s useful to "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[t._v("know about Data Packages and Table Schema")]),t._v(" before proceeding, as they allow you to describe your data in more detail, allowing more advanced validations.")],1),t._v(" "),o("p",[t._v("We will show how to set up automated tabular data validations for data published on:")]),t._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://ckan.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(", an open source data publishing platform;")]),t._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub"),o("OutboundLink")],1),t._v(", a hosting service;")]),t._v(" "),o("li",[o("a",{attrs:{href:"https://aws.amazon.com/s3/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazon S3"),o("OutboundLink")],1),t._v(", a data storage service.")])]),t._v(" "),o("p",[t._v("If you don’t use any of these platforms, you can still setup the validation using "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables-py"),o("OutboundLink")],1),t._v(", it will just require some technical knowledge")]),t._v(" "),o("p",[t._v("If you do use some of these platforms, the data validation report look like:")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://goodtables.io/github/vitorbaptista/birmingham_schools/jobs/3",target:"_blank",rel:"noopener noreferrer"}},[o("img",{attrs:{src:e(442),alt:"Figure 1: Goodtables.io tabular data validation report"}}),o("OutboundLink")],1),o("br"),t._v(" "),o("em",[t._v("Figure 1: "),o("a",{attrs:{href:"http://Goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Goodtables.io"),o("OutboundLink")],1),t._v(" tabular data validation report.")])]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-ckan"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-ckan"}},[t._v("#")]),t._v(" Validate tabular data automatically on CKAN")]),t._v(" "),o("p",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CKAN"),o("OutboundLink")],1),t._v(" is an open source platform for publishing data online. It is widely used across the planet, including by the federal governments of the USA, United Kingdom, Brazil, and others.")]),t._v(" "),o("p",[t._v("To automatically validate tabular data on CKAN, enable the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension, which uses goodtables to run continuous checks on your data. The "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension:")]),t._v(" "),o("ul",[o("li",[t._v("Adds a badge next to each dataset showing the status of their validation (valid or invalid), and")]),t._v(" "),o("li",[t._v("Allows users to access the validation report, making it possible for errors to be identified and fixed.")])]),t._v(" "),o("p",[o("img",{attrs:{src:e(443),alt:"Figure 2: Annotated in red, automated validation checks on datasets in CKAN"}}),o("br"),t._v(" "),o("em",[t._v("Figure 2: Annotated in red, automated validation checks on datasets in CKAN.")])]),t._v(" "),o("p",[t._v("The installation and usage instructions for "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("ckanext-validation"),o("OutboundLink")],1),t._v(" extension are available on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[t._v("Github"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-github"}},[t._v("#")]),t._v(" Validate tabular data automatically on GitHub")]),t._v(" "),o("p",[t._v("If your data is hosted on GitHub, you can use goodtables web service to automatically validate it on every change.")]),t._v(" "),o("p",[t._v("For this section, you will first need to create a "),o("a",{attrs:{href:"https://help.github.com/articles/create-a-repo/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub repository"),o("OutboundLink")],1),t._v(" and add tabular data to it.")]),t._v(" "),o("p",[t._v("Once you have tabular data in your Github repository:")]),t._v(" "),o("ol",[o("li",[t._v("Login on "),o("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables.io"),o("OutboundLink")],1),t._v(" using your GitHub account and accept the permissions confirmation.")]),t._v(" "),o("li",[t._v("Once we’ve synchronized your repository list, go to the "),o("a",{attrs:{href:"https://goodtables.io/settings",target:"_blank",rel:"noopener noreferrer"}},[t._v("Manage Sources"),o("OutboundLink")],1),t._v(" page and enable the repository with the data you want to validate.\n"),o("ul",[o("li",[t._v("If you can’t find the repository, try clicking on the Refresh button on the Manage Sources page")])])])]),t._v(" "),o("p",[t._v("Goodtables will then validate all tabular data files (CSV, XLS, XLSX, ODS) and "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("data packages"),o("OutboundLink")],1),t._v(" in the repository. These validations will be executed on every change, including pull requests.")]),t._v(" "),o("h2",{attrs:{id:"validate-tabular-data-automatically-on-amazon-s3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-amazon-s3"}},[t._v("#")]),t._v(" Validate tabular data automatically on Amazon S3")]),t._v(" "),o("p",[t._v("If your data is hosted on Amazon S3, you can use "),o("a",{attrs:{href:"https://goodtables.io/",title:"Goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables.io"),o("OutboundLink")],1),t._v(" to automatically validate it on every change.")]),t._v(" "),o("p",[t._v("It is a technical process to set up, as you need to know how to configure your Amazon S3 bucket. However, once it’s configured, the validations happen automatically on any tabular data created or updated. Find the detailed instructions "),o("a",{attrs:{href:"https://docs.goodtables.io/getting_started/s3.html",title:"Goodtables.io Amazon S3 instructions",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),o("OutboundLink")],1),t._v(".")]),t._v(" "),o("h2",{attrs:{id:"custom-setup-of-automatic-tabular-data-validation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#custom-setup-of-automatic-tabular-data-validation"}},[t._v("#")]),t._v(" Custom setup of automatic tabular data validation")]),t._v(" "),o("p",[t._v("If you don’t use any of the officially supported data publishing platforms, you can use "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("goodtables-py"),o("OutboundLink")],1),t._v(" directly to validate your data. This is the most flexible option, as you can configure exactly when, and how your tabular data is validated. For example, if your data come from an external source, you could validate it once before you process it (so you catch errors in the source data), and once after cleaning, just before you publish it, so you catch errors introduced by your data processing.")]),t._v(" "),o("p",[t._v("The instructions on how to do this are technical, and can be found on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/goodtables-py"),o("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/35.6c3d0480.js b/assets/js/35.8381e3cb.js similarity index 99% rename from assets/js/35.6c3d0480.js rename to assets/js/35.8381e3cb.js index 53a9b798b..1a327c115 100644 --- a/assets/js/35.6c3d0480.js +++ b/assets/js/35.8381e3cb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{473:function(a,e,t){a.exports=t.p+"assets/img/datapackage-m-power-bi.81f4f0c6.gif"},474:function(a,e,t){a.exports=t.p+"assets/img/datapackage-m-excel.81f4f0c6.gif"},606:function(a,e,t){"use strict";t.r(e);var r=t(29),o=Object(r.a)({},(function(){var a=this,e=a.$createElement,r=a._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[r("p",[r("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-m",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package M"),r("OutboundLink")],1),a._v(", also known as "),r("em",[a._v("datapackage-m")]),a._v(", is a set of functions written in "),r("a",{attrs:{href:"https://docs.microsoft.com/en-us/powerquery-m/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power Query M"),r("OutboundLink")],1),a._v(" for working with Tabular Data Packages in "),r("a",{attrs:{href:"https://powerbi.microsoft.com/en-us/desktop/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power BI Desktop"),r("OutboundLink")],1),a._v(" and "),r("a",{attrs:{href:"https://support.office.com/en-us/article/introduction-to-microsoft-power-query-for-excel-6e92e2f4-2079-4e1f-bad5-89f6269cd605",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power Query for Excel"),r("OutboundLink")],1),a._v(" (also known as ‘Get & Transform Data’ in Excel 2016).")]),a._v(" "),r("p",[a._v("datapackage-m makes use of the Data Package, Data Resource, Tabular Data Package, Tabular Data Resource, and Table Schema specifications, enabling you to go from data to insight in Power BI and Excel, faster.")]),a._v(" "),r("p",[a._v("In 2014, while searching the web for high quality open data, we stumbled across the Frictionless Data project. On learning about "),r("RouterLink",{attrs:{to:"/data-package/"}},[a._v("Data Packages")]),a._v(", we spent some time getting acquainted with the specs and began to use Tabular Data Packages for some internal projects. datapackage-m then started off as an internal tool at Nimble Learn for working with Tabular Data Packages.")],1),a._v(" "),r("p",[r("img",{attrs:{src:t(473),alt:""}}),r("br"),a._v(" "),r("em",[a._v("How datapackage-m works in Power BI")])]),a._v(" "),r("p",[a._v("datapackage-m now implements "),r("a",{attrs:{href:"https://blog.okfn.org/2017/09/05/frictionless-data-v1-0/",target:"_blank",rel:"noopener noreferrer"}},[a._v("v1 of the Frictionless Data specs"),r("OutboundLink")],1),a._v(" from a Tabular Data Package consumption perspective. By implementing a broad number of the specs, datapackage-m is able to extract the tables from most "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Tabular Data Packages"),r("OutboundLink")],1),a._v(", or Data Packages with tabular resources, in seconds. These tables can be quickly loaded into a Power BI Data Model or an Excel Worksheet (or Data Model), ready for you to analyse. datapackage-m currently handles Gzip compressed resources and we’re looking into support for Zip. We have successfully tested datapackage-m with several Data Packages from "),r("a",{attrs:{href:"https://datahub.io/core",target:"_blank",rel:"noopener noreferrer"}},[a._v("Datahub"),r("OutboundLink")],1),a._v(" and the Frictionless Data "),r("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages",target:"_blank",rel:"noopener noreferrer"}},[a._v("Example Data Packages"),r("OutboundLink")],1),a._v(" GitHub repository.")]),a._v(" "),r("p",[a._v("In working with data, there are often many repetitive tasks required to get data into a state that can be analysed. Even when the requirement is just to profile and assess whether a new dataset is suitable for a given use case, a lot of time can be wasted getting it into good tabular shape. "),r("RouterLink",{attrs:{to:"/data-package/"}},[a._v("Data Packages")]),a._v(" are designed to alleviate this issue, and datapackage-m makes them available for use in Power BI and Excel.")],1),a._v(" "),r("p",[a._v("We find that the Frictionless Data specs are simple to use from both a data publisher and data consumer perspective. We’ve seen a great number of other specifications that are feature-rich but too verbose. In contrast to these, the Frictionless Data specs are minimalist and support use cases where Data Packages are created using one’s favourite text editor.")]),a._v(" "),r("p",[r("img",{attrs:{src:t(474),alt:""}}),r("br"),a._v(" "),r("em",[a._v("How datapackage-m works in Excel")])]),a._v(" "),r("p",[a._v("There’s an ongoing discussion around a Data Resource compression pattern which is important from a data publishing perspective i.e. due to ongoing file storage and bandwidth costs. Once this pattern is agreed upon and published, it would be good to see this added to the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Resource"),r("OutboundLink")],1),a._v(" and "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-resource/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Tabular Data Resource"),r("OutboundLink")],1),a._v(" specs not too long after.")]),a._v(" "),r("p",[a._v("Other than this, we would like to see another Data Package profile that extends the Tabular Data Package with semantic layer metadata. In addition to the Tabular Data Profile properties, this ‘Semantic Data Package’ would have properties for measure definitions, attribute hierarchies, and other semantic layer metadata. Something like this could be used to programmatically generate "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Semantic_data_model",target:"_blank",rel:"noopener noreferrer"}},[a._v("Semantic Data Models"),r("OutboundLink")],1),a._v(" in a data analytics tool of choice and populate it with data from the tabular data directly.")]),a._v(" "),r("p",[r("a",{attrs:{href:"http://okfnlabs.org/blog/2017/12/21/bootstrapping-data-standards-with-frictionless-data.html",target:"_blank",rel:"noopener noreferrer"}},[a._v("There are many existing use cases for Tabular Data Packages"),r("OutboundLink")],1),a._v(", and we see ‘Subject Area’ Tabular Data Packages as a significant additional use case that is worth exploring . By ‘Subject Area’, we mean a Tabular Data Package that combines relevant Tabular Data Resources from other high quality Tabular Data Packages. This would help to reduce the time spent seeking out related/relevant data for a given area of analysis and could save researchers tonnes of time, for example.")]),a._v(" "),r("p",[a._v("In addition to datapackage-m, Nimble Learn is working on a public-facing project that is focused on publishing pre-integrated open data from various sources as subject area Tabular Data Packages. In addition to this we plan on extending datapackage-m to adopt more Frictionless Data specifications. Keep an eye out for all these updates "),r("a",{attrs:{href:"https://github.com/nimblelearn",target:"_blank",rel:"noopener noreferrer"}},[a._v("on GitHub"),r("OutboundLink")],1),a._v(".")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{473:function(a,e,t){a.exports=t.p+"assets/img/datapackage-m-power-bi.81f4f0c6.gif"},474:function(a,e,t){a.exports=t.p+"assets/img/datapackage-m-excel.81f4f0c6.gif"},607:function(a,e,t){"use strict";t.r(e);var r=t(29),o=Object(r.a)({},(function(){var a=this,e=a.$createElement,r=a._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[r("p",[r("a",{attrs:{href:"https://github.com/nimblelearn/datapackage-m",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Package M"),r("OutboundLink")],1),a._v(", also known as "),r("em",[a._v("datapackage-m")]),a._v(", is a set of functions written in "),r("a",{attrs:{href:"https://docs.microsoft.com/en-us/powerquery-m/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power Query M"),r("OutboundLink")],1),a._v(" for working with Tabular Data Packages in "),r("a",{attrs:{href:"https://powerbi.microsoft.com/en-us/desktop/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power BI Desktop"),r("OutboundLink")],1),a._v(" and "),r("a",{attrs:{href:"https://support.office.com/en-us/article/introduction-to-microsoft-power-query-for-excel-6e92e2f4-2079-4e1f-bad5-89f6269cd605",target:"_blank",rel:"noopener noreferrer"}},[a._v("Power Query for Excel"),r("OutboundLink")],1),a._v(" (also known as ‘Get & Transform Data’ in Excel 2016).")]),a._v(" "),r("p",[a._v("datapackage-m makes use of the Data Package, Data Resource, Tabular Data Package, Tabular Data Resource, and Table Schema specifications, enabling you to go from data to insight in Power BI and Excel, faster.")]),a._v(" "),r("p",[a._v("In 2014, while searching the web for high quality open data, we stumbled across the Frictionless Data project. On learning about "),r("RouterLink",{attrs:{to:"/data-package/"}},[a._v("Data Packages")]),a._v(", we spent some time getting acquainted with the specs and began to use Tabular Data Packages for some internal projects. datapackage-m then started off as an internal tool at Nimble Learn for working with Tabular Data Packages.")],1),a._v(" "),r("p",[r("img",{attrs:{src:t(473),alt:""}}),r("br"),a._v(" "),r("em",[a._v("How datapackage-m works in Power BI")])]),a._v(" "),r("p",[a._v("datapackage-m now implements "),r("a",{attrs:{href:"https://blog.okfn.org/2017/09/05/frictionless-data-v1-0/",target:"_blank",rel:"noopener noreferrer"}},[a._v("v1 of the Frictionless Data specs"),r("OutboundLink")],1),a._v(" from a Tabular Data Package consumption perspective. By implementing a broad number of the specs, datapackage-m is able to extract the tables from most "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Tabular Data Packages"),r("OutboundLink")],1),a._v(", or Data Packages with tabular resources, in seconds. These tables can be quickly loaded into a Power BI Data Model or an Excel Worksheet (or Data Model), ready for you to analyse. datapackage-m currently handles Gzip compressed resources and we’re looking into support for Zip. We have successfully tested datapackage-m with several Data Packages from "),r("a",{attrs:{href:"https://datahub.io/core",target:"_blank",rel:"noopener noreferrer"}},[a._v("Datahub"),r("OutboundLink")],1),a._v(" and the Frictionless Data "),r("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages",target:"_blank",rel:"noopener noreferrer"}},[a._v("Example Data Packages"),r("OutboundLink")],1),a._v(" GitHub repository.")]),a._v(" "),r("p",[a._v("In working with data, there are often many repetitive tasks required to get data into a state that can be analysed. Even when the requirement is just to profile and assess whether a new dataset is suitable for a given use case, a lot of time can be wasted getting it into good tabular shape. "),r("RouterLink",{attrs:{to:"/data-package/"}},[a._v("Data Packages")]),a._v(" are designed to alleviate this issue, and datapackage-m makes them available for use in Power BI and Excel.")],1),a._v(" "),r("p",[a._v("We find that the Frictionless Data specs are simple to use from both a data publisher and data consumer perspective. We’ve seen a great number of other specifications that are feature-rich but too verbose. In contrast to these, the Frictionless Data specs are minimalist and support use cases where Data Packages are created using one’s favourite text editor.")]),a._v(" "),r("p",[r("img",{attrs:{src:t(474),alt:""}}),r("br"),a._v(" "),r("em",[a._v("How datapackage-m works in Excel")])]),a._v(" "),r("p",[a._v("There’s an ongoing discussion around a Data Resource compression pattern which is important from a data publishing perspective i.e. due to ongoing file storage and bandwidth costs. Once this pattern is agreed upon and published, it would be good to see this added to the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Data Resource"),r("OutboundLink")],1),a._v(" and "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-resource/",target:"_blank",rel:"noopener noreferrer"}},[a._v("Tabular Data Resource"),r("OutboundLink")],1),a._v(" specs not too long after.")]),a._v(" "),r("p",[a._v("Other than this, we would like to see another Data Package profile that extends the Tabular Data Package with semantic layer metadata. In addition to the Tabular Data Profile properties, this ‘Semantic Data Package’ would have properties for measure definitions, attribute hierarchies, and other semantic layer metadata. Something like this could be used to programmatically generate "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Semantic_data_model",target:"_blank",rel:"noopener noreferrer"}},[a._v("Semantic Data Models"),r("OutboundLink")],1),a._v(" in a data analytics tool of choice and populate it with data from the tabular data directly.")]),a._v(" "),r("p",[r("a",{attrs:{href:"http://okfnlabs.org/blog/2017/12/21/bootstrapping-data-standards-with-frictionless-data.html",target:"_blank",rel:"noopener noreferrer"}},[a._v("There are many existing use cases for Tabular Data Packages"),r("OutboundLink")],1),a._v(", and we see ‘Subject Area’ Tabular Data Packages as a significant additional use case that is worth exploring . By ‘Subject Area’, we mean a Tabular Data Package that combines relevant Tabular Data Resources from other high quality Tabular Data Packages. This would help to reduce the time spent seeking out related/relevant data for a given area of analysis and could save researchers tonnes of time, for example.")]),a._v(" "),r("p",[a._v("In addition to datapackage-m, Nimble Learn is working on a public-facing project that is focused on publishing pre-integrated open data from various sources as subject area Tabular Data Packages. In addition to this we plan on extending datapackage-m to adopt more Frictionless Data specifications. Keep an eye out for all these updates "),r("a",{attrs:{href:"https://github.com/nimblelearn",target:"_blank",rel:"noopener noreferrer"}},[a._v("on GitHub"),r("OutboundLink")],1),a._v(".")])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/37.f28f2173.js b/assets/js/37.f702daa6.js similarity index 95% rename from assets/js/37.f28f2173.js rename to assets/js/37.f702daa6.js index 836fca478..4476a079e 100644 --- a/assets/js/37.f28f2173.js +++ b/assets/js/37.f702daa6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{489:function(e,t,a){e.exports=a.p+"assets/img/FDdarwin1.8b2fb42c.png"},490:function(e,t,a){e.exports=a.p+"assets/img/FDdarwin2.3a98a635.png"},618:function(e,t,a){"use strict";a.r(t);var o=a(29),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Frictionless Data Tool Fund.")]),e._v(" "),o("p",[e._v("Originally published "),o("a",{attrs:{href:"https://blog.okfn.org/2019/12/09/andre-heughebaert-frictionless-darwincore/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2019/12/09/andre-heughebaert-frictionless-darwincore/"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("em",[e._v("The 2019 Frictionless Data Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),o("p",[e._v("André Heughebaert is an open biodiversity data advocate in his work and his free time. He is an IT Software Engineer at the Belgian Biodiversity Platform and is also the Belgian GBIF (Global Biodiversity Information Facility) Node manager. During this time, he has worked with the Darwin Core Standards and Open Biodiversity data on a daily basis. This work inspired him to apply for the Tool Fund, where he has developed a tool to convert DarwinCore Archives into Frictionless Data Packages.")]),e._v(" "),o("p",[e._v("The DarwinCore Archive (DwCA) is a standardised container for biodiversity data and metadata largely used amongst the GBIF community, which consists of more than 1,500 institutions around the world. The DwCA is used to publish biodiversity data about observations, collections specimens, species checklists and sampling events. However, this domain specific standard has some limitations, mainly the star schema (core table + extensions), rules that are sometimes too permissive, and a lack of controlled vocabularies for certain terms. These limitations encouraged André to investigate emerging open data standards. In 2016, he discovered Frictionless Data and published his first data package on historical data from 1815 Napoleonic Campaign of Belgium. He was then encouraged to create a tool that would, in part, build a bridge between these two open data ecosystems.")]),e._v(" "),o("p",[e._v("As a result, the Frictionless DarwinCore tool converts DwCA into Frictionless Data Packages, and also gives access to the vast Frictionless Data software ecosystem enabling constraints validation and support of a fully relational data schema. Technically speaking, the tool is implemented as a Python library, and is exposed as a Command Line Interface. The tool automatically converts:")]),e._v(" "),o("ul",[o("li",[e._v("DwCA data schema into datapackage.json")]),e._v(" "),o("li",[e._v("EML metadata into human readable markdown readme file")]),e._v(" "),o("li",[e._v("data files are converted when necessary, this is when default values are described")])]),e._v(" "),o("p",[e._v("The resulting zip file complies to both DarwinCore and Frictionless specifications.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(489),alt:"flow"}}),e._v(" "),o("br"),e._v(" "),o("em",[e._v("Frictionless DarwinCore Flow")])]),e._v(" "),o("p",[e._v("André hopes that bridging the two standards will give an excellent opportunity for the GBIF community to provide open biodiversity data to a wider audience. He says this is also a good opportunity to discover the Frictionless Data specifications and assess their applicability to the biodiversity domain. In fact, on 9th October 2019, André presented the tool at a GBIF Global Nodes meeting. It was perceived by the nodes managers community as an exploratory and pioneering work. While the command line interface offers a simple user interface for non-programmers, others might prefer the more flexible and sophisticated Python API. André encourages anyone working with DarwinCore data, including all data publishers and data users of GBIF network, to try out the new tool.")]),e._v(" "),o("p",[e._v("“I’m quite optimistic that the project will feed the necessary reflection on the evolution of our biodiversity standards and data flows.”")]),e._v(" "),o("p",[e._v("To get started, installation of the tool is done through a single pip install command (full directions can be found in the project README). Central to the tool is a table of DarwinCore terms linking a Data Package type, format and constraints for every DwC term. The tool can be used as CLI directly from your terminal window or as Python Library for developers. The tool can work with either locally stored or online DwCA. Once converted to Tabular DataPackage, the DwC data can then be ingested and further processed by software such as Goodtables, OpenRefine or any other Frictionless Data software.")]),e._v(" "),o("p",[e._v("André has aspirations to take the Frictionless DarwinCore tool further by encapsulating the tool in a web-service that will directly deliver Goodtables reports from a DwCA, which will make it even more user friendly. Additional ideas for further improvement would be including an import pathway for DarwinCore data into Open Refine, which is a popular tool in the GBIF community. André’s long term hope is that the Data Package will become an optional format for data download on "),o("a",{attrs:{href:"http://GBIF.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("GBIF.org"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("img",{attrs:{src:a(490),alt:"workflow"}}),e._v(" "),o("br")]),e._v(" "),o("p",[e._v("Further reading:")]),e._v(" "),o("p",[e._v("Repository: "),o("a",{attrs:{href:"https://github.com/frictionlessdata/FrictionlessDarwinCore",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/FrictionlessDarwinCore"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Project blog: "),o("a",{attrs:{href:"https://andrejjh.github.io/fdwc.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://andrejjh.github.io/fdwc.github.io/"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{493:function(e,t,a){e.exports=a.p+"assets/img/FDdarwin1.8b2fb42c.png"},494:function(e,t,a){e.exports=a.p+"assets/img/FDdarwin2.3a98a635.png"},620:function(e,t,a){"use strict";a.r(t);var o=a(29),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Frictionless Data Tool Fund.")]),e._v(" "),o("p",[e._v("Originally published "),o("a",{attrs:{href:"https://blog.okfn.org/2019/12/09/andre-heughebaert-frictionless-darwincore/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2019/12/09/andre-heughebaert-frictionless-darwincore/"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("em",[e._v("The 2019 Frictionless Data Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),o("p",[e._v("André Heughebaert is an open biodiversity data advocate in his work and his free time. He is an IT Software Engineer at the Belgian Biodiversity Platform and is also the Belgian GBIF (Global Biodiversity Information Facility) Node manager. During this time, he has worked with the Darwin Core Standards and Open Biodiversity data on a daily basis. This work inspired him to apply for the Tool Fund, where he has developed a tool to convert DarwinCore Archives into Frictionless Data Packages.")]),e._v(" "),o("p",[e._v("The DarwinCore Archive (DwCA) is a standardised container for biodiversity data and metadata largely used amongst the GBIF community, which consists of more than 1,500 institutions around the world. The DwCA is used to publish biodiversity data about observations, collections specimens, species checklists and sampling events. However, this domain specific standard has some limitations, mainly the star schema (core table + extensions), rules that are sometimes too permissive, and a lack of controlled vocabularies for certain terms. These limitations encouraged André to investigate emerging open data standards. In 2016, he discovered Frictionless Data and published his first data package on historical data from 1815 Napoleonic Campaign of Belgium. He was then encouraged to create a tool that would, in part, build a bridge between these two open data ecosystems.")]),e._v(" "),o("p",[e._v("As a result, the Frictionless DarwinCore tool converts DwCA into Frictionless Data Packages, and also gives access to the vast Frictionless Data software ecosystem enabling constraints validation and support of a fully relational data schema. Technically speaking, the tool is implemented as a Python library, and is exposed as a Command Line Interface. The tool automatically converts:")]),e._v(" "),o("ul",[o("li",[e._v("DwCA data schema into datapackage.json")]),e._v(" "),o("li",[e._v("EML metadata into human readable markdown readme file")]),e._v(" "),o("li",[e._v("data files are converted when necessary, this is when default values are described")])]),e._v(" "),o("p",[e._v("The resulting zip file complies to both DarwinCore and Frictionless specifications.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(493),alt:"flow"}}),e._v(" "),o("br"),e._v(" "),o("em",[e._v("Frictionless DarwinCore Flow")])]),e._v(" "),o("p",[e._v("André hopes that bridging the two standards will give an excellent opportunity for the GBIF community to provide open biodiversity data to a wider audience. He says this is also a good opportunity to discover the Frictionless Data specifications and assess their applicability to the biodiversity domain. In fact, on 9th October 2019, André presented the tool at a GBIF Global Nodes meeting. It was perceived by the nodes managers community as an exploratory and pioneering work. While the command line interface offers a simple user interface for non-programmers, others might prefer the more flexible and sophisticated Python API. André encourages anyone working with DarwinCore data, including all data publishers and data users of GBIF network, to try out the new tool.")]),e._v(" "),o("p",[e._v("“I’m quite optimistic that the project will feed the necessary reflection on the evolution of our biodiversity standards and data flows.”")]),e._v(" "),o("p",[e._v("To get started, installation of the tool is done through a single pip install command (full directions can be found in the project README). Central to the tool is a table of DarwinCore terms linking a Data Package type, format and constraints for every DwC term. The tool can be used as CLI directly from your terminal window or as Python Library for developers. The tool can work with either locally stored or online DwCA. Once converted to Tabular DataPackage, the DwC data can then be ingested and further processed by software such as Goodtables, OpenRefine or any other Frictionless Data software.")]),e._v(" "),o("p",[e._v("André has aspirations to take the Frictionless DarwinCore tool further by encapsulating the tool in a web-service that will directly deliver Goodtables reports from a DwCA, which will make it even more user friendly. Additional ideas for further improvement would be including an import pathway for DarwinCore data into Open Refine, which is a popular tool in the GBIF community. André’s long term hope is that the Data Package will become an optional format for data download on "),o("a",{attrs:{href:"http://GBIF.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("GBIF.org"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("img",{attrs:{src:a(494),alt:"workflow"}}),e._v(" "),o("br")]),e._v(" "),o("p",[e._v("Further reading:")]),e._v(" "),o("p",[e._v("Repository: "),o("a",{attrs:{href:"https://github.com/frictionlessdata/FrictionlessDarwinCore",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/FrictionlessDarwinCore"),o("OutboundLink")],1)]),e._v(" "),o("p",[e._v("Project blog: "),o("a",{attrs:{href:"https://andrejjh.github.io/fdwc.github.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://andrejjh.github.io/fdwc.github.io/"),o("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/41.e22b5b4c.js b/assets/js/41.c220c8df.js similarity index 98% rename from assets/js/41.e22b5b4c.js rename to assets/js/41.c220c8df.js index e7eff705c..710b88d82 100644 --- a/assets/js/41.e22b5b4c.js +++ b/assets/js/41.c220c8df.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{353:function(t,s,a){},531:function(t,s,a){"use strict";a(353)},724:function(t,s,a){"use strict";a.r(s);a(531);var l=a(29),i=Object(l.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"page-frontmatter-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#page-frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$page.frontmatter.title))]),t._v(" "),a("p",[t._v("Our mission is to bring simplicity and gracefulness to the messy world of data. We build products for developers and data engineers. And those who aspire to become one.")]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"light-logo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#light-logo"}},[t._v("#")]),t._v(" Light Logo")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-color-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-6 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/5 pt-12 pl-64",attrs:{src:"/img/frictionless-color-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"dark-logo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dark-logo"}},[t._v("#")]),t._v(" Dark Logo")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-black-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-6 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/5 pt-12 pl-64",attrs:{src:"/img/frictionless-black-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"light-logotype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#light-logotype"}},[t._v("#")]),t._v(" Light Logotype")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-color-full-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-1 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/2 pt-16 pl-40",attrs:{src:"/img/frictionless-color-full-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"dark-logotype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dark-logotype"}},[t._v("#")]),t._v(" Dark Logotype")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-black-full-logo-blackfont.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-1 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/2 pt-16 pl-40",attrs:{src:"/img/frictionless-black-full-logo-blackfont.svg"}})])])])])}),[],!1,null,"c0ada04e",null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{353:function(t,s,a){},531:function(t,s,a){"use strict";a(353)},727:function(t,s,a){"use strict";a.r(s);a(531);var l=a(29),i=Object(l.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"page-frontmatter-title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#page-frontmatter-title"}},[t._v("#")]),t._v(" "+t._s(t.$page.frontmatter.title))]),t._v(" "),a("p",[t._v("Our mission is to bring simplicity and gracefulness to the messy world of data. We build products for developers and data engineers. And those who aspire to become one.")]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"light-logo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#light-logo"}},[t._v("#")]),t._v(" Light Logo")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-color-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-6 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/5 pt-12 pl-64",attrs:{src:"/img/frictionless-color-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"dark-logo"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dark-logo"}},[t._v("#")]),t._v(" Dark Logo")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-black-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-6 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/5 pt-12 pl-64",attrs:{src:"/img/frictionless-black-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"light-logotype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#light-logotype"}},[t._v("#")]),t._v(" Light Logotype")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-color-full-logo.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-1 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/2 pt-16 pl-40",attrs:{src:"/img/frictionless-color-full-logo.svg"}})])])]),t._v(" "),a("div",{staticClass:"container flex flex-row"},[a("h2",{attrs:{id:"dark-logotype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dark-logotype"}},[t._v("#")]),t._v(" Dark Logotype")]),t._v(" "),a("div",{staticClass:"containerx w-full self-end text-right"},[a("a",{staticClass:"inline-block",attrs:{href:"/img/frictionless-black-full-logo-blackfont.svg",download:""}},[t._v("\n .svg\n ")])])]),t._v(" "),a("hr"),t._v(" "),a("div",{staticClass:"w-full pt-4 pb-5 mx-auto"},[a("div",{staticClass:"w-full shadow subpixel-antialiased rounded h-64 bg-white border-gray-100 mx-auto"},[a("div",{staticClass:"pl-1 pt-1 h-auto font-mono text-xs bg-white"},[a("img",{staticClass:"w-1/2 pt-16 pl-40",attrs:{src:"/img/frictionless-black-full-logo-blackfont.svg"}})])])])])}),[],!1,null,"c0ada04e",null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/45.41ae7b03.js b/assets/js/45.98ef683b.js similarity index 97% rename from assets/js/45.41ae7b03.js rename to assets/js/45.98ef683b.js index 0fa363302..8ba71fadf 100644 --- a/assets/js/45.41ae7b03.js +++ b/assets/js/45.98ef683b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{418:function(e,t,a){e.exports=a.p+"assets/img/cmso-1.25f92f63.png"},571:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("Researchers worldwide try to understand how cells move, a process extremely important for many physiological and pathological conditions. "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Cell_migration",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell migration"),r("OutboundLink")],1),e._v(" is in fact involved in many processes, like wound healing,neuronal development and cancer invasion. The "),r("a",{attrs:{href:"https://cmso.science/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell Migration Standardization Organization"),r("OutboundLink")],1),e._v(" (CMSO) is a community building standards for cell migration data, in order to enable data sharing in the field. The organization has three main working groups:")]),e._v(" "),r("ul",[r("li",[e._v("Minimal reporting requirement (developing "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/MIACME",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIACME"),r("OutboundLink")],1),e._v(", i.e. the Minimum Information About a Cell Migration Experiment)")]),e._v(" "),r("li",[e._v("Controlled Vocabularies")]),e._v(" "),r("li",[e._v("Data Formats and APIs")])]),e._v(" "),r("p",[e._v("In our last working group, we discussed where the Data Package specifications"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(" could be used or expanded for the definition of a standard format and the corresponding libraries to interact with these standards. In particular, we have started to address the standardization of cell tracking data. This is data produced using tracking software that reconstructs cell movement in time based on images from a microscope.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(418),alt:"Diagram"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("In pink, the "),r("a",{attrs:{href:"http://isa-tools.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISA"),r("OutboundLink")],1),e._v(" (Investigation Study Assay) model to annotate the experimental metadata; in blue, the "),r("a",{attrs:{href:"http://www.openmicroscopy.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OME"),r("OutboundLink")],1),e._v(" (Open Microscopy Environment) model for the imaging data; in green, our biotracks format based on the Data Package specification for the analytics data (cell tracking, positions, features etc.);in purple, CV: Controlled Vocabulary; and in turquoise, "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/MIACME",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIACME"),r("OutboundLink")],1),e._v(": Minimum Information About a Cell Migration Experiment. "),r("a",{attrs:{href:"https://creativecommons.org/licenses/by-sa/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC BY-SA 4.0"),r("OutboundLink")],1),e._v(" Credit: Paola Masuzzo (text) and CMSO (diagram).")])]),e._v(" "),r("p",[e._v("CMSO deals specifically with cell migration data (a subject of cell biology). Our main challenge lies in the heterogeneity of the data. This diversity has its origin in two factors:")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Experimentally")]),e._v(": Cell migration data can be produced using many diverse techniques (imaging, non-imaging, dynamic, static, high-throughput/screening, etc.)")]),e._v(" "),r("li",[r("strong",[e._v("Analytically")]),e._v(": These data are produced using many diverse software packages, each of these writing data to specific (sometimes proprietary) file formats.")])]),e._v(" "),r("p",[e._v("This diversity hampers (or at least makes very difficult) procedures like meta-analysis, data integration, data mining, and last but not least, data "),r("em",[e._v("reproducibility")]),e._v(".")]),e._v(" "),r("p",[e._v("CMSO has developed and is about to release the first specification of a "),r("a",{attrs:{href:"https://cellmigstandorg.github.io/Tracks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell Tracking format"),r("OutboundLink")],1),e._v(". This specification is built on a tabular representation, i.e. data are stored in tables. Current v0.1 of this specification can be seen at "),r("a",{attrs:{href:"https://cellmigstandorg.github.io/Tracks/v0.1/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("CMSO is using the "),r("em",[e._v("Tabular")]),e._v(" Data Package"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" specification to represent cell migration-derived tracking data, as illustrated"),r("br"),e._v(" "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". The specification is used for two goals:")]),e._v(" "),r("ol",[r("li",[r("strong",[e._v("Create a Data Package representation")]),e._v(" where the data—in our case objects (e.g. cells detected in microscopy images), links and optionally tracks—are stored in CSV files, while metadata and schema"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(" information are stored in a JSON file.")]),e._v(" "),r("li",[r("strong",[e._v("Write")]),e._v(" this Data Package to a pandas"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(" dataframe, to aid quick inspection and visualization.")])]),e._v(" "),r("p",[e._v("You can see some examples "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/tree/master/examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("I am an Open Science fan and advocate, so I try to keep up to date with the initiatives of the"),r("br"),e._v(" "),r("a",{attrs:{href:"https://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(" teams. I think I first became aware of Frictionless Data when I saw a tweet and I checked the specs out. Also, CMSO really wanted to keep a possible specification and file format light and simple. So different people of the team must have googled for ‘CSV and JSON formats’ or something like that, and Frictionless Data popped out 😃.")]),e._v(" "),r("p",[e._v("I have opened a couple of issues on the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub page of the spec"),r("OutboundLink")],1),e._v(", detailing what I would like to see developed in the Frictionless Data project. The CMSO is not sure yet if the Data Package representation will be the one we’ll go for in the very end, because we would first like to know how sustainable/sustained this spec will be in the future.")]),e._v(" "),r("p",[e._v("CMSO is looking into expanding the "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/tree/master/examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("list of examples"),r("OutboundLink")],1),e._v(" we have so far in terms of tracking software. Personally, I would like to choose a reference data set (a live-cell, time-lapse microscopy data set), and run different cell tracking algorithms/software packages on it. Then I want to put the results into a common, light and easy-to-interpret CSV+JSON format (the biotracks format), and show people how data containerization"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(" can be the way to go to enable research data exchange and knowledge discovery at large.")]),e._v(" "),r("p",[e._v("With most other specifications, cell tracking data are stored in tabular format, but metadata are never kept together with the data, which makes data interpretation and sharing very difficult. The Frictionless Data specifications take good care of this aspect. Some other formats are based on XML"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn6",id:"fnref6"}},[e._v("[6]")])]),e._v(" annotation, which certainly does the job, but are perhaps heavier (even though perhaps more sustainable in the long term). I hate Excel formats, and unfortunately I need to parse those too. I love the integration with Python"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn7",id:"fnref7"}},[e._v("[7]")])]),e._v(" and the pandas"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4:1"}},[e._v("[4:1]")])]),e._v(" system, this is a big plus when doing data science.")]),e._v(" "),r("p",[e._v("As a researcher, I mostly deal with research data. I am pretty sure if this could work for cell migration data, it could work for many cell biology disciplines as well. I recommend speaking to more researchers and data producers to determine additional use cases!")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("Tabular Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/tabular-data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("Table Schema: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/table-schema"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Pandas: Python package for data analysis: "),r("a",{attrs:{href:"http://pandas.pydata.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://pandas.pydata.org/"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")]),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4:1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("Design Philosophy: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("specs"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[r("p",[e._v("Extensible Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/XML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/XML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn7"}},[r("p",[e._v("Data Package-aware libraries in Python: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/datapackage-py"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/tableschema-py"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables-py"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref7"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{417:function(e,t,a){e.exports=a.p+"assets/img/cmso-1.25f92f63.png"},569:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("Researchers worldwide try to understand how cells move, a process extremely important for many physiological and pathological conditions. "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Cell_migration",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell migration"),r("OutboundLink")],1),e._v(" is in fact involved in many processes, like wound healing,neuronal development and cancer invasion. The "),r("a",{attrs:{href:"https://cmso.science/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell Migration Standardization Organization"),r("OutboundLink")],1),e._v(" (CMSO) is a community building standards for cell migration data, in order to enable data sharing in the field. The organization has three main working groups:")]),e._v(" "),r("ul",[r("li",[e._v("Minimal reporting requirement (developing "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/MIACME",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIACME"),r("OutboundLink")],1),e._v(", i.e. the Minimum Information About a Cell Migration Experiment)")]),e._v(" "),r("li",[e._v("Controlled Vocabularies")]),e._v(" "),r("li",[e._v("Data Formats and APIs")])]),e._v(" "),r("p",[e._v("In our last working group, we discussed where the Data Package specifications"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(" could be used or expanded for the definition of a standard format and the corresponding libraries to interact with these standards. In particular, we have started to address the standardization of cell tracking data. This is data produced using tracking software that reconstructs cell movement in time based on images from a microscope.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(417),alt:"Diagram"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("In pink, the "),r("a",{attrs:{href:"http://isa-tools.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ISA"),r("OutboundLink")],1),e._v(" (Investigation Study Assay) model to annotate the experimental metadata; in blue, the "),r("a",{attrs:{href:"http://www.openmicroscopy.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OME"),r("OutboundLink")],1),e._v(" (Open Microscopy Environment) model for the imaging data; in green, our biotracks format based on the Data Package specification for the analytics data (cell tracking, positions, features etc.);in purple, CV: Controlled Vocabulary; and in turquoise, "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/MIACME",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIACME"),r("OutboundLink")],1),e._v(": Minimum Information About a Cell Migration Experiment. "),r("a",{attrs:{href:"https://creativecommons.org/licenses/by-sa/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC BY-SA 4.0"),r("OutboundLink")],1),e._v(" Credit: Paola Masuzzo (text) and CMSO (diagram).")])]),e._v(" "),r("p",[e._v("CMSO deals specifically with cell migration data (a subject of cell biology). Our main challenge lies in the heterogeneity of the data. This diversity has its origin in two factors:")]),e._v(" "),r("ul",[r("li",[r("strong",[e._v("Experimentally")]),e._v(": Cell migration data can be produced using many diverse techniques (imaging, non-imaging, dynamic, static, high-throughput/screening, etc.)")]),e._v(" "),r("li",[r("strong",[e._v("Analytically")]),e._v(": These data are produced using many diverse software packages, each of these writing data to specific (sometimes proprietary) file formats.")])]),e._v(" "),r("p",[e._v("This diversity hampers (or at least makes very difficult) procedures like meta-analysis, data integration, data mining, and last but not least, data "),r("em",[e._v("reproducibility")]),e._v(".")]),e._v(" "),r("p",[e._v("CMSO has developed and is about to release the first specification of a "),r("a",{attrs:{href:"https://cellmigstandorg.github.io/Tracks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cell Tracking format"),r("OutboundLink")],1),e._v(". This specification is built on a tabular representation, i.e. data are stored in tables. Current v0.1 of this specification can be seen at "),r("a",{attrs:{href:"https://cellmigstandorg.github.io/Tracks/v0.1/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("CMSO is using the "),r("em",[e._v("Tabular")]),e._v(" Data Package"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" specification to represent cell migration-derived tracking data, as illustrated"),r("br"),e._v(" "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(". The specification is used for two goals:")]),e._v(" "),r("ol",[r("li",[r("strong",[e._v("Create a Data Package representation")]),e._v(" where the data—in our case objects (e.g. cells detected in microscopy images), links and optionally tracks—are stored in CSV files, while metadata and schema"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(" information are stored in a JSON file.")]),e._v(" "),r("li",[r("strong",[e._v("Write")]),e._v(" this Data Package to a pandas"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(" dataframe, to aid quick inspection and visualization.")])]),e._v(" "),r("p",[e._v("You can see some examples "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/tree/master/examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("I am an Open Science fan and advocate, so I try to keep up to date with the initiatives of the"),r("br"),e._v(" "),r("a",{attrs:{href:"https://okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(" teams. I think I first became aware of Frictionless Data when I saw a tweet and I checked the specs out. Also, CMSO really wanted to keep a possible specification and file format light and simple. So different people of the team must have googled for ‘CSV and JSON formats’ or something like that, and Frictionless Data popped out 😃.")]),e._v(" "),r("p",[e._v("I have opened a couple of issues on the "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub page of the spec"),r("OutboundLink")],1),e._v(", detailing what I would like to see developed in the Frictionless Data project. The CMSO is not sure yet if the Data Package representation will be the one we’ll go for in the very end, because we would first like to know how sustainable/sustained this spec will be in the future.")]),e._v(" "),r("p",[e._v("CMSO is looking into expanding the "),r("a",{attrs:{href:"https://github.com/CellMigStandOrg/biotracks/tree/master/examples",target:"_blank",rel:"noopener noreferrer"}},[e._v("list of examples"),r("OutboundLink")],1),e._v(" we have so far in terms of tracking software. Personally, I would like to choose a reference data set (a live-cell, time-lapse microscopy data set), and run different cell tracking algorithms/software packages on it. Then I want to put the results into a common, light and easy-to-interpret CSV+JSON format (the biotracks format), and show people how data containerization"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(" can be the way to go to enable research data exchange and knowledge discovery at large.")]),e._v(" "),r("p",[e._v("With most other specifications, cell tracking data are stored in tabular format, but metadata are never kept together with the data, which makes data interpretation and sharing very difficult. The Frictionless Data specifications take good care of this aspect. Some other formats are based on XML"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn6",id:"fnref6"}},[e._v("[6]")])]),e._v(" annotation, which certainly does the job, but are perhaps heavier (even though perhaps more sustainable in the long term). I hate Excel formats, and unfortunately I need to parse those too. I love the integration with Python"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn7",id:"fnref7"}},[e._v("[7]")])]),e._v(" and the pandas"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4:1"}},[e._v("[4:1]")])]),e._v(" system, this is a big plus when doing data science.")]),e._v(" "),r("p",[e._v("As a researcher, I mostly deal with research data. I am pretty sure if this could work for cell migration data, it could work for many cell biology disciplines as well. I recommend speaking to more researchers and data producers to determine additional use cases!")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("Tabular Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/tabular-data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("Table Schema: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/table-schema"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Pandas: Python package for data analysis: "),r("a",{attrs:{href:"http://pandas.pydata.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://pandas.pydata.org/"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")]),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4:1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("Design Philosophy: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("specs"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn6"}},[r("p",[e._v("Extensible Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/XML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/XML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref6"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn7"}},[r("p",[e._v("Data Package-aware libraries in Python: "),r("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/datapackage-py"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/tableschema-py"),r("OutboundLink")],1),e._v(", "),r("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables-py"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref7"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/46.b7a06152.js b/assets/js/46.61d51c30.js similarity index 98% rename from assets/js/46.b7a06152.js rename to assets/js/46.61d51c30.js index c9ec40e6a..95de50f76 100644 --- a/assets/js/46.b7a06152.js +++ b/assets/js/46.61d51c30.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{417:function(e,t,a){e.exports=a.p+"assets/img/data-retriever-install.1fdce2e3.gif"},569:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[r("a",{attrs:{href:"http://www.data-retriever.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Data Retriever"),r("OutboundLink")],1),e._v(" automates the tasks of finding, downloading, and cleaning up publicly available data, and then stores them in a variety of databases and file formats. This lets data analysts spend less time cleaning up and managing data, and more time analyzing it.")]),e._v(" "),r("p",[e._v("We originally built the Data Retriever starting in 2010 with a focus on ecological data. Over time, we realized that the common challenges with finding downloading, and cleaning up ecological data applied to data in most other fields, so we rebranded and starting integrating data from other fields as well.")]),e._v(" "),r("p",[e._v("The Data Retriever is primarily focused on "),r("em",[e._v("tabular")]),e._v(" data, but we’re starting work on supporting spatial data as well.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(417),alt:"Diagram"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("The Data Retriever automatically installing the "),r("a",{attrs:{href:"https://www.pwrc.usgs.gov/bbs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BBS (USGS North American Breeding Bird Survey)"),r("OutboundLink")],1),e._v(" dataset")])]),e._v(" "),r("p",[e._v("Data is often messy and needs cleaning and restructuring before it can be effectively used. It is often not feasible to modify and redistribute the data due to licensing and other limitations (Editor’s note: see our "),r("RouterLink",{attrs:{to:"/blog/2016/11/15/open-power-system-data/"}},[e._v("Open Power System Data case study")]),e._v(" for more on this).")],1),e._v(" "),r("p",[e._v("We need to make it as easy as possible for contributors to "),r("a",{attrs:{href:"https://retriever.readthedocs.io/en/latest/retriever.lib.html#retriever-lib-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("add new datasets"),r("OutboundLink")],1),e._v(". For relatively clean datasets this means having a simple, easy-to-work-with metadata standard to describe existing data. The description for each dataset is written in a single file which gets read by our plugin infrastructure.")]),e._v(" "),r("p",[e._v("To describe the structure of simple data, we originally created a YAML-like"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(" metadata structure. When the Data Package"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" specs were created by "),r("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(", we decided to switch over to using this standard so that others could benefit from the metadata we were creating and so that we could benefit from th standards-based infrastructure[^software] being created around the specs.")]),e._v(" "),r("p",[e._v("The transition to the Data Package specification was fairly smooth as most of the fields we needed were already included in the specs. The only thing that we needed to add were fields for restructuring poorly formatted data since the spec assumes the data is well structured to begin with. For example, we use custom fields for describing how to convert "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Wide_and_narrow_data",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("wide")]),e._v(" data to "),r("strong",[e._v("long")]),e._v(" data"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("We first learned about Frictionless Data through the "),r("a",{attrs:{href:"https://blog.okfn.org/2016/02/29/sloan-foundation-funds-frictionless-data-tooling-and-engagement-at-open-knowledge/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement"),r("OutboundLink")],1),e._v(" of their funding by the Sloan Foundation. Going forward, we would love to see the Data Package spec expanded to include information about “imperfections” in data. It currently assumes that the person creating the metadata can modify the raw data files to comply with the standard rules of data structure. However this doesn’t work if someone else is distributing the data, which is a very common use"),r("br"),e._v("\ncase.")]),e._v(" "),r("p",[e._v("The expansion of the standard would include things like a way to indicate wide versus long data with enough information to uniquely describe how to translate from one to the other as well as information on single tables that are composed from data in many separate files. We have already been adding new fields to the JSON to accomplish some of these things and would be happy to be part of a larger dialog about implementing them more widely. For the wide-data-to-long-data example mentioned above, we use "),r("code",[e._v("ct_column")]),e._v(" and "),r("code",[e._v("ct_names")]),e._v(" fields and a "),r("code",[e._v("ct-type")]),e._v(" type to indicate how to transform the data into a properly normalized form.")]),e._v(" "),r("p",[e._v("The other thing we’ve come across is the need to develop a clear specification for "),r("a",{attrs:{href:"http://semver.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("semantic versioning"),r("OutboundLink")],1),e._v(" of Data Packages. The specification includes an optional "),r("code",[e._v("version")]),e._v(" field"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(" for keeping track to changes to the package. This version has a standard structure from semantic versioning in software that includes major, minor, and patch level changes. Unlike in software there is no clearly established standard for what changes in different version numbers indicate. Since we work with a lot of different datasets, we’ve been changing a lot of version numbers over the last year; this has lead us to "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/421",target:"_blank",rel:"noopener noreferrer"}},[e._v("open a discussion with the OKFN team"),r("OutboundLink")],1),e._v(" about developing a standard to apply to these changes.")]),e._v(" "),r("p",[e._v("Our next big step is working on the challenge of "),r("strong",[e._v("simple data integration")]),e._v(". One of the major challenges data analysts have after they have cleaned up and prepared individual data sources is combining them. General solutions to the data integration problem (e.g. linked data approaches) have proven to difficult but we are approaching the problem by tackling a small number of common use cases and involving humans in the metadata development describing the linkages between datasets.")]),e._v(" "),r("p",[e._v("The major specification that is available for ecological data is the "),r("a",{attrs:{href:"https://knb.ecoinformatics.org/#external//emlparser/docs/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ecological Metadata Language (EML)"),r("OutboundLink")],1),e._v(". It is an XML"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(" based spec that includes a lot of information specific to ecological datasets. The nice thing about EML—which is also its challenge—is that it is very comprehensive. This gives it a lot of strength in a linked data context, but also means that it is difficult to drive adoption by users.")]),e._v(" "),r("p",[e._v("The Frictionless Data specifications line up better with our approach to data"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(", which is to complement lightweight computational methods with human contributions to make data easier to work with quickly.")]),e._v(" "),r("p",[e._v("Community contributions to our work are welcome. We work hard to make all of our development efforts open and inclusive (see our "),r("a",{attrs:{href:"https://github.com/weecology/retriever/blob/master/docs/code_of_conduct.rst",target:"_blank",rel:"noopener noreferrer"}},[e._v("Code of Conduct"),r("OutboundLink")],1),e._v(") and love it when new developers, data scientists, and domain specialists "),r("a",{attrs:{href:"http://www.data-retriever.org/#contribute",target:"_blank",rel:"noopener noreferrer"}},[e._v("contribute"),r("OutboundLink")],1),e._v(". A contribution can be as easy as adding a new dataset by following "),r("a",{attrs:{href:"https://retriever.readthedocs.io/en/latest/retriever.lib.html#retriever-lib-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("a set of prompts"),r("OutboundLink")],1),e._v(" to create a new JSON file and submitting a "),r("a",{attrs:{href:"https://help.github.com/articles/about-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR"),r("OutboundLink")],1),e._v(" on GitHub, or even just opening an issue to tell us about a dataset that would be useful to you. So, "),r("a",{attrs:{href:"http://github.com/weecology/retriever/issues/new",target:"_blank",rel:"noopener noreferrer"}},[e._v("open an issue"),r("OutboundLink")],1),e._v(", submit a PR, or stop by our "),r("a",{attrs:{href:"https://gitter.im/weecology/retriever",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gitter chat channel"),r("OutboundLink")],1),e._v(" and say “Hi”. We also participate in "),r("a",{attrs:{href:"https://developers.google.com/open-source/gsoc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google Summer of Code"),r("OutboundLink")],1),e._v(", which is a great opportunity for students interested in being directly supported to work on the project.")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("YAML Ain’t Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/YAML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/YAML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("Data Package version field: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#data-package-version",target:"_blank",rel:"noopener noreferrer"}},[e._v("/specs/#version"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Extensible Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/XML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/XML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("Design Philosophy: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/#design-philosophy",target:"_blank",rel:"noopener noreferrer"}},[e._v("/specs/#design-philosophy"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{416:function(e,t,a){e.exports=a.p+"assets/img/data-retriever-install.1fdce2e3.gif"},568:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[r("a",{attrs:{href:"http://www.data-retriever.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Data Retriever"),r("OutboundLink")],1),e._v(" automates the tasks of finding, downloading, and cleaning up publicly available data, and then stores them in a variety of databases and file formats. This lets data analysts spend less time cleaning up and managing data, and more time analyzing it.")]),e._v(" "),r("p",[e._v("We originally built the Data Retriever starting in 2010 with a focus on ecological data. Over time, we realized that the common challenges with finding downloading, and cleaning up ecological data applied to data in most other fields, so we rebranded and starting integrating data from other fields as well.")]),e._v(" "),r("p",[e._v("The Data Retriever is primarily focused on "),r("em",[e._v("tabular")]),e._v(" data, but we’re starting work on supporting spatial data as well.")]),e._v(" "),r("p",[r("img",{attrs:{src:a(416),alt:"Diagram"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("The Data Retriever automatically installing the "),r("a",{attrs:{href:"https://www.pwrc.usgs.gov/bbs/",target:"_blank",rel:"noopener noreferrer"}},[e._v("BBS (USGS North American Breeding Bird Survey)"),r("OutboundLink")],1),e._v(" dataset")])]),e._v(" "),r("p",[e._v("Data is often messy and needs cleaning and restructuring before it can be effectively used. It is often not feasible to modify and redistribute the data due to licensing and other limitations (Editor’s note: see our "),r("RouterLink",{attrs:{to:"/blog/2016/11/15/open-power-system-data/"}},[e._v("Open Power System Data case study")]),e._v(" for more on this).")],1),e._v(" "),r("p",[e._v("We need to make it as easy as possible for contributors to "),r("a",{attrs:{href:"https://retriever.readthedocs.io/en/latest/retriever.lib.html#retriever-lib-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("add new datasets"),r("OutboundLink")],1),e._v(". For relatively clean datasets this means having a simple, easy-to-work-with metadata standard to describe existing data. The description for each dataset is written in a single file which gets read by our plugin infrastructure.")]),e._v(" "),r("p",[e._v("To describe the structure of simple data, we originally created a YAML-like"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn1",id:"fnref1"}},[e._v("[1]")])]),e._v(" metadata structure. When the Data Package"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn2",id:"fnref2"}},[e._v("[2]")])]),e._v(" specs were created by "),r("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International"),r("OutboundLink")],1),e._v(", we decided to switch over to using this standard so that others could benefit from the metadata we were creating and so that we could benefit from th standards-based infrastructure[^software] being created around the specs.")]),e._v(" "),r("p",[e._v("The transition to the Data Package specification was fairly smooth as most of the fields we needed were already included in the specs. The only thing that we needed to add were fields for restructuring poorly formatted data since the spec assumes the data is well structured to begin with. For example, we use custom fields for describing how to convert "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/Wide_and_narrow_data",target:"_blank",rel:"noopener noreferrer"}},[r("strong",[e._v("wide")]),e._v(" data to "),r("strong",[e._v("long")]),e._v(" data"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("We first learned about Frictionless Data through the "),r("a",{attrs:{href:"https://blog.okfn.org/2016/02/29/sloan-foundation-funds-frictionless-data-tooling-and-engagement-at-open-knowledge/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement"),r("OutboundLink")],1),e._v(" of their funding by the Sloan Foundation. Going forward, we would love to see the Data Package spec expanded to include information about “imperfections” in data. It currently assumes that the person creating the metadata can modify the raw data files to comply with the standard rules of data structure. However this doesn’t work if someone else is distributing the data, which is a very common use"),r("br"),e._v("\ncase.")]),e._v(" "),r("p",[e._v("The expansion of the standard would include things like a way to indicate wide versus long data with enough information to uniquely describe how to translate from one to the other as well as information on single tables that are composed from data in many separate files. We have already been adding new fields to the JSON to accomplish some of these things and would be happy to be part of a larger dialog about implementing them more widely. For the wide-data-to-long-data example mentioned above, we use "),r("code",[e._v("ct_column")]),e._v(" and "),r("code",[e._v("ct_names")]),e._v(" fields and a "),r("code",[e._v("ct-type")]),e._v(" type to indicate how to transform the data into a properly normalized form.")]),e._v(" "),r("p",[e._v("The other thing we’ve come across is the need to develop a clear specification for "),r("a",{attrs:{href:"http://semver.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("semantic versioning"),r("OutboundLink")],1),e._v(" of Data Packages. The specification includes an optional "),r("code",[e._v("version")]),e._v(" field"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn3",id:"fnref3"}},[e._v("[3]")])]),e._v(" for keeping track to changes to the package. This version has a standard structure from semantic versioning in software that includes major, minor, and patch level changes. Unlike in software there is no clearly established standard for what changes in different version numbers indicate. Since we work with a lot of different datasets, we’ve been changing a lot of version numbers over the last year; this has lead us to "),r("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/421",target:"_blank",rel:"noopener noreferrer"}},[e._v("open a discussion with the OKFN team"),r("OutboundLink")],1),e._v(" about developing a standard to apply to these changes.")]),e._v(" "),r("p",[e._v("Our next big step is working on the challenge of "),r("strong",[e._v("simple data integration")]),e._v(". One of the major challenges data analysts have after they have cleaned up and prepared individual data sources is combining them. General solutions to the data integration problem (e.g. linked data approaches) have proven to difficult but we are approaching the problem by tackling a small number of common use cases and involving humans in the metadata development describing the linkages between datasets.")]),e._v(" "),r("p",[e._v("The major specification that is available for ecological data is the "),r("a",{attrs:{href:"https://knb.ecoinformatics.org/#external//emlparser/docs/index.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Ecological Metadata Language (EML)"),r("OutboundLink")],1),e._v(". It is an XML"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn4",id:"fnref4"}},[e._v("[4]")])]),e._v(" based spec that includes a lot of information specific to ecological datasets. The nice thing about EML—which is also its challenge—is that it is very comprehensive. This gives it a lot of strength in a linked data context, but also means that it is difficult to drive adoption by users.")]),e._v(" "),r("p",[e._v("The Frictionless Data specifications line up better with our approach to data"),r("sup",{staticClass:"footnote-ref"},[r("a",{attrs:{href:"#fn5",id:"fnref5"}},[e._v("[5]")])]),e._v(", which is to complement lightweight computational methods with human contributions to make data easier to work with quickly.")]),e._v(" "),r("p",[e._v("Community contributions to our work are welcome. We work hard to make all of our development efforts open and inclusive (see our "),r("a",{attrs:{href:"https://github.com/weecology/retriever/blob/master/docs/code_of_conduct.rst",target:"_blank",rel:"noopener noreferrer"}},[e._v("Code of Conduct"),r("OutboundLink")],1),e._v(") and love it when new developers, data scientists, and domain specialists "),r("a",{attrs:{href:"http://www.data-retriever.org/#contribute",target:"_blank",rel:"noopener noreferrer"}},[e._v("contribute"),r("OutboundLink")],1),e._v(". A contribution can be as easy as adding a new dataset by following "),r("a",{attrs:{href:"https://retriever.readthedocs.io/en/latest/retriever.lib.html#retriever-lib-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("a set of prompts"),r("OutboundLink")],1),e._v(" to create a new JSON file and submitting a "),r("a",{attrs:{href:"https://help.github.com/articles/about-pull-requests/",target:"_blank",rel:"noopener noreferrer"}},[e._v("PR"),r("OutboundLink")],1),e._v(" on GitHub, or even just opening an issue to tell us about a dataset that would be useful to you. So, "),r("a",{attrs:{href:"http://github.com/weecology/retriever/issues/new",target:"_blank",rel:"noopener noreferrer"}},[e._v("open an issue"),r("OutboundLink")],1),e._v(", submit a PR, or stop by our "),r("a",{attrs:{href:"https://gitter.im/weecology/retriever",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gitter chat channel"),r("OutboundLink")],1),e._v(" and say “Hi”. We also participate in "),r("a",{attrs:{href:"https://developers.google.com/open-source/gsoc/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google Summer of Code"),r("OutboundLink")],1),e._v(", which is a great opportunity for students interested in being directly supported to work on the project.")]),e._v(" "),r("hr",{staticClass:"footnotes-sep"}),e._v(" "),r("section",{staticClass:"footnotes"},[r("ol",{staticClass:"footnotes-list"},[r("li",{staticClass:"footnote-item",attrs:{id:"fn1"}},[r("p",[e._v("YAML Ain’t Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/YAML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/YAML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref1"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn2"}},[r("p",[e._v("Data Package: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://specs.frictionlessdata.io/data-package"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref2"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn3"}},[r("p",[e._v("Data Package version field: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/patterns/#data-package-version",target:"_blank",rel:"noopener noreferrer"}},[e._v("/specs/#version"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref3"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn4"}},[r("p",[e._v("Extensible Markup Language: "),r("a",{attrs:{href:"https://en.wikipedia.org/wiki/XML",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://en.wikipedia.org/wiki/XML"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref4"}},[e._v("↩︎")])])]),e._v(" "),r("li",{staticClass:"footnote-item",attrs:{id:"fn5"}},[r("p",[e._v("Design Philosophy: "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/#design-philosophy",target:"_blank",rel:"noopener noreferrer"}},[e._v("/specs/#design-philosophy"),r("OutboundLink")],1),e._v(" "),r("a",{staticClass:"footnote-backref",attrs:{href:"#fnref5"}},[e._v("↩︎")])])])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/47.fdb535f5.js b/assets/js/47.852889fe.js similarity index 98% rename from assets/js/47.fdb535f5.js rename to assets/js/47.852889fe.js index a86854be1..c4d37875f 100644 --- a/assets/js/47.fdb535f5.js +++ b/assets/js/47.852889fe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{416:function(e,t,a){e.exports=a.p+"assets/img/adbio.ea0206c3.png"},568:function(e,t,a){"use strict";a.r(t);var o=a(29),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"context"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),o("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),o("p",[e._v("Sam Payne and his team at the Pacific Northwest National Laboratory (PNNL) have designed an application called "),o("a",{attrs:{href:"https://adbio.pnnl.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Active Data Biology"),o("OutboundLink")],1),e._v(" (ADBio) which is an interactive web-based suite of tools for analyzing high-throughput omics (a set of related fields of study in biology). The goal is to visualize and analyze datasets while still enabling seamless collaboration between computational and non-computational domain experts. The tool provides several views on the same data facilitating different avenues of investigation.")]),e._v(" "),o("p",[e._v("One of the high level goals of ADBio was to make collaborative data analysis work in a similar manner to collaborative software development (versioned, asynchronous, flexible, sharable, global). You can read more of the motivation in the Open Knowledge International blog post "),o("a",{attrs:{href:"https://blog.okfn.org/2016/11/29/git-for-data-analysis-why-version-control-is-essential-collaboration-public-trust/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Git for Data Analysis – why version control is essential for collaboration and for gaining public trust"),o("OutboundLink")],1),e._v(" written by Sam Payne as part of the pilot. To facilitate this goal, Sam and his team used version-controlled repositories as the storage mechanism for all required resources. Data, software (for conducting analyses), and insights (gained from these analyses) for the project all get checked into the same repository. ADBio pulls data and software directly from the repository and serves up an interactive visualization for data exploration. Any insight you choose to record gets checked back into the repository.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(416),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("When we were first approached by Sam and his team, they outlined several use cases for which it might be valuable to have formal Data Package support (with the benefit of the associated tooling) within their framework. In the end, we decided to work on the first: "),o("em",[e._v("validating metadata associated with ADBio repositories")]),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"use-case-validating-metadata"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#use-case-validating-metadata"}},[e._v("#")]),e._v(" Use Case: Validating Metadata")]),e._v(" "),o("p",[e._v("To initiate a project in Active Data Biology, users start with a dataset of quantitative molecular measurements across multiple samples combined with metadata for each sample. Each repository on ADBio contains these two types of files. For clinical experiments, the metadata may include information about a participant’s age, gender, disease stage, etc. For an environmental experiment, this may be geographical location, temperature, time of day, etc. One "),o("a",{attrs:{href:"https://github.com/ActiveDataBio/ADB-User-Study/blob/master/metadata.tsv",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),o("OutboundLink")],1),e._v(" of a metadata file can be found at on the ADB-User-Study project repository under the "),o("a",{attrs:{href:"https://github.com/ActiveDataBio/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ActiveDataBio organization on GitHub"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The metadata file can be updated or expanded during the course of analysis. This is currently not easily done within ADBio. Moreover, the researchers lacked any formal schema describing the metadata file and its contents. It was suggested that having a Data Package formalizing the metadata file would be a benefit. This would also enable validation of the contents, according to the schema stored as part of the Data Package. Finally, the researchers also requested the development of a web UI to edit the metadata file that would be an application within the ADBio suite. Users could then update the schema online, and it would be versioned through GitHub like everything else. Scenario")]),e._v(" "),o("p",[e._v("A user gets updated survival information for patients in a clinical study and wants to update the metadata associated with this experiment. Within ADBio, the user opens the “Metadata” app and enters new information into the user interface. When finished, user clicks a ‘save’ button and the data is validated against the schema. If it fails, the specific cells are highlighted and annotated with failure codes. If it passes, the new metadata file is checked into the repository with a user-specified comment for the commit message.")]),e._v(" "),o("h2",{attrs:{id:"the-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),o("h3",{attrs:{id:"what-did-we-do"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),o("p",[e._v("This was a valuable pilot for several reasons. For one, the researchers interests in openness and the value of public, versioned infrastructure like GitHub for tabular, flat file datasets aligned well with the overall interests of the project. OKI’s first step was to start a new repository to track progress "),o("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-pnnl",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the open"),o("OutboundLink")],1),e._v(". In addition, OKI also created their own "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ADB-User-Study",target:"_blank",rel:"noopener noreferrer"}},[e._v("“fork” (i.e. versioned copy) of the repository"),o("OutboundLink")],1),e._v(" in which PNNL stored their exemplar metadata file.")]),e._v(" "),o("h3",{attrs:{id:"data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[e._v("#")]),e._v(" Data")]),e._v(" "),o("p",[e._v("The "),o("code",[e._v("metadata.tsv")]),e._v(" file is specially formatted compared to other TSV (tab-separated values) files in that it contains two extra rows below the header for describing a column’s "),o("em",[e._v("methods")]),e._v(" and "),o("em",[e._v("descriptions")]),e._v(". While this is a neat way of storing metadata for each column, it is not particularly standard as ordinarily, we would expect all rows below the header contain actual data. Nevertheless, it provided a great start to the development of a custom schema. We used the information stored in these rows to generate a "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),o("OutboundLink")],1),e._v(" for the data compatible with our software ("),o("a",{attrs:{href:"https://github.com/frictionlessdata/ADB-User-Study/blob/master/metadata-schema.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("the schema"),o("OutboundLink")],1),e._v(").")]),e._v(" "),o("p",[e._v("For instance, if a column in the original metadata.tsv file had the text "),o("code",[e._v("categorical")]),e._v(" in its "),o("code",[e._v("#methods")]),e._v(" row, we knew that this translated very well to our "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#constraints",target:"_blank",rel:"noopener noreferrer"}},[e._v("enum (short for enumerated list) constraint"),o("OutboundLink")],1),e._v(". However, this was not enough. We had to infer from the values below in the dataset which values were actually valid categorical values for that column. So, for example, the "),o("code",[e._v("PlatinumStatus")]),e._v(" column could only be one of "),o("code",[e._v("Resistant")]),e._v(", "),o("code",[e._v("Sensitive")]),e._v(", or "),o("code",[e._v("Tooearly")]),e._v(" leading to the following constraint definition in Table Schema:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"constraints": {\n "enum": [\n "Resistant",\n "Sensitive",\n "Tooearly"\n ]\n}\n')])])]),o("p",[e._v("More straightforward was the translation of the "),o("code",[e._v("#descriptions")]),e._v(" row; each description was translated directly into a "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#description",target:"_blank",rel:"noopener noreferrer"}},[e._v("description attribute"),o("OutboundLink")],1),e._v(" on the column:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"description": "It describes whether the patient was resistant to platinum (chemotherapy) treatment",\n')])])]),o("p",[e._v("What the "),o("code",[e._v("metadata.tsv")]),e._v(" file did not record at all was any information about the “type” of value expected for each column. For instance, the "),o("code",[e._v("days_to_death")]),e._v(" column would never contain a value that was of a “geopoint” type, but rather always a number (and a whole number at that). Likewise, the "),o("code",[e._v("additional_immuno_therapy")]),e._v(" column would always be a True/False (i.e. boolean) value. With PNNL’s domain expertise, OKI added these expectations to the schema so that "),o("code",[e._v("days_to_death")]),e._v(" could be relied upon to always be an integer and "),o("code",[e._v("additional_immuno_therapy")]),e._v(" a boolean (True/False) value.")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('{\n "name": "additional_immuno_therapy",\n "type": "boolean"\n}\n')])])]),o("p",[e._v("Up to this point, the dataset provided by PNNL was adequately described by our specifications. One challenge was how to deal, though, with the many missing values in the dataset. While we had discussion on the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/97",target:"_blank",rel:"noopener noreferrer"}},[e._v("topic"),o("OutboundLink")],1),e._v(", we had not yet established a formal way of specifying. In part due to observed usage and the needs of the pilot, we formalized an approach to recording information about which values signal missing data in "),o("a",{attrs:{href:"https://twitter.com/OKFNLabs/status/765568650699018241",target:"_blank",rel:"noopener noreferrer"}},[e._v("mid-August 2016"),o("OutboundLink")],1),e._v(". We added this information to the Table Schema:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"missingValues": [\n "[Not Applicable]",\n "[Not Available]",\n "[Pending]"\n]\n')])])]),o("h3",{attrs:{id:"software"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),o("p",[e._v("Goodtables had "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("existed"),o("OutboundLink")],1),e._v(" as a Python library and web application developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema as described above. This software was put to good use in a local government context.")]),e._v(" "),o("p",[e._v("For this pilot, and in coordination with other work in the project, we took the opportunity to drastically improve the software to support the online, automated validation referenced in the above use case. We took as inspiration the workflow in use in software development environments around the world—continuous automated testing—and applied to data. This involved not only updating the Python library to reflect the specification development to date, but the design of a new data publishing workflow that is applicable beyond PNNL’s needs. It is designed to be extensible, so that custom checks and custom backends (e.g. other places where one might publish a dataset) can take advantage of this workflow. For example, in addition to datasets stored on GitHub, the new goodtables supports the automated validation of datasets stored on S3 and we are currently working on validation of datasets stored on CKAN.")]),e._v(" "),o("p",[e._v("Goodtables supports validation of tabular data in GitHub repositories to solve the use case for Active Data Biology. On every update to the dataset, a validation task is run on the stored data.")]),e._v(" "),o("h2",{attrs:{id:"review"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),o("h3",{attrs:{id:"how-effective-was-it"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[e._v("#")]),e._v(" How Effective Was It")]),e._v(" "),o("p",[e._v("The omics team at PNNL are still investigating the use of "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" for their use case, but early reports are positive:")]),e._v(" "),o("blockquote",[o("p",[e._v("We created a schema and started testing it. So far so good! I think this is going to work for a lot of projects which want to store data in a repo.")])]),e._v(" "),o("p",[e._v("As a real test of the generality of goodtables, we also tried to apply it to another project. This second project is a public repository describing measurements of metabolites in ion mobility mass spectrometry. Here, we are again using flat files for structured data. The data is actually a library of information describing metabolites, and we know that the library will be growing. So it was very similar to the ADBio project, in that the curated data would be continually updated. (see "),o("a",{attrs:{href:"https://github.com/PNNL-Comp-Mass-Spec/MetabolomicsCCS",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/PNNL-Comp-Mass-Spec/MetabolomicsCCS"),o("OutboundLink")],1),e._v(" for the project itself, and "),o("a",{attrs:{href:"https://github.com/PNNL-Comp-Mass-Spec/metaboliteValidation",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/PNNL-Comp-Mass-Spec/metaboliteValidation"),o("OutboundLink")],1),e._v(" for a validation script that leverages goodtables).")]),e._v(" "),o("p",[e._v("Of course, technical issues that they have encountered have been translated in GitHub issues and are being addressed:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/issues/233",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/issues/233"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/pull/235",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/pull/235"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/issues/232",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/issues/232"),o("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{418:function(e,t,a){e.exports=a.p+"assets/img/adbio.ea0206c3.png"},571:function(e,t,a){"use strict";a.r(t);var o=a(29),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"context"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[e._v("#")]),e._v(" Context")]),e._v(" "),o("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[e._v("#")]),e._v(" Problem We Were Trying To Solve")]),e._v(" "),o("p",[e._v("Sam Payne and his team at the Pacific Northwest National Laboratory (PNNL) have designed an application called "),o("a",{attrs:{href:"https://adbio.pnnl.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Active Data Biology"),o("OutboundLink")],1),e._v(" (ADBio) which is an interactive web-based suite of tools for analyzing high-throughput omics (a set of related fields of study in biology). The goal is to visualize and analyze datasets while still enabling seamless collaboration between computational and non-computational domain experts. The tool provides several views on the same data facilitating different avenues of investigation.")]),e._v(" "),o("p",[e._v("One of the high level goals of ADBio was to make collaborative data analysis work in a similar manner to collaborative software development (versioned, asynchronous, flexible, sharable, global). You can read more of the motivation in the Open Knowledge International blog post "),o("a",{attrs:{href:"https://blog.okfn.org/2016/11/29/git-for-data-analysis-why-version-control-is-essential-collaboration-public-trust/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Git for Data Analysis – why version control is essential for collaboration and for gaining public trust"),o("OutboundLink")],1),e._v(" written by Sam Payne as part of the pilot. To facilitate this goal, Sam and his team used version-controlled repositories as the storage mechanism for all required resources. Data, software (for conducting analyses), and insights (gained from these analyses) for the project all get checked into the same repository. ADBio pulls data and software directly from the repository and serves up an interactive visualization for data exploration. Any insight you choose to record gets checked back into the repository.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(418),alt:"ADBio"}})]),e._v(" "),o("p",[e._v("When we were first approached by Sam and his team, they outlined several use cases for which it might be valuable to have formal Data Package support (with the benefit of the associated tooling) within their framework. In the end, we decided to work on the first: "),o("em",[e._v("validating metadata associated with ADBio repositories")]),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"use-case-validating-metadata"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#use-case-validating-metadata"}},[e._v("#")]),e._v(" Use Case: Validating Metadata")]),e._v(" "),o("p",[e._v("To initiate a project in Active Data Biology, users start with a dataset of quantitative molecular measurements across multiple samples combined with metadata for each sample. Each repository on ADBio contains these two types of files. For clinical experiments, the metadata may include information about a participant’s age, gender, disease stage, etc. For an environmental experiment, this may be geographical location, temperature, time of day, etc. One "),o("a",{attrs:{href:"https://github.com/ActiveDataBio/ADB-User-Study/blob/master/metadata.tsv",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),o("OutboundLink")],1),e._v(" of a metadata file can be found at on the ADB-User-Study project repository under the "),o("a",{attrs:{href:"https://github.com/ActiveDataBio/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ActiveDataBio organization on GitHub"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The metadata file can be updated or expanded during the course of analysis. This is currently not easily done within ADBio. Moreover, the researchers lacked any formal schema describing the metadata file and its contents. It was suggested that having a Data Package formalizing the metadata file would be a benefit. This would also enable validation of the contents, according to the schema stored as part of the Data Package. Finally, the researchers also requested the development of a web UI to edit the metadata file that would be an application within the ADBio suite. Users could then update the schema online, and it would be versioned through GitHub like everything else. Scenario")]),e._v(" "),o("p",[e._v("A user gets updated survival information for patients in a clinical study and wants to update the metadata associated with this experiment. Within ADBio, the user opens the “Metadata” app and enters new information into the user interface. When finished, user clicks a ‘save’ button and the data is validated against the schema. If it fails, the specific cells are highlighted and annotated with failure codes. If it passes, the new metadata file is checked into the repository with a user-specified comment for the commit message.")]),e._v(" "),o("h2",{attrs:{id:"the-work"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[e._v("#")]),e._v(" The Work")]),e._v(" "),o("h3",{attrs:{id:"what-did-we-do"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[e._v("#")]),e._v(" What Did We Do")]),e._v(" "),o("p",[e._v("This was a valuable pilot for several reasons. For one, the researchers interests in openness and the value of public, versioned infrastructure like GitHub for tabular, flat file datasets aligned well with the overall interests of the project. OKI’s first step was to start a new repository to track progress "),o("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-pnnl",target:"_blank",rel:"noopener noreferrer"}},[e._v("in the open"),o("OutboundLink")],1),e._v(". In addition, OKI also created their own "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ADB-User-Study",target:"_blank",rel:"noopener noreferrer"}},[e._v("“fork” (i.e. versioned copy) of the repository"),o("OutboundLink")],1),e._v(" in which PNNL stored their exemplar metadata file.")]),e._v(" "),o("h3",{attrs:{id:"data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[e._v("#")]),e._v(" Data")]),e._v(" "),o("p",[e._v("The "),o("code",[e._v("metadata.tsv")]),e._v(" file is specially formatted compared to other TSV (tab-separated values) files in that it contains two extra rows below the header for describing a column’s "),o("em",[e._v("methods")]),e._v(" and "),o("em",[e._v("descriptions")]),e._v(". While this is a neat way of storing metadata for each column, it is not particularly standard as ordinarily, we would expect all rows below the header contain actual data. Nevertheless, it provided a great start to the development of a custom schema. We used the information stored in these rows to generate a "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema"),o("OutboundLink")],1),e._v(" for the data compatible with our software ("),o("a",{attrs:{href:"https://github.com/frictionlessdata/ADB-User-Study/blob/master/metadata-schema.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("the schema"),o("OutboundLink")],1),e._v(").")]),e._v(" "),o("p",[e._v("For instance, if a column in the original metadata.tsv file had the text "),o("code",[e._v("categorical")]),e._v(" in its "),o("code",[e._v("#methods")]),e._v(" row, we knew that this translated very well to our "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#constraints",target:"_blank",rel:"noopener noreferrer"}},[e._v("enum (short for enumerated list) constraint"),o("OutboundLink")],1),e._v(". However, this was not enough. We had to infer from the values below in the dataset which values were actually valid categorical values for that column. So, for example, the "),o("code",[e._v("PlatinumStatus")]),e._v(" column could only be one of "),o("code",[e._v("Resistant")]),e._v(", "),o("code",[e._v("Sensitive")]),e._v(", or "),o("code",[e._v("Tooearly")]),e._v(" leading to the following constraint definition in Table Schema:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"constraints": {\n "enum": [\n "Resistant",\n "Sensitive",\n "Tooearly"\n ]\n}\n')])])]),o("p",[e._v("More straightforward was the translation of the "),o("code",[e._v("#descriptions")]),e._v(" row; each description was translated directly into a "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#description",target:"_blank",rel:"noopener noreferrer"}},[e._v("description attribute"),o("OutboundLink")],1),e._v(" on the column:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"description": "It describes whether the patient was resistant to platinum (chemotherapy) treatment",\n')])])]),o("p",[e._v("What the "),o("code",[e._v("metadata.tsv")]),e._v(" file did not record at all was any information about the “type” of value expected for each column. For instance, the "),o("code",[e._v("days_to_death")]),e._v(" column would never contain a value that was of a “geopoint” type, but rather always a number (and a whole number at that). Likewise, the "),o("code",[e._v("additional_immuno_therapy")]),e._v(" column would always be a True/False (i.e. boolean) value. With PNNL’s domain expertise, OKI added these expectations to the schema so that "),o("code",[e._v("days_to_death")]),e._v(" could be relied upon to always be an integer and "),o("code",[e._v("additional_immuno_therapy")]),e._v(" a boolean (True/False) value.")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('{\n "name": "additional_immuno_therapy",\n "type": "boolean"\n}\n')])])]),o("p",[e._v("Up to this point, the dataset provided by PNNL was adequately described by our specifications. One challenge was how to deal, though, with the many missing values in the dataset. While we had discussion on the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/97",target:"_blank",rel:"noopener noreferrer"}},[e._v("topic"),o("OutboundLink")],1),e._v(", we had not yet established a formal way of specifying. In part due to observed usage and the needs of the pilot, we formalized an approach to recording information about which values signal missing data in "),o("a",{attrs:{href:"https://twitter.com/OKFNLabs/status/765568650699018241",target:"_blank",rel:"noopener noreferrer"}},[e._v("mid-August 2016"),o("OutboundLink")],1),e._v(". We added this information to the Table Schema:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v('"missingValues": [\n "[Not Applicable]",\n "[Not Available]",\n "[Pending]"\n]\n')])])]),o("h3",{attrs:{id:"software"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#software"}},[e._v("#")]),e._v(" Software")]),e._v(" "),o("p",[e._v("Goodtables had "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2015/02/20/introducing-goodtables.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("existed"),o("OutboundLink")],1),e._v(" as a Python library and web application developed by Open Knowledge International to support the validation of tabular datasets both in terms of structure and also with respect to a published schema as described above. This software was put to good use in a local government context.")]),e._v(" "),o("p",[e._v("For this pilot, and in coordination with other work in the project, we took the opportunity to drastically improve the software to support the online, automated validation referenced in the above use case. We took as inspiration the workflow in use in software development environments around the world—continuous automated testing—and applied to data. This involved not only updating the Python library to reflect the specification development to date, but the design of a new data publishing workflow that is applicable beyond PNNL’s needs. It is designed to be extensible, so that custom checks and custom backends (e.g. other places where one might publish a dataset) can take advantage of this workflow. For example, in addition to datasets stored on GitHub, the new goodtables supports the automated validation of datasets stored on S3 and we are currently working on validation of datasets stored on CKAN.")]),e._v(" "),o("p",[e._v("Goodtables supports validation of tabular data in GitHub repositories to solve the use case for Active Data Biology. On every update to the dataset, a validation task is run on the stored data.")]),e._v(" "),o("h2",{attrs:{id:"review"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[e._v("#")]),e._v(" Review")]),e._v(" "),o("h3",{attrs:{id:"how-effective-was-it"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[e._v("#")]),e._v(" How Effective Was It")]),e._v(" "),o("p",[e._v("The omics team at PNNL are still investigating the use of "),o("a",{attrs:{href:"http://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" for their use case, but early reports are positive:")]),e._v(" "),o("blockquote",[o("p",[e._v("We created a schema and started testing it. So far so good! I think this is going to work for a lot of projects which want to store data in a repo.")])]),e._v(" "),o("p",[e._v("As a real test of the generality of goodtables, we also tried to apply it to another project. This second project is a public repository describing measurements of metabolites in ion mobility mass spectrometry. Here, we are again using flat files for structured data. The data is actually a library of information describing metabolites, and we know that the library will be growing. So it was very similar to the ADBio project, in that the curated data would be continually updated. (see "),o("a",{attrs:{href:"https://github.com/PNNL-Comp-Mass-Spec/MetabolomicsCCS",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/PNNL-Comp-Mass-Spec/MetabolomicsCCS"),o("OutboundLink")],1),e._v(" for the project itself, and "),o("a",{attrs:{href:"https://github.com/PNNL-Comp-Mass-Spec/metaboliteValidation",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/PNNL-Comp-Mass-Spec/metaboliteValidation"),o("OutboundLink")],1),e._v(" for a validation script that leverages goodtables).")]),e._v(" "),o("p",[e._v("Of course, technical issues that they have encountered have been translated in GitHub issues and are being addressed:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/issues/233",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/issues/233"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/pull/235",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/pull/235"),o("OutboundLink")],1)]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables.io/issues/232",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables.io/issues/232"),o("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/48.8ca4767a.js b/assets/js/48.387c88fd.js similarity index 99% rename from assets/js/48.8ca4767a.js rename to assets/js/48.387c88fd.js index 1e49585e6..6536d6e7e 100644 --- a/assets/js/48.8ca4767a.js +++ b/assets/js/48.387c88fd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{425:function(t,a,s){t.exports=s.p+"assets/img/camimage1.409b3ea6.png"},575:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),e("p",[t._v("Stephen Eglen was looking to investigate the applicability of the Data Package concept to facilitate data reuse in the field of Computational Neuroscience. The following figure describes the kind of data he is collecting. He was eventually seeking to get around 100–160 fields like this. Each circle is a cell drawn approximately to scale. The units of measurement are microns (micrometers).")]),t._v(" "),e("p",[e("img",{attrs:{src:s(425),alt:"ADBio"}})]),t._v(" "),e("p",[t._v("The basic data are quite simple: two columns of numbers that describes the center of each circle where each circle represents a "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Retinal_ganglion_cell",target:"_blank",rel:"noopener noreferrer"}},[t._v("retinal ganglion cell"),e("OutboundLink")],1),t._v(". The metadata that adds context to this data are as follows: the radius of each circle is 10um representing the average radius of this cell type; the dashed line represents the sample window which is the region of space within which the cells were sampled; the species from which the cells were sampled is a cat.")]),t._v(" "),e("p",[t._v("The key question posed by the collection of such data in large quantities is “where to store all these metadata”. More formally, Stephen wanted a way to include the following metadata with sampled data:")]),t._v(" "),e("ol",[e("li",[t._v("Cell type: on center retinal ganglion cells")]),t._v(" "),e("li",[t._v("Species: cat")]),t._v(" "),e("li",[t._v("Radius of "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Soma_(biology)"}},[t._v("soma")]),t._v(": 10 um")]),t._v(" "),e("li",[t._v("Citation to original paper where data were presented: Wässle H, Boycott BB, Illing RB (1981) Morphology and mosaic of on- and off-beta cells in the cat retina and some functional considerations. Proc R Soc Lond B Biol Sci 212:177–195.")]),t._v(" "),e("li",[t._v("Unit of measurement: micron.")]),t._v(" "),e("li",[t._v("(Optionally) A raw image from where the data where taken. e.g. "),e("a",{attrs:{href:"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The long-term goal was to build a website/repository containing about 100+ examples of these “retinal mosaics”. The website would allow people to view the mosaics, download the data files, or run online some simple analysis.")]),t._v(" "),e("h2",{attrs:{id:"the-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The Work")]),t._v(" "),e("h3",{attrs:{id:"what-did-we-do"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[t._v("#")]),t._v(" What Did We Do")]),t._v(" "),e("p",[t._v("The Data Package specification is meant to be a container for data providing a consistent interface to tabular data. The Data Package specification outlines a number of different fields that can be stored within a descriptor file, "),e("code",[t._v("datapackage.json")]),t._v(". For instance, for this example, we can assign a title to this Data Package by setting the field "),e("code",[t._v("title")]),t._v(" to “Example Retinal Mosaic”:")]),t._v(" "),e("p",[e("code",[t._v('"title" : "Example Retinal Mosaic"')])]),t._v(" "),e("p",[t._v("We can also, for instance, set a "),e("code",[t._v("homepage")]),t._v(" for the dataset which is a URL for the home on the web that is related to this Data Package.")]),t._v(" "),e("p",[e("code",[t._v('"homepage": "http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/"')])]),t._v(" "),e("p",[t._v("Some of the other metadata Stephen required do not, however, map well to existing specified fields in a Data Package. For instance, as the Data Package is not specialized for storing biological data, there is no field for “species”. (The Digital Curation Centre maintains a database of domain-specific metadata standards for biology and other fields.) The specification is intended to be quite flexible in these circumstances:")]),t._v(" "),e("blockquote",[e("p",[t._v("Adherence to the specification does not imply that additional, non-specified properties cannot be used: a descriptor MAY include any number of properties in additional to those described as required and optional properties […] This flexibility enables specific communities to extend Data Packages as appropriate for the data they manage.")])]),t._v(" "),e("p",[t._v("As an example, we stored the radius in a new field called "),e("code",[t._v("soma-radius")]),t._v(" in the “root” level of the Data Package:")]),t._v(" "),e("p",[e("code",[t._v('"soma-radius": 10')])]),t._v(" "),e("p",[t._v("While there are many different ways in which this particular element of metadata could have been stored, this was a good start that would allow easy iteration. In storing this metadata in the datapackage.json, Data Package-aware tooling could read it with the data.")]),t._v(" "),e("p",[t._v("For example, using the Data Package library (“datapkg”) written by ROpenSci, we can replace multiple calls to the data input functions (in this case, Stephen used the "),e("code",[t._v("read.table()")]),t._v(" and "),e("code",[t._v("scan()")]),t._v(" functions with a single call to "),e("code",[t._v("datapkg_read()")]),t._v(" and store the result in a new object which combines both metadata and data called rmdp.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# install_github("frictionlessdata/datapackage-r")')]),t._v("\nlibrary"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("datapkg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nrmdp "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" datapkg_read"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# read soma radius from rmdp")]),t._v("\nsoma.rad "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("`soma"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("radius`\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# read other metadata from the same object")]),t._v("\non "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("points\nw "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("window\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# plot")]),t._v("\nplot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" type"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'n'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" asp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" bty"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'n'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nsymbols"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" circles"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("rep"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("soma.rad"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" nrow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" add"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("TRUE")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("inch"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("FALSE")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" bg"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"red"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" rect"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" lty"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Below is the annotated datapackage.json with the metadata at the top followed by the resource information. As a start, we have included information on cell type, species, and units in the description, but we can easily create new fields to store these fields in a more structured way as we did with "),e("code",[t._v("soma-radius")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"example-retinal-mosaic"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"title"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Example Retinal Mosaic"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Homepage"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Image"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"This is an example retinal mosaic Data Package."')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cell type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"on center"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"soma-radius"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("I’ve used a "),e("code",[t._v("sources")]),t._v(" array with a single source object:")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"sources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Wässle H, Boycott BB, Illing RB (1981) Morphology and mosaic of on- and off-beta cells in the cat retina and some functional considerations. Proc R Soc Lond B Biol Sci 212:177–195."')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The "),e("code",[t._v("resources")]),t._v(" array in datapackage.json listed the files in the original datasets with "),e("code",[t._v("dialect")]),t._v(" and "),e("code",[t._v("schema")]),t._v(" information included. We named the first resource “points” with the filename set in "),e("code",[t._v("path")]),t._v(". Because it is a space-delimited tabular file without a header, we needed to pass that information to the "),e("code",[t._v("dialect")]),t._v(" attribute so that "),e("code",[t._v("datapkg_read()")]),t._v(" can read the file. The "),e("code",[t._v("schema")]),t._v(" attribute specifies the "),e("code",[t._v("type")]),t._v(" of all the values in the table (e.g. “number”) as well as additional "),e("code",[t._v("constraints")]),t._v(" on the value. Stephen noted that you can’t have an x coordinate without the y, so we have set "),e("code",[t._v("required")]),t._v(" to true for both fields. In addition, Stephen noted that the “window” rectangle is a simple validation on the data, so I have translated the x and y bounds of the window to constraining conditions on each column. We do understand that assessing the validity of such data can be more complicated, however.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"points"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"w81s1on.txt"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\t"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"header"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"constraints"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"required"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"minimum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("28.08")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"maximum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("778.08")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"constraints"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"required"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"minimum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("16.2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"maximum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1007.02")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("For the completeness of the example, we have also added a resource for the “window” rectangle even though (a) we have already stored this data in the "),e("code",[t._v("constraints")]),t._v(" key of the points matrix and (b) it is ideally stored as a vector not a data frame. The benefit of this method is the ability to load all the data files at once and reference them from a common datapackage.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"window"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"w81s1w.txt"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\t"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"header"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xmin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xmax"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ymin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ymax"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"review"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),e("h3",{attrs:{id:"how-effective-was-it"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[t._v("#")]),t._v(" How Effective Was It")]),t._v(" "),e("p",[t._v("The pilot tackled an interesting use case: providing a generic “home” for metadata related to an experiment,"),e("br"),t._v("\nin a way that is clear and easy to read without the overhead of a more advanced, domain-specific specification."),e("br"),t._v("\nIn a more complicated example, storing the metadata with the data for each sample—paired with a tool that could"),e("br"),t._v("\nread this metadata—could provide an “object-oriented” style of working with experimental data.")]),t._v(" "),e("p",[t._v("We have not tried this out on multiple samples (this is forthcoming), so we don’t have much information yet on"),e("br"),t._v("\nthe usefulness of this approach, but the exercise raised several important issues to potentially address with the"),e("br"),t._v("\nData Package format:")]),t._v(" "),e("ol",[e("li",[t._v("Stephen’s request for a specified location for storing units in a structured way comes up often: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/216",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/specs/issues/216"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("More iterations, with more of a variety of data sources could help in trialling this")]),t._v(" "),e("li",[t._v("Stephen wanted to store a non-tabular data file (an image) with the tabular datasets that comprise his datasets. This is currently not allowed, but the subsequent definition of a Tabular Data Resource could pave the way for a method of specifying types of different resources and the kind of processing, validation or otherwise, that could be done with each.")])]),t._v(" "),e("h2",{attrs:{id:"next-steps"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),e("h3",{attrs:{id:"areas-for-future-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-future-work"}},[t._v("#")]),t._v(" Areas for future work")]),t._v(" "),e("p",[t._v("Stephen now has about 100 retinal mosaics that might make for a nice use case of the Data Package. In addition, The Frictionless Data Tool Fund has funded the development of the next version of the R Data Package. This will make some of the improvements brought to the Data Package specifications in the past few months available in the R library.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{427:function(t,a,s){t.exports=s.p+"assets/img/camimage1.409b3ea6.png"},576:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),e("p",[t._v("Stephen Eglen was looking to investigate the applicability of the Data Package concept to facilitate data reuse in the field of Computational Neuroscience. The following figure describes the kind of data he is collecting. He was eventually seeking to get around 100–160 fields like this. Each circle is a cell drawn approximately to scale. The units of measurement are microns (micrometers).")]),t._v(" "),e("p",[e("img",{attrs:{src:s(427),alt:"ADBio"}})]),t._v(" "),e("p",[t._v("The basic data are quite simple: two columns of numbers that describes the center of each circle where each circle represents a "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Retinal_ganglion_cell",target:"_blank",rel:"noopener noreferrer"}},[t._v("retinal ganglion cell"),e("OutboundLink")],1),t._v(". The metadata that adds context to this data are as follows: the radius of each circle is 10um representing the average radius of this cell type; the dashed line represents the sample window which is the region of space within which the cells were sampled; the species from which the cells were sampled is a cat.")]),t._v(" "),e("p",[t._v("The key question posed by the collection of such data in large quantities is “where to store all these metadata”. More formally, Stephen wanted a way to include the following metadata with sampled data:")]),t._v(" "),e("ol",[e("li",[t._v("Cell type: on center retinal ganglion cells")]),t._v(" "),e("li",[t._v("Species: cat")]),t._v(" "),e("li",[t._v("Radius of "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Soma_(biology)"}},[t._v("soma")]),t._v(": 10 um")]),t._v(" "),e("li",[t._v("Citation to original paper where data were presented: Wässle H, Boycott BB, Illing RB (1981) Morphology and mosaic of on- and off-beta cells in the cat retina and some functional considerations. Proc R Soc Lond B Biol Sci 212:177–195.")]),t._v(" "),e("li",[t._v("Unit of measurement: micron.")]),t._v(" "),e("li",[t._v("(Optionally) A raw image from where the data where taken. e.g. "),e("a",{attrs:{href:"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The long-term goal was to build a website/repository containing about 100+ examples of these “retinal mosaics”. The website would allow people to view the mosaics, download the data files, or run online some simple analysis.")]),t._v(" "),e("h2",{attrs:{id:"the-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The Work")]),t._v(" "),e("h3",{attrs:{id:"what-did-we-do"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-did-we-do"}},[t._v("#")]),t._v(" What Did We Do")]),t._v(" "),e("p",[t._v("The Data Package specification is meant to be a container for data providing a consistent interface to tabular data. The Data Package specification outlines a number of different fields that can be stored within a descriptor file, "),e("code",[t._v("datapackage.json")]),t._v(". For instance, for this example, we can assign a title to this Data Package by setting the field "),e("code",[t._v("title")]),t._v(" to “Example Retinal Mosaic”:")]),t._v(" "),e("p",[e("code",[t._v('"title" : "Example Retinal Mosaic"')])]),t._v(" "),e("p",[t._v("We can also, for instance, set a "),e("code",[t._v("homepage")]),t._v(" for the dataset which is a URL for the home on the web that is related to this Data Package.")]),t._v(" "),e("p",[e("code",[t._v('"homepage": "http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/"')])]),t._v(" "),e("p",[t._v("Some of the other metadata Stephen required do not, however, map well to existing specified fields in a Data Package. For instance, as the Data Package is not specialized for storing biological data, there is no field for “species”. (The Digital Curation Centre maintains a database of domain-specific metadata standards for biology and other fields.) The specification is intended to be quite flexible in these circumstances:")]),t._v(" "),e("blockquote",[e("p",[t._v("Adherence to the specification does not imply that additional, non-specified properties cannot be used: a descriptor MAY include any number of properties in additional to those described as required and optional properties […] This flexibility enables specific communities to extend Data Packages as appropriate for the data they manage.")])]),t._v(" "),e("p",[t._v("As an example, we stored the radius in a new field called "),e("code",[t._v("soma-radius")]),t._v(" in the “root” level of the Data Package:")]),t._v(" "),e("p",[e("code",[t._v('"soma-radius": 10')])]),t._v(" "),e("p",[t._v("While there are many different ways in which this particular element of metadata could have been stored, this was a good start that would allow easy iteration. In storing this metadata in the datapackage.json, Data Package-aware tooling could read it with the data.")]),t._v(" "),e("p",[t._v("For example, using the Data Package library (“datapkg”) written by ROpenSci, we can replace multiple calls to the data input functions (in this case, Stephen used the "),e("code",[t._v("read.table()")]),t._v(" and "),e("code",[t._v("scan()")]),t._v(" functions with a single call to "),e("code",[t._v("datapkg_read()")]),t._v(" and store the result in a new object which combines both metadata and data called rmdp.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# install_github("frictionlessdata/datapackage-r")')]),t._v("\nlibrary"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("datapkg"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nrmdp "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" datapkg_read"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# read soma radius from rmdp")]),t._v("\nsoma.rad "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("`soma"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("radius`\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# read other metadata from the same object")]),t._v("\non "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("points\nw "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<-")]),t._v(" rmdp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("window\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# plot")]),t._v("\nplot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" type"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'n'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" asp"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" bty"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'n'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nsymbols"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" circles"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("rep"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("soma.rad"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" nrow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("on"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" add"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("TRUE")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("inch"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("FALSE")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" bg"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"red"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" rect"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" w"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" lty"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Below is the annotated datapackage.json with the metadata at the top followed by the resource information. As a start, we have included information on cell type, species, and units in the description, but we can easily create new fields to store these fields in a more structured way as we did with "),e("code",[t._v("soma-radius")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"example-retinal-mosaic"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"title"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Example Retinal Mosaic"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Homepage"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Image"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://www.damtp.cam.ac.uk/user/sje30/data/mosaics/w81_scan/w81all.png"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"This is an example retinal mosaic Data Package."')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cell type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"on center"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"soma-radius"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("I’ve used a "),e("code",[t._v("sources")]),t._v(" array with a single source object:")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"sources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Wässle H, Boycott BB, Illing RB (1981) Morphology and mosaic of on- and off-beta cells in the cat retina and some functional considerations. Proc R Soc Lond B Biol Sci 212:177–195."')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The "),e("code",[t._v("resources")]),t._v(" array in datapackage.json listed the files in the original datasets with "),e("code",[t._v("dialect")]),t._v(" and "),e("code",[t._v("schema")]),t._v(" information included. We named the first resource “points” with the filename set in "),e("code",[t._v("path")]),t._v(". Because it is a space-delimited tabular file without a header, we needed to pass that information to the "),e("code",[t._v("dialect")]),t._v(" attribute so that "),e("code",[t._v("datapkg_read()")]),t._v(" can read the file. The "),e("code",[t._v("schema")]),t._v(" attribute specifies the "),e("code",[t._v("type")]),t._v(" of all the values in the table (e.g. “number”) as well as additional "),e("code",[t._v("constraints")]),t._v(" on the value. Stephen noted that you can’t have an x coordinate without the y, so we have set "),e("code",[t._v("required")]),t._v(" to true for both fields. In addition, Stephen noted that the “window” rectangle is a simple validation on the data, so I have translated the x and y bounds of the window to constraining conditions on each column. We do understand that assessing the validity of such data can be more complicated, however.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"points"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"w81s1on.txt"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\t"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"header"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"constraints"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"required"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"minimum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("28.08")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"maximum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("778.08")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"constraints"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"required"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"minimum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("16.2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"maximum"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1007.02")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("For the completeness of the example, we have also added a resource for the “window” rectangle even though (a) we have already stored this data in the "),e("code",[t._v("constraints")]),t._v(" key of the points matrix and (b) it is ideally stored as a vector not a data frame. The benefit of this method is the ability to load all the data files at once and reference them from a common datapackage.")]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"window"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"w81s1w.txt"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\t"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"header"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xmin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xmax"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ymin"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ymax"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h2",{attrs:{id:"review"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),e("h3",{attrs:{id:"how-effective-was-it"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-effective-was-it"}},[t._v("#")]),t._v(" How Effective Was It")]),t._v(" "),e("p",[t._v("The pilot tackled an interesting use case: providing a generic “home” for metadata related to an experiment,"),e("br"),t._v("\nin a way that is clear and easy to read without the overhead of a more advanced, domain-specific specification."),e("br"),t._v("\nIn a more complicated example, storing the metadata with the data for each sample—paired with a tool that could"),e("br"),t._v("\nread this metadata—could provide an “object-oriented” style of working with experimental data.")]),t._v(" "),e("p",[t._v("We have not tried this out on multiple samples (this is forthcoming), so we don’t have much information yet on"),e("br"),t._v("\nthe usefulness of this approach, but the exercise raised several important issues to potentially address with the"),e("br"),t._v("\nData Package format:")]),t._v(" "),e("ol",[e("li",[t._v("Stephen’s request for a specified location for storing units in a structured way comes up often: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/specs/issues/216",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/specs/issues/216"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("More iterations, with more of a variety of data sources could help in trialling this")]),t._v(" "),e("li",[t._v("Stephen wanted to store a non-tabular data file (an image) with the tabular datasets that comprise his datasets. This is currently not allowed, but the subsequent definition of a Tabular Data Resource could pave the way for a method of specifying types of different resources and the kind of processing, validation or otherwise, that could be done with each.")])]),t._v(" "),e("h2",{attrs:{id:"next-steps"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),e("h3",{attrs:{id:"areas-for-future-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#areas-for-future-work"}},[t._v("#")]),t._v(" Areas for future work")]),t._v(" "),e("p",[t._v("Stephen now has about 100 retinal mosaics that might make for a nice use case of the Data Package. In addition, The Frictionless Data Tool Fund has funded the development of the next version of the R Data Package. This will make some of the improvements brought to the Data Package specifications in the past few months available in the R library.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/49.63bda42d.js b/assets/js/49.4362187e.js similarity index 99% rename from assets/js/49.63bda42d.js rename to assets/js/49.4362187e.js index 12b7f0393..36c2320de 100644 --- a/assets/js/49.63bda42d.js +++ b/assets/js/49.4362187e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{441:function(t,a,s){t.exports=s.p+"assets/img/packagist.835e6f2c.png"},586:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dm4t-pilot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dm4t-pilot"}},[t._v("#")]),t._v(" DM4T Pilot")]),t._v(" "),e("h2",{attrs:{id:"pilot-name"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#pilot-name"}},[t._v("#")]),t._v(" Pilot Name")]),t._v(" "),e("p",[t._v("Data Management for TEDDINET (DM4T)")]),t._v(" "),e("h2",{attrs:{id:"authors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#authors"}},[t._v("#")]),t._v(" Authors")]),t._v(" "),e("p",[t._v("Julian Padget (DM4T), Dan Fowler (OKI), Evgeny Karev (OKI)")]),t._v(" "),e("h2",{attrs:{id:"field"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#field"}},[t._v("#")]),t._v(" Field")]),t._v(" "),e("p",[t._v("Energy Data")]),t._v(" "),e("h2",{attrs:{id:"fd-tech-involved"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fd-tech-involved"}},[t._v("#")]),t._v(" FD Tech Involved")]),t._v(" "),e("ul",[e("li",[t._v("Frictionless Data specs: "),e("a",{attrs:{href:"http://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://specs.frictionlessdata.io/"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("Data Package Pipelines: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("Goodtables: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/goodtables-py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[e("code",[t._v("packagist")]),t._v(" has now moved to "),e("a",{attrs:{href:"http://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("create.frictionlessdata.io"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),e("p",[t._v("Open Knowledge International and the Data Management for TEDDINET project (DM4T) agreed to work together on a proof-of-concept pilot to attempt to use Frictionless Data approaches to address some of the data legacy issues facing the TEDDINET project, a research network addressing the challenges of transforming energy demand in our buildings, as a key component of the transition to an affordable, low carbon energy system. The problem as described on the DM4T Website:")]),t._v(" "),e("blockquote",[e("p",[t._v("The Engineering and Physical Sciences Research Council (EPSRC), the UK’s main agency for funding research in engineering and the physical sciences, funded 22 projects over two calls in 2010 and 2012 to investigate Transforming Energy Demand through Digital Innovation’ (TEDDI) as a means to find out how people use energy in homes and what can be done reduce energy consumption. A lot of data is being collected at different levels of detail in a variety of housing throughout the UK, but the level of detail are largely defined by the needs of each individual project. At the same time, the Research Councils UK (RCUK) are defining guidelines for what happens to data generated by projects they fund which require researchers to take concrete actions to store, preserve, and document their data for future reference.")])]),t._v(" "),e("blockquote",[e("p",[t._v("The problem, however, is that there is relatively little awareness, limited experience and only emerging practice of how to incorporate data management into much of physical science research. This is in contrast to established procedures for data formats and sharing in the biosciences, stemming from international collaboration on the Human Genome Project, and in the social sciences, where data from national surveys, including census data, have been centrally archived for many years. Consequently, current solutions may be able to meet a minimal interpretation of the requirements, but not effectively deliver the desired data legacy.")])]),t._v(" "),e("p",[t._v("The DM4T group selected three suitable datasets to on which to base this work and provided domain knowledge to ensure the pilot is applicable to real use cases.")]),t._v(" "),e("p",[t._v("Output was tracked here: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/issues"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"the-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The work")]),t._v(" "),e("p",[t._v("We will use the "),e("code",[t._v("refit-cleaned")]),t._v(" dataset to show the Frictionless Data specs and software capabilities. For this work, we limited the size of this dataset in order to preserve a reasonable showcasing time. However, by design the Frictionless Data software has a very good scalability and this process could be reproduced for the whole dataset. But for now it is worth noting that the speed for such a big datasets could be a bottle neck for a research work.")]),t._v(" "),e("h3",{attrs:{id:"refit-electrical-load-measurements-cleaned"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#refit-electrical-load-measurements-cleaned"}},[t._v("#")]),t._v(" REFIT: Electrical Load Measurements (Cleaned)")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the dataset: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/tree/delivery/datasets/refit-cleaned",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/tree/delivery/datasets/refit-cleaned"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("For each house in the study, this dataset consists of granular readings of electrical load. There were 20 houses in total, and each house had a different mix of devices plugged into the electrical load sensor. The dataset was distributed as a zipped file (~500MB) containing 20 CSVs with a combined ~120 million rows.")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Time,Unix,Aggregate,Appliance1,Appliance2,Appliance3,Appliance4,Appliance5,Appliance6,Appliance7,Appliance8,Appliance9\n2013-10-09 13:06:17,1381323977,523,74,0,69,0,0,0,0,0,1\n2013-10-09 13:06:31,1381323991,526,75,0,69,0,0,0,0,0,1\n2013-10-09 13:06:46,1381324006,540,74,0,68,0,0,0,0,0,1\n2013-10-09 13:07:01,1381324021,532,74,0,68,0,0,0,0,0,1\n2013-10-09 13:07:15,1381324035,540,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:18,1381324038,539,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:30,1381324050,537,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:32,1381324052,537,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:44,1381324064,548,74,0,69,0,0,0,0,0,1\n")])])]),e("p",[t._v("Given that these datasets were already provided in well structured CSV files, it was straightforward to translate the data dictionary found in the dataset’s README into the relevant fields in the datapackage.json. We did not need to alter the CSVs that comprise the dataset.")]),t._v(" "),e("h3",{attrs:{id:"creating-a-data-package-using-datapackage-pipelines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-data-package-using-datapackage-pipelines"}},[t._v("#")]),t._v(" Creating a data package using Datapackage Pipelines")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the Datapackage Pipelines project: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("Datapackage Pipelines is a framework for declarative stream-processing of tabular data. It is built upon the concepts and tooling of the Frictionless Data project. The basic concept in this framework is the pipeline. A pipeline has a list of processing steps, and it generates a single data package as its output. Pipelines are defined in a declarative way, not in code. One or more pipelines can be defined in a "),e("code",[t._v("pipeline-spec.yaml")]),t._v(" file. This file specifies the list of processors (referenced by name) and their execution parameters.")]),t._v(" "),e("p",[t._v("One of the main purposes of the Frictionless Data project is data containerization. It means that instead of having two separated data knowledge sources (data files and text readme), we’re going to put both of them into a container based on the "),e("code",[t._v("Data Package")]),t._v(" specification. This allows us to:")]),t._v(" "),e("ul",[e("li",[t._v("Ensure that the dataset description is shipped with the data files")]),t._v(" "),e("li",[t._v("Provide column data type information to allow type validation")]),t._v(" "),e("li",[t._v("Use the Frictionless Data tooling for reading and validating datasets")]),t._v(" "),e("li",[t._v("Enable usage of other software which supports Frictionless Data specifications")])]),t._v(" "),e("p",[t._v("First, we used the "),e("code",[t._v("datapackage-pipeline")]),t._v(" library to create a data package from the raw dataset. We need a declarative file called "),e("code",[t._v("datapackage-pipelines.yaml")]),t._v(" to describe data transformations steps:")]),t._v(" "),e("blockquote",[e("p",[t._v("datapackage-pipelines.yaml")])]),t._v(" "),e("div",{staticClass:"language-yaml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-yaml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refit-cleaned")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("pipeline")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" add_metadata\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("electrical"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("load"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("measurements\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'REFIT: Electrical Load Measurements'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("license")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" CC"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("BY"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.0")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Collection of this dataset was supported by the Engineering and Physical Sciences Research Council (EPSRC) via the project entitled Personalised Retrofit Decision Support Tools for UK Homes using Smart Home Technology (REFIT)"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" which is a collaboration among the Universities of Strathclyde"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Loughborough and East Anglia. The dataset includes data from 20 households from the Loughborough area over the period 2013 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" 2015. Additional information about REFIT is available from www.refitsmarthomes.org.\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'REFIT: Electrical Load Measurements (Cleaned)'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("web")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://pure.strath.ac.uk/portal/en/datasets/refit-electrical-load-measurements-cleaned(9ab14b0e-19ac-4279-938f-27f643078cec).html'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("email")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" researchdataproject@strath.ac.uk\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" add_resource\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datasets/refit-cleaned/House_1.csv'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Other resources are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" stream_remote_resources\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" set_types\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("resources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"house-[0-9]{1,2}"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("types")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"Time"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" datetime\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt:%Y-%m-%d %H:%M:%S"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Unix")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Aggregate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"Appliance[1-9]"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" processors.modify_descriptions\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("resources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" house"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("descriptions")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Fridge\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Chest Freezer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Upright Freezer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Tumble Dryer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance5")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("descripion")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Washing Machine\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance6")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Dishwasher\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Computer Site\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Television Site\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance9")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Electric Heater\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Other resources are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" dump.to_path\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("out-path")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" packages/refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("cleaned\n")])])]),e("p",[t._v("The process follows contains these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create the data package metadata")]),t._v(" "),e("li",[t._v("Add all data files from the disc")]),t._v(" "),e("li",[t._v("Start resources streaming into the data package")]),t._v(" "),e("li",[t._v("Update resources descriptions using a custom processor")]),t._v(" "),e("li",[t._v("Save the data package to the disc")])]),t._v(" "),e("p",[t._v("Now we’re ready to run this pipeline:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ dpp run ./refit-cleaned\n")])])]),e("p",[t._v("After this step we have a data package containing a descriptor:")]),t._v(" "),e("blockquote",[e("p",[t._v("packages/refit-cleaned/datapakcage.json")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"bytes"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1121187")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"count_of_rows"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("19980")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Collection of this dataset was supported by the Engineering and Physical Sciences Research Council (EPSRC) via the project entitled Personalised Retrofit Decision Support Tools for UK Homes using Smart Home Technology (REFIT), which is a collaboration among the Universities of Strathclyde, Loughborough and East Anglia. The dataset includes data from 20 households from the Loughborough area over the period 2013 - 2015. Additional information about REFIT is available from www.refitsmarthomes.org."')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hash"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"433ff35135e0a43af6f00f04cb8e666d"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"license"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CC-BY-4.0"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"refit-electrical-load-measurements"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"bytes"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("55251")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"count_of_rows"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('","')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"doubleQuote"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lineTerminator"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\r\\n"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quoteChar"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\""')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"skipInitialSpace"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dpp:streamedFrom"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"datasets/refit-cleaned/House_1.csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dpp:streaming"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"encoding"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"utf-8"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"format"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hash"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ad42fbf1302cabe30e217ff105d5a7fd"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"house-1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data/house-1.csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"format"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%Y-%m-%d %H:%M:%S"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Time"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"datetime"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Unix"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Aggregate"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Fridge"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Chest Freezer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Upright Freezer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Tumble Dryer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance4"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"descripion"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Washing Machine"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance5"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Dishwasher"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance6"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Computer Site"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance7"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Television Site"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance8"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Electric Heater"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance9"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n # Other resources is omitted\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("And a list of data files linked in the descriptor:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ls")]),t._v(" packages/refit-cleaned/data\nhouse-10.csv house-13.csv house-17.csv house-1.csv house-2.csv house-5.csv house-8.csv\nhouse-11.csv house-15.csv house-18.csv house-20.csv house-3.csv house-6.csv house-9.csv\nhouse-12.csv house-16.csv house-19.csv house-21.csv house-4.csv house-7.csv\n")])])]),e("h3",{attrs:{id:"validating-a-data-package-using-goodtables"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#validating-a-data-package-using-goodtables"}},[t._v("#")]),t._v(" Validating a data package using Goodtables")]),t._v(" "),e("p",[t._v("Goodtables is a software family for tabular data validation. It’s available as a Python library, a command line tool, "),e("a",{attrs:{href:"https://try.goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("web application"),e("OutboundLink")],1),t._v(" and "),e("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("continuous validation service"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("The main features of Goodtables are:")]),t._v(" "),e("ul",[e("li",[t._v("Structural checks: Ensure that there are no empty rows, no blank headers, etc.")]),t._v(" "),e("li",[t._v("Content checks: Ensure that the values have the correct types (“string”, “number”, “date”, etc.), that their format is valid (“string must be an e-mail”), and that they respect the constraints (“age must be a number greater than 18”).")]),t._v(" "),e("li",[t._v("Support for multiple tabular formats: CSV, Excel files, LibreOffice, Data Package, etc.")]),t._v(" "),e("li",[t._v("Parallelized validations for multi-table datasets")])]),t._v(" "),e("p",[t._v("Because we have provided data types for the columns at the wrapping stage, here we validate both the data structure and compliance to the data types using the Goodtables command line interface:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ goodtables packages/refit-cleaned/datapackage.json\nDATASET\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'error-count'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'preset'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage'")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'table-count'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.694")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'valid'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" True"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h3",{attrs:{id:"modifying-a-data-package-using-packagist"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#modifying-a-data-package-using-packagist"}},[t._v("#")]),t._v(" Modifying a data package using Packagist")]),t._v(" "),e("p",[t._v("If we need to modify our data package, we could use the "),e("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Packagist"),e("OutboundLink")],1),t._v(". It incorporates a straightforward UI to modify and validate data package descriptors. With its easy to use interface we are able to:")]),t._v(" "),e("ul",[e("li",[t._v("Load/validate/save a data package")]),t._v(" "),e("li",[t._v("Update a data package metadata")]),t._v(" "),e("li",[t._v("Add/remove/modify data package resources")]),t._v(" "),e("li",[t._v("Add/remove/modify data resource fields")]),t._v(" "),e("li",[t._v("Set type/format for data values")])]),t._v(" "),e("p",[e("img",{attrs:{src:s(441),alt:"ADBio"}})]),t._v(" "),e("p",[t._v("On the figure above we have loaded the "),e("code",[t._v("refit-cleaned")]),t._v(" data package into the Packagist UI to make changes to the data package as needed.")]),t._v(" "),e("h3",{attrs:{id:"publishing-a-data-package-to-amazon-s3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing-a-data-package-to-amazon-s3"}},[t._v("#")]),t._v(" Publishing a data package to Amazon S3")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the published package: "),e("a",{attrs:{href:"https://s3.eu-central-1.amazonaws.com/pilot-dm4t/pilot-dm4t/packages/refit-cleaned/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://s3.eu-central-1.amazonaws.com/pilot-dm4t/pilot-dm4t/packages/refit-cleaned/datapackage.json"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("In this section we will show how data packages can be moved from one data storage system to another. This is possible because it has been containerised.")]),t._v(" "),e("p",[t._v("One important feature of the "),e("code",[t._v("datapackage-pipelines")]),t._v(" project that it works as a conveyor. We could push our data package not only to the local disc but to other destinations. For example to the Amazon S3:")]),t._v(" "),e("blockquote",[e("p",[t._v("pipelines-spec.yml")])]),t._v(" "),e("div",{staticClass:"language-yaml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-yaml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refit-cleaned")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Initial steps are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" aws.dump.to_s3\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("bucket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pilot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("dm4t\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("path")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pilot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("dm4t/packages/refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("cleaned\n")])])]),e("p",[t._v("Running this command again:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ dpp run ./refit-cleaned\n")])])]),e("p",[t._v("And now our data package is published to Amazon the S3 remote storage:")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://i.imgur.com/5Z7EPDR.pnghttps://",alt:"screenshot of S3 storage"}})]),t._v(" "),e("h3",{attrs:{id:"getting-insight-from-data-using-python-libraries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-insight-from-data-using-python-libraries"}},[t._v("#")]),t._v(" Getting insight from data using Python libraries")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the demostration script: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The Frictionless Data projects provides various Python (along with other 8 languages) libraries to work with data package programatically. We used the "),e("code",[t._v("datapackage")]),t._v(" library to analyse the "),e("code",[t._v("refit-cleaned")]),t._v(" data package:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datetime\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" statistics\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" datapackage "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Package\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get aggregates")]),t._v("\nconsumption "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\npackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/refit-cleaned/datapackage.json'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" resource "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" row "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("iter")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keyed"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n hour "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hour\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("setdefault"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("append"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("row"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Aggregate'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get averages")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" hour "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" statistics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mean"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Print results")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" hour "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("sorted")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Average consumption at %02d hours: %.0f'")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Now we could run it in the command line:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ python examles/refit-cleaned.py\nAverage consumption at 00 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("232")]),t._v("\nAverage consumption at 01 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("213")]),t._v("\nAverage consumption at 02 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("247")]),t._v("\nAverage consumption at 03 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("335")]),t._v("\nAverage consumption at 04 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("215")]),t._v("\nAverage consumption at 05 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("690")]),t._v("\nAverage consumption at 06 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("722")]),t._v("\nAverage consumption at 07 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("648")]),t._v("\nAverage consumption at 08 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("506")]),t._v("\nAverage consumption at 09 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("464")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("364")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("569")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("520")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("497")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("380")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("383")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("459")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("945")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("733")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("732")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("471")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("478")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("325")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("231")]),t._v("\n")])])]),e("p",[t._v("Here we we’re able to get the averages for electricity consumption grouped by hour. We could have achieved this in different ways, but using the Frictionless Data specs and software provides some important advantages:")]),t._v(" "),e("ul",[e("li",[t._v("The fact that we have data wrapped into a data package has allowed us to validate and read the data already converted for its correct types (e.g native python "),e("code",[t._v("datetime")]),t._v(" object). No need for any kind of string parsing.")]),t._v(" "),e("li",[t._v("The Frictionless Data software uses file streams under the hood. This means that only the current row is kept in memory, so we’re able to handle datasets bigger than the available RAM memory.")])]),t._v(" "),e("h3",{attrs:{id:"exporting-data-to-an-elasticsearch-cluster"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#exporting-data-to-an-elasticsearch-cluster"}},[t._v("#")]),t._v(" Exporting data to an ElasticSearch cluster")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the export script: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The Frictionless Data software provides plugins to export data to various backends like SQL, BigQuery etc. We will export the first resource from our data package for future analysis:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" elasticsearch "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Elasticsearch\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" datapackage "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Package\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" tableschema_elasticsearch "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Storage\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get resource")]),t._v("\npackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/refit-cleaned/datapackage.json'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nresource "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Create storage")]),t._v("\nengine "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Elasticsearch"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nstorage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("engine"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Write data")]),t._v("\nstorage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("create"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'refit-cleaned'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("schema"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("list")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("write"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'refit-cleaned'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("read"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keyed"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Unix'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),e("p",[t._v("Now we are able to check that our documents are indexed:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ http http://localhost:9200/_cat/indices?v\n")])])]),e("h3",{attrs:{id:"getting-insight-from-data-using-kibana"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-insight-from-data-using-kibana"}},[t._v("#")]),t._v(" Getting insight from data using Kibana")]),t._v(" "),e("p",[t._v("To demonstrate how the Frictionless Data specs and software empower the usage of other analytics tools, we will use ElasticSearch/Kibana project. On the previous step we have imported our data package into an ElasticSearch cluster. It allows us to visualize data using a simple UI:")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://i.imgur.com/Fm373F4.png",alt:"screenshot of elasticsearch cluster"}})]),t._v(" "),e("p",[t._v("In this screenshot we see the distribution of the average electricity comsumption. This is just an example of what you can do by having the ability to easily load datasets into other analytical software.")]),t._v(" "),e("h2",{attrs:{id:"review"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),e("h3",{attrs:{id:"the-results"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-results"}},[t._v("#")]),t._v(" The results")]),t._v(" "),e("p",[t._v("In this pilot, we have been able to demonstrate the the following:")]),t._v(" "),e("ul",[e("li",[t._v("Packaging the "),e("code",[t._v("refit-cleaned")]),t._v(" dataset as a data package using the Data Package Pipelines library")]),t._v(" "),e("li",[t._v("Validating the data package using the Goodtables library")]),t._v(" "),e("li",[t._v("Modifying data packages metadata using the Packagist UI")]),t._v(" "),e("li",[t._v("Uploading the dataset to Amazon S3 and ElasticSearch cluster using Frictionless Data tools")]),t._v(" "),e("li",[t._v("Reading and analysing in Python the created Data Package using the Frictionless Data library")])]),t._v(" "),e("h3",{attrs:{id:"current-limitations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#current-limitations"}},[t._v("#")]),t._v(" Current limitations")]),t._v(" "),e("p",[t._v("The central challenge of working with these datasets is the size. Publishing the results of these research projects as flat files for immediate analysis is beneficial, however, the scale of each of these datasets (gigabytes of data, millions of rows) is a challenge to deal with no matter how you are storing. Processing this data through Data Package pipelines takes a long time.")]),t._v(" "),e("h3",{attrs:{id:"next-steps"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),e("ul",[e("li",[t._v("Improve the speed of the data package creation step")])]),t._v(" "),e("h3",{attrs:{id:"find-out-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[t._v("#")]),t._v(" Find Out More")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-pnnl",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-pnnl"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"source-material"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#source-material"}},[t._v("#")]),t._v(" Source Material")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://app.hubspot.com/sales/2281421/deal/146418008",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://app.hubspot.com/sales/2281421/deal/146418008"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://discuss.okfn.org/c/working-groups/open-archaeology",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://discuss.okfn.org/c/working-groups/open-archaeology"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-open-archaeology",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-open-archaeology"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{441:function(t,a,s){t.exports=s.p+"assets/img/packagist.835e6f2c.png"},587:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"dm4t-pilot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dm4t-pilot"}},[t._v("#")]),t._v(" DM4T Pilot")]),t._v(" "),e("h2",{attrs:{id:"pilot-name"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#pilot-name"}},[t._v("#")]),t._v(" Pilot Name")]),t._v(" "),e("p",[t._v("Data Management for TEDDINET (DM4T)")]),t._v(" "),e("h2",{attrs:{id:"authors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#authors"}},[t._v("#")]),t._v(" Authors")]),t._v(" "),e("p",[t._v("Julian Padget (DM4T), Dan Fowler (OKI), Evgeny Karev (OKI)")]),t._v(" "),e("h2",{attrs:{id:"field"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#field"}},[t._v("#")]),t._v(" Field")]),t._v(" "),e("p",[t._v("Energy Data")]),t._v(" "),e("h2",{attrs:{id:"fd-tech-involved"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fd-tech-involved"}},[t._v("#")]),t._v(" FD Tech Involved")]),t._v(" "),e("ul",[e("li",[t._v("Frictionless Data specs: "),e("a",{attrs:{href:"http://specs.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://specs.frictionlessdata.io/"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("Data Package Pipelines: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),e("OutboundLink")],1)]),t._v(" "),e("li",[t._v("Goodtables: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/goodtables-py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[e("code",[t._v("packagist")]),t._v(" has now moved to "),e("a",{attrs:{href:"http://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("create.frictionlessdata.io"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"context"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#context"}},[t._v("#")]),t._v(" Context")]),t._v(" "),e("h3",{attrs:{id:"problem-we-were-trying-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#problem-we-were-trying-to-solve"}},[t._v("#")]),t._v(" Problem We Were Trying To Solve")]),t._v(" "),e("p",[t._v("Open Knowledge International and the Data Management for TEDDINET project (DM4T) agreed to work together on a proof-of-concept pilot to attempt to use Frictionless Data approaches to address some of the data legacy issues facing the TEDDINET project, a research network addressing the challenges of transforming energy demand in our buildings, as a key component of the transition to an affordable, low carbon energy system. The problem as described on the DM4T Website:")]),t._v(" "),e("blockquote",[e("p",[t._v("The Engineering and Physical Sciences Research Council (EPSRC), the UK’s main agency for funding research in engineering and the physical sciences, funded 22 projects over two calls in 2010 and 2012 to investigate Transforming Energy Demand through Digital Innovation’ (TEDDI) as a means to find out how people use energy in homes and what can be done reduce energy consumption. A lot of data is being collected at different levels of detail in a variety of housing throughout the UK, but the level of detail are largely defined by the needs of each individual project. At the same time, the Research Councils UK (RCUK) are defining guidelines for what happens to data generated by projects they fund which require researchers to take concrete actions to store, preserve, and document their data for future reference.")])]),t._v(" "),e("blockquote",[e("p",[t._v("The problem, however, is that there is relatively little awareness, limited experience and only emerging practice of how to incorporate data management into much of physical science research. This is in contrast to established procedures for data formats and sharing in the biosciences, stemming from international collaboration on the Human Genome Project, and in the social sciences, where data from national surveys, including census data, have been centrally archived for many years. Consequently, current solutions may be able to meet a minimal interpretation of the requirements, but not effectively deliver the desired data legacy.")])]),t._v(" "),e("p",[t._v("The DM4T group selected three suitable datasets to on which to base this work and provided domain knowledge to ensure the pilot is applicable to real use cases.")]),t._v(" "),e("p",[t._v("Output was tracked here: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/issues"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"the-work"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-work"}},[t._v("#")]),t._v(" The work")]),t._v(" "),e("p",[t._v("We will use the "),e("code",[t._v("refit-cleaned")]),t._v(" dataset to show the Frictionless Data specs and software capabilities. For this work, we limited the size of this dataset in order to preserve a reasonable showcasing time. However, by design the Frictionless Data software has a very good scalability and this process could be reproduced for the whole dataset. But for now it is worth noting that the speed for such a big datasets could be a bottle neck for a research work.")]),t._v(" "),e("h3",{attrs:{id:"refit-electrical-load-measurements-cleaned"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#refit-electrical-load-measurements-cleaned"}},[t._v("#")]),t._v(" REFIT: Electrical Load Measurements (Cleaned)")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the dataset: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/tree/delivery/datasets/refit-cleaned",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/tree/delivery/datasets/refit-cleaned"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("For each house in the study, this dataset consists of granular readings of electrical load. There were 20 houses in total, and each house had a different mix of devices plugged into the electrical load sensor. The dataset was distributed as a zipped file (~500MB) containing 20 CSVs with a combined ~120 million rows.")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("Time,Unix,Aggregate,Appliance1,Appliance2,Appliance3,Appliance4,Appliance5,Appliance6,Appliance7,Appliance8,Appliance9\n2013-10-09 13:06:17,1381323977,523,74,0,69,0,0,0,0,0,1\n2013-10-09 13:06:31,1381323991,526,75,0,69,0,0,0,0,0,1\n2013-10-09 13:06:46,1381324006,540,74,0,68,0,0,0,0,0,1\n2013-10-09 13:07:01,1381324021,532,74,0,68,0,0,0,0,0,1\n2013-10-09 13:07:15,1381324035,540,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:18,1381324038,539,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:30,1381324050,537,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:32,1381324052,537,74,0,69,0,0,0,0,0,1\n2013-10-09 13:07:44,1381324064,548,74,0,69,0,0,0,0,0,1\n")])])]),e("p",[t._v("Given that these datasets were already provided in well structured CSV files, it was straightforward to translate the data dictionary found in the dataset’s README into the relevant fields in the datapackage.json. We did not need to alter the CSVs that comprise the dataset.")]),t._v(" "),e("h3",{attrs:{id:"creating-a-data-package-using-datapackage-pipelines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-data-package-using-datapackage-pipelines"}},[t._v("#")]),t._v(" Creating a data package using Datapackage Pipelines")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the Datapackage Pipelines project: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/datapackage-pipelines"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("Datapackage Pipelines is a framework for declarative stream-processing of tabular data. It is built upon the concepts and tooling of the Frictionless Data project. The basic concept in this framework is the pipeline. A pipeline has a list of processing steps, and it generates a single data package as its output. Pipelines are defined in a declarative way, not in code. One or more pipelines can be defined in a "),e("code",[t._v("pipeline-spec.yaml")]),t._v(" file. This file specifies the list of processors (referenced by name) and their execution parameters.")]),t._v(" "),e("p",[t._v("One of the main purposes of the Frictionless Data project is data containerization. It means that instead of having two separated data knowledge sources (data files and text readme), we’re going to put both of them into a container based on the "),e("code",[t._v("Data Package")]),t._v(" specification. This allows us to:")]),t._v(" "),e("ul",[e("li",[t._v("Ensure that the dataset description is shipped with the data files")]),t._v(" "),e("li",[t._v("Provide column data type information to allow type validation")]),t._v(" "),e("li",[t._v("Use the Frictionless Data tooling for reading and validating datasets")]),t._v(" "),e("li",[t._v("Enable usage of other software which supports Frictionless Data specifications")])]),t._v(" "),e("p",[t._v("First, we used the "),e("code",[t._v("datapackage-pipeline")]),t._v(" library to create a data package from the raw dataset. We need a declarative file called "),e("code",[t._v("datapackage-pipelines.yaml")]),t._v(" to describe data transformations steps:")]),t._v(" "),e("blockquote",[e("p",[t._v("datapackage-pipelines.yaml")])]),t._v(" "),e("div",{staticClass:"language-yaml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-yaml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refit-cleaned")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("pipeline")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" add_metadata\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("electrical"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("load"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("measurements\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'REFIT: Electrical Load Measurements'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("license")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" CC"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("BY"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.0")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Collection of this dataset was supported by the Engineering and Physical Sciences Research Council (EPSRC) via the project entitled Personalised Retrofit Decision Support Tools for UK Homes using Smart Home Technology (REFIT)"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" which is a collaboration among the Universities of Strathclyde"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Loughborough and East Anglia. The dataset includes data from 20 households from the Loughborough area over the period 2013 "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" 2015. Additional information about REFIT is available from www.refitsmarthomes.org.\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("sources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'REFIT: Electrical Load Measurements (Cleaned)'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("web")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://pure.strath.ac.uk/portal/en/datasets/refit-electrical-load-measurements-cleaned(9ab14b0e-19ac-4279-938f-27f643078cec).html'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("email")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" researchdataproject@strath.ac.uk\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" add_resource\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("name")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("url")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datasets/refit-cleaned/House_1.csv'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" csv\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Other resources are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" stream_remote_resources\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" set_types\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("resources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"house-[0-9]{1,2}"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("types")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"Time"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" datetime\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("format")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt:%Y-%m-%d %H:%M:%S"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Unix")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Aggregate")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v('"Appliance[1-9]"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" integer\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" processors.modify_descriptions\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("resources")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" house"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("descriptions")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Fridge\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Chest Freezer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Upright Freezer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Tumble Dryer\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance5")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("descripion")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Washing Machine\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance6")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Dishwasher\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Computer Site\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Television Site\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("Appliance9")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("description")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Electric Heater\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Other resources are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" dump.to_path\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("out-path")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" packages/refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("cleaned\n")])])]),e("p",[t._v("The process follows contains these steps:")]),t._v(" "),e("ul",[e("li",[t._v("Create the data package metadata")]),t._v(" "),e("li",[t._v("Add all data files from the disc")]),t._v(" "),e("li",[t._v("Start resources streaming into the data package")]),t._v(" "),e("li",[t._v("Update resources descriptions using a custom processor")]),t._v(" "),e("li",[t._v("Save the data package to the disc")])]),t._v(" "),e("p",[t._v("Now we’re ready to run this pipeline:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ dpp run ./refit-cleaned\n")])])]),e("p",[t._v("After this step we have a data package containing a descriptor:")]),t._v(" "),e("blockquote",[e("p",[t._v("packages/refit-cleaned/datapakcage.json")])]),t._v(" "),e("div",{staticClass:"language-json extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"bytes"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1121187")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"count_of_rows"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("19980")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Collection of this dataset was supported by the Engineering and Physical Sciences Research Council (EPSRC) via the project entitled Personalised Retrofit Decision Support Tools for UK Homes using Smart Home Technology (REFIT), which is a collaboration among the Universities of Strathclyde, Loughborough and East Anglia. The dataset includes data from 20 households from the Loughborough area over the period 2013 - 2015. Additional information about REFIT is available from www.refitsmarthomes.org."')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hash"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"433ff35135e0a43af6f00f04cb8e666d"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"license"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CC-BY-4.0"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"refit-electrical-load-measurements"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resources"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"bytes"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("55251")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"count_of_rows"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dialect"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"delimiter"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('","')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"doubleQuote"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lineTerminator"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\r\\n"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quoteChar"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"\\""')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"skipInitialSpace"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dpp:streamedFrom"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"datasets/refit-cleaned/House_1.csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dpp:streaming"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"encoding"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"utf-8"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"format"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hash"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ad42fbf1302cabe30e217ff105d5a7fd"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"house-1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data/house-1.csv"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fields"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"format"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%Y-%m-%d %H:%M:%S"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Time"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"datetime"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Unix"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Aggregate"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Fridge"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Chest Freezer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance2"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Upright Freezer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance3"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Tumble Dryer"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance4"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"descripion"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Washing Machine"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance5"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Dishwasher"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance6"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Computer Site"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance7"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Television Site"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance8"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"description"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Electric Heater"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Appliance9"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n # Other resources is omitted\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("And a list of data files linked in the descriptor:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("ls")]),t._v(" packages/refit-cleaned/data\nhouse-10.csv house-13.csv house-17.csv house-1.csv house-2.csv house-5.csv house-8.csv\nhouse-11.csv house-15.csv house-18.csv house-20.csv house-3.csv house-6.csv house-9.csv\nhouse-12.csv house-16.csv house-19.csv house-21.csv house-4.csv house-7.csv\n")])])]),e("h3",{attrs:{id:"validating-a-data-package-using-goodtables"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#validating-a-data-package-using-goodtables"}},[t._v("#")]),t._v(" Validating a data package using Goodtables")]),t._v(" "),e("p",[t._v("Goodtables is a software family for tabular data validation. It’s available as a Python library, a command line tool, "),e("a",{attrs:{href:"https://try.goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("web application"),e("OutboundLink")],1),t._v(" and "),e("a",{attrs:{href:"https://goodtables.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("continuous validation service"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("The main features of Goodtables are:")]),t._v(" "),e("ul",[e("li",[t._v("Structural checks: Ensure that there are no empty rows, no blank headers, etc.")]),t._v(" "),e("li",[t._v("Content checks: Ensure that the values have the correct types (“string”, “number”, “date”, etc.), that their format is valid (“string must be an e-mail”), and that they respect the constraints (“age must be a number greater than 18”).")]),t._v(" "),e("li",[t._v("Support for multiple tabular formats: CSV, Excel files, LibreOffice, Data Package, etc.")]),t._v(" "),e("li",[t._v("Parallelized validations for multi-table datasets")])]),t._v(" "),e("p",[t._v("Because we have provided data types for the columns at the wrapping stage, here we validate both the data structure and compliance to the data types using the Goodtables command line interface:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ goodtables packages/refit-cleaned/datapackage.json\nDATASET\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'error-count'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'preset'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage'")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'table-count'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.694")]),t._v(",\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'valid'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" True"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("h3",{attrs:{id:"modifying-a-data-package-using-packagist"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#modifying-a-data-package-using-packagist"}},[t._v("#")]),t._v(" Modifying a data package using Packagist")]),t._v(" "),e("p",[t._v("If we need to modify our data package, we could use the "),e("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Packagist"),e("OutboundLink")],1),t._v(". It incorporates a straightforward UI to modify and validate data package descriptors. With its easy to use interface we are able to:")]),t._v(" "),e("ul",[e("li",[t._v("Load/validate/save a data package")]),t._v(" "),e("li",[t._v("Update a data package metadata")]),t._v(" "),e("li",[t._v("Add/remove/modify data package resources")]),t._v(" "),e("li",[t._v("Add/remove/modify data resource fields")]),t._v(" "),e("li",[t._v("Set type/format for data values")])]),t._v(" "),e("p",[e("img",{attrs:{src:s(441),alt:"ADBio"}})]),t._v(" "),e("p",[t._v("On the figure above we have loaded the "),e("code",[t._v("refit-cleaned")]),t._v(" data package into the Packagist UI to make changes to the data package as needed.")]),t._v(" "),e("h3",{attrs:{id:"publishing-a-data-package-to-amazon-s3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing-a-data-package-to-amazon-s3"}},[t._v("#")]),t._v(" Publishing a data package to Amazon S3")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the published package: "),e("a",{attrs:{href:"https://s3.eu-central-1.amazonaws.com/pilot-dm4t/pilot-dm4t/packages/refit-cleaned/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://s3.eu-central-1.amazonaws.com/pilot-dm4t/pilot-dm4t/packages/refit-cleaned/datapackage.json"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("In this section we will show how data packages can be moved from one data storage system to another. This is possible because it has been containerised.")]),t._v(" "),e("p",[t._v("One important feature of the "),e("code",[t._v("datapackage-pipelines")]),t._v(" project that it works as a conveyor. We could push our data package not only to the local disc but to other destinations. For example to the Amazon S3:")]),t._v(" "),e("blockquote",[e("p",[t._v("pipelines-spec.yml")])]),t._v(" "),e("div",{staticClass:"language-yaml extra-class"},[e("pre",{pre:!0,attrs:{class:"language-yaml"}},[e("code",[e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refit-cleaned")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Initial steps are omitted")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("run")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" aws.dump.to_s3\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("parameters")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("bucket")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pilot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("dm4t\n "),e("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("path")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" pilot"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("dm4t/packages/refit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("cleaned\n")])])]),e("p",[t._v("Running this command again:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ dpp run ./refit-cleaned\n")])])]),e("p",[t._v("And now our data package is published to Amazon the S3 remote storage:")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://i.imgur.com/5Z7EPDR.pnghttps://",alt:"screenshot of S3 storage"}})]),t._v(" "),e("h3",{attrs:{id:"getting-insight-from-data-using-python-libraries"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-insight-from-data-using-python-libraries"}},[t._v("#")]),t._v(" Getting insight from data using Python libraries")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the demostration script: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The Frictionless Data projects provides various Python (along with other 8 languages) libraries to work with data package programatically. We used the "),e("code",[t._v("datapackage")]),t._v(" library to analyse the "),e("code",[t._v("refit-cleaned")]),t._v(" data package:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datetime\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" statistics\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" datapackage "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Package\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get aggregates")]),t._v("\nconsumption "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\npackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/refit-cleaned/datapackage.json'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" resource "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" row "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("iter")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keyed"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n hour "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hour\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("setdefault"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("append"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("row"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Aggregate'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get averages")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" hour "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" statistics"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mean"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Print results")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" hour "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("sorted")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Average consumption at %02d hours: %.0f'")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" consumption"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("hour"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Now we could run it in the command line:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ python examles/refit-cleaned.py\nAverage consumption at 00 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("232")]),t._v("\nAverage consumption at 01 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("213")]),t._v("\nAverage consumption at 02 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("247")]),t._v("\nAverage consumption at 03 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("335")]),t._v("\nAverage consumption at 04 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("215")]),t._v("\nAverage consumption at 05 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("690")]),t._v("\nAverage consumption at 06 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("722")]),t._v("\nAverage consumption at 07 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("648")]),t._v("\nAverage consumption at 08 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("506")]),t._v("\nAverage consumption at 09 hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("464")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("364")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("569")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("520")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("497")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("380")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("383")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("459")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("945")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("733")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("732")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("471")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("478")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("325")]),t._v("\nAverage consumption at "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v(" hours: "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("231")]),t._v("\n")])])]),e("p",[t._v("Here we we’re able to get the averages for electricity consumption grouped by hour. We could have achieved this in different ways, but using the Frictionless Data specs and software provides some important advantages:")]),t._v(" "),e("ul",[e("li",[t._v("The fact that we have data wrapped into a data package has allowed us to validate and read the data already converted for its correct types (e.g native python "),e("code",[t._v("datetime")]),t._v(" object). No need for any kind of string parsing.")]),t._v(" "),e("li",[t._v("The Frictionless Data software uses file streams under the hood. This means that only the current row is kept in memory, so we’re able to handle datasets bigger than the available RAM memory.")])]),t._v(" "),e("h3",{attrs:{id:"exporting-data-to-an-elasticsearch-cluster"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#exporting-data-to-an-elasticsearch-cluster"}},[t._v("#")]),t._v(" Exporting data to an ElasticSearch cluster")]),t._v(" "),e("blockquote",[e("p",[t._v("Link to the export script: "),e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-dm4t/blob/delivery/scripts/refit-cleaned.py"),e("OutboundLink")],1)])]),t._v(" "),e("p",[t._v("The Frictionless Data software provides plugins to export data to various backends like SQL, BigQuery etc. We will export the first resource from our data package for future analysis:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" elasticsearch "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Elasticsearch\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" datapackage "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Package\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" tableschema_elasticsearch "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Storage\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Get resource")]),t._v("\npackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'packages/refit-cleaned/datapackage.json'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nresource "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" package"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Create storage")]),t._v("\nengine "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Elasticsearch"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nstorage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("engine"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Write data")]),t._v("\nstorage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("create"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'refit-cleaned'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("schema"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("list")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("write"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'refit-cleaned'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'house-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" resource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("read"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("keyed"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Unix'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),e("p",[t._v("Now we are able to check that our documents are indexed:")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[t._v("$ http http://localhost:9200/_cat/indices?v\n")])])]),e("h3",{attrs:{id:"getting-insight-from-data-using-kibana"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-insight-from-data-using-kibana"}},[t._v("#")]),t._v(" Getting insight from data using Kibana")]),t._v(" "),e("p",[t._v("To demonstrate how the Frictionless Data specs and software empower the usage of other analytics tools, we will use ElasticSearch/Kibana project. On the previous step we have imported our data package into an ElasticSearch cluster. It allows us to visualize data using a simple UI:")]),t._v(" "),e("p",[e("img",{attrs:{src:"https://i.imgur.com/Fm373F4.png",alt:"screenshot of elasticsearch cluster"}})]),t._v(" "),e("p",[t._v("In this screenshot we see the distribution of the average electricity comsumption. This is just an example of what you can do by having the ability to easily load datasets into other analytical software.")]),t._v(" "),e("h2",{attrs:{id:"review"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#review"}},[t._v("#")]),t._v(" Review")]),t._v(" "),e("h3",{attrs:{id:"the-results"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#the-results"}},[t._v("#")]),t._v(" The results")]),t._v(" "),e("p",[t._v("In this pilot, we have been able to demonstrate the the following:")]),t._v(" "),e("ul",[e("li",[t._v("Packaging the "),e("code",[t._v("refit-cleaned")]),t._v(" dataset as a data package using the Data Package Pipelines library")]),t._v(" "),e("li",[t._v("Validating the data package using the Goodtables library")]),t._v(" "),e("li",[t._v("Modifying data packages metadata using the Packagist UI")]),t._v(" "),e("li",[t._v("Uploading the dataset to Amazon S3 and ElasticSearch cluster using Frictionless Data tools")]),t._v(" "),e("li",[t._v("Reading and analysing in Python the created Data Package using the Frictionless Data library")])]),t._v(" "),e("h3",{attrs:{id:"current-limitations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#current-limitations"}},[t._v("#")]),t._v(" Current limitations")]),t._v(" "),e("p",[t._v("The central challenge of working with these datasets is the size. Publishing the results of these research projects as flat files for immediate analysis is beneficial, however, the scale of each of these datasets (gigabytes of data, millions of rows) is a challenge to deal with no matter how you are storing. Processing this data through Data Package pipelines takes a long time.")]),t._v(" "),e("h3",{attrs:{id:"next-steps"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#next-steps"}},[t._v("#")]),t._v(" Next Steps")]),t._v(" "),e("ul",[e("li",[t._v("Improve the speed of the data package creation step")])]),t._v(" "),e("h3",{attrs:{id:"find-out-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#find-out-more"}},[t._v("#")]),t._v(" Find Out More")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-pnnl",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-pnnl"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"source-material"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#source-material"}},[t._v("#")]),t._v(" Source Material")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://app.hubspot.com/sales/2281421/deal/146418008",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://app.hubspot.com/sales/2281421/deal/146418008"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://discuss.okfn.org/c/working-groups/open-archaeology",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://discuss.okfn.org/c/working-groups/open-archaeology"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-open-archaeology",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://github.com/frictionlessdata/pilot-open-archaeology"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/5.7bd12aaf.js b/assets/js/5.c86ab2e9.js similarity index 97% rename from assets/js/5.7bd12aaf.js rename to assets/js/5.c86ab2e9.js index ca38b9641..712bf5cb2 100644 --- a/assets/js/5.7bd12aaf.js +++ b/assets/js/5.c86ab2e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{478:function(e,a,t){e.exports=t.p+"assets/img/figure-1.0b5d5da2.png"},479:function(e,a,t){e.exports=t.p+"assets/img/figure-2.a4cda338.png"},480:function(e,a,t){e.exports=t.p+"assets/img/figure-3.e234c78e.png"},481:function(e,a){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWVBJaIBQpoTdRepVeIwhIFWyEJJBQYkgIKnZ0UcG1oGLBiq6KKLgWQBYVsWBhEez9YUFFWRcLNlTeJAF09Xvvfe9839z758yZM+ecO3dyBwC1GI5YnI2qA5AjypPEhgWyJiSnsEgPAQqIgAq8gDuHKxUHxMREAihD93/Ku+sAkd+v2Mt9/dz/X0WDx5dyAUBiIKfxpNwcyIcBwN24YkkeAIQeqDebnieGTIRRAi0JDBCyuZwzlOwh5zQlRyps4mODIKcCQKZxOJIMAFTlcbHyuRnQj+oyyA4inlAEuRGyL1fA4UH+DHlkTs40yGrWkK3TvvOT8Q+facM+OZyMYVbmohBysFAqzubM/D/L8b8lJ1s2NIcZbDSBJDxWnrO8blnTIuRMg3xOlBYVDVkT8lUhT2Ev5ycCWXjCoP0HrjQI1gwwAUBpPE5wBGQDyKai7KjIQb1vujCUDRnWHo0X5rHjlWNRnmRa7KB/dAZfGhI3xByJYi65TbEsKyFg0OcWAZ895LOhQBCfpIwTbc8XJkZBVoV8V5oVFzFo87xAEBQ1ZCORxcpjhs8cA+mS0FilDWaeIx3KC/MSCNlRgxyZJ4gPV47FpnA5ith0IWfypRMih+Lk8YNDlHlhhXxRwmD8WKk4LzB20H6nODtm0B5r5GeHyfWmkNuk+XFDY3vz4GJT5osDcV5MvDI2XCuTMzZGGQNuCyJBEAgGLCCDLQ1MA5lA2NZT1wN/KXtCAQdIQAbgA/tBzdCIJEWPCF7jQAH4CxIfSIfHBSp6+SAf6r8Ma5VXe5Cu6M1XjMgCTyDngAiQDX/LFKNEw7MlgsdQI/xpdi6MNRs2ed9POpbakI4YQgwmhhNDiTa4Pu6Le+OR8OoPmxPugXsOxfXNnvCE0EF4SLhG6CTcmioslPwQOQuMA50wxtDB7NK+zw63hF5d8UDcB/qHvnEmrg/scRc4UwDuB+d2hdrvY5UNZ/ytloO+KA4UlKJD8adY/xiBqq2q67AXeaW+r4UyrrThagUN9/yYR9B39ePBe8SPltgS7BDWgp3EzmONWB1gYSeweqwVOybn4bXxWLE2hmaLVcSTBf0If5qPMzinvGpShyqHbofPg30gjz8jT/6yBE0Tz5QIMwR5rAC4W/NZbBF31EiWk4Mj3EXle79ya3nDVOzpCPPCN11uEwCexVCZ8U3HgXvQ0ScAMN5905m9hst+JQDH2rkySb5Sh8svBPiPogbfFD1gBPcua5iRE3AD3sAfhICxIBrEg2QwBdZZANepBEwHs8ECUARKwEqwFmwEW8EOsAfsBwdBHWgEJ8FZcBG0g2vgDlwrXeAF6AXvQD+CICSEjjAQPcQYsUDsECfEA/FFQpBIJBZJRlKRDESEyJDZyEKkBClFNiLbkUrkd+QochI5j3Qgt5AHSDfyGvmEYigN1UINUUt0NOqBBqARaDw6Gc1Ac9ECdBG6HF2PVqD70Fr0JHoRvYZ2oi/QPgxgKhgTM8HsMQ8sCIvGUrB0TILNxYqxMqwCq8Ya4JO+gnViPdhHnIgzcBZuD9drOJ6Ac/FcfC6+DN+I78Fr8dP4FfwB3ot/JdAJBgQ7gheBTZhAyCBMJxQRygi7CEcIZ+C700V4RyQSmUQrojt895KJmcRZxGXEzcQaYhOxg/iI2EcikfRIdiQfUjSJQ8ojFZE2kPaRTpAuk7pIH8gqZGOyEzmUnEIWkQvJZeS95OPky+Sn5H6KOsWC4kWJpvAoMykrKDspDZRLlC5KP1WDakX1ocZTM6kLqOup1dQz1LvUNyoqKqYqnirjVYQq81XWqxxQOafyQOUjTZNmSwuiTaLJaMtpu2lNtFu0N3Q63ZLuT0+h59GX0yvpp+j36R9UGaqjVNmqPNV5quWqtaqXVV+qUdQs1ALUpqgVqJWpHVK7pNajTlG3VA9S56jPVS9XP6p+Q71Pg6HhqBGtkaOxTGOvxnmNZ5okTUvNEE2e5iLNHZqnNB8xMIYZI4jBZSxk7GScYXRpEbWstNhamVolWvu12rR6tTW1XbQTtWdol2sf0+5kYkxLJpuZzVzBPMi8zvykY6gToMPXWapTrXNZ573uCF1/Xb5usW6N7jXdT3osvRC9LL1VenV69/RxfVv98frT9bfon9HvGaE1wnsEd0TxiIMjbhugBrYGsQazDHYYtBr0GRoZhhmKDTcYnjLsMWIa+RtlGq0xOm7Ubcww9jUWGq8xPmH8nKXNCmBls9azTrN6TQxMwk1kJttN2kz6Ta1ME0wLTWtM75lRzTzM0s3WmDWb9Zobm48zn21eZX7bgmLhYSGwWGfRYvHe0soyyXKxZZ3lMytdK7ZVgVWV1V1rurWfda51hfVVG6KNh02WzWabdlvU1tVWYFtue8kOtXOzE9pttusYSRjpOVI0smLkDXuafYB9vn2V/YNRzFGRowpH1Y16Odp8dMroVaNbRn91cHXIdtjpcMdR03GsY6Fjg+NrJ1snrlO501VnunOo8zzneudXLnYufJctLjddGa7jXBe7Nrt+cXN3k7hVu3W7m7unum9yv+Gh5RHjsczjnCfBM9Bznmej50cvN688r4Nef3vbe2d57/V+NsZqDH/MzjGPfEx9OD7bfTp9Wb6pvtt8O/1M/Dh+FX4P/c38ef67/J8G2ARkBuwLeBnoECgJPBL4PsgraE5QUzAWHBZcHNwWohmSELIx5H6oaWhGaFVob5hr2KywpnBCeET4qvAbbEM2l13J7h3rPnbO2NMRtIi4iI0RDyNtIyWRDePQcWPHrR53N8oiShRVFw2i2dGro+/FWMXkxvwxnjg+Znz5+CexjrGzY1viGHFT4/bGvYsPjF8RfyfBOkGW0JyoljgpsTLxfVJwUmlS54TRE+ZMuJisnyxMrk8hpSSm7Erpmxgyce3Erkmuk4omXZ9sNXnG5PNT9KdkTzk2VW0qZ+qhVEJqUure1M+caE4Fpy+NnbYprZcbxF3HfcHz563hdfN9+KX8p+k+6aXpzzJ8MlZndAv8BGWCHmGQcKPwVWZ45tbM91nRWbuzBrKTsmtyyDmpOUdFmqIs0elpRtNmTOsQ24mLxJ25Xrlrc3slEZJdUkQ6WVqfpwU/sltl1rJfZA/yffPL8z9MT5x+aIbGDNGM1pm2M5fOfFoQWvDbLHwWd1bzbJPZC2Y/mBMwZ/tcZG7a3OZ5ZvMWzeuaHzZ/zwLqgqwFfxY6FJYWvl2YtLBhkeGi+Yse/RL2S1WRapGk6MZi78Vbl+BLhEvaljov3bD0azGv+EKJQ0lZyedl3GUXfnX8df2vA8vTl7etcFuxZSVxpWjl9VV+q/aUapQWlD5aPW517RrWmuI1b9dOXXu+zKVs6zrqOtm6zvWR6+s3mG9YueHzRsHGa+WB5TWbDDYt3fR+M2/z5S3+W6q3Gm4t2fppm3Dbze1h22srLCvKdhB35O94sjNxZ8tvHr9V7tLfVbLry27R7s49sXtOV7pXVu412LuiCq2SVXXvm7SvfX/w/vpq++rtNcyakgPggOzA899Tf79+MOJg8yGPQ9WHLQ5vOsI4UlyL1M6s7a0T1HXWJ9d3HB17tLnBu+HIH6P+2N1o0lh+TPvYiuPU44uOD5woONHXJG7qOZlx8lHz1OY7pyacunp6/Om2MxFnzp0NPXuqJaDlxDmfc43nvc4fveBxoe6i28XaVtfWI3+6/nmkza2t9pL7pfp2z/aGjjEdxy/7XT55JfjK2avsqxevRV3ruJ5w/eaNSTc6b/JuPruVfevV7fzb/Xfm3yXcLb6nfq/svsH9in/Z/Kum063z2IPgB60P4x7eecR99OKx9PHnrkVP6E/Knho/rXzm9KyxO7S7/fnE510vxC/6e4r+0vhr00vrl4f/9v+7tXdCb9cryauB18ve6L3Z/dblbXNfTN/9dznv+t8Xf9D7sOejx8eWT0mfnvZP/0z6vP6LzZeGrxFf7w7kDAyIORKO4lMAgw1NTwfg9W4A6Mnw26EdAOpE5dlMIYjyPKkg8J9YeX5TiBsAu/0BSJgPQCT8RtkCmwVkGrzLP8Hj/QHq7DzcBkWa7uyk9EWDJxbCh4GBN4YAkBoA+CIZGOjfPDDwZScM9hYATbnKM6Fc5GfQbTZyamslaIEf5N/H6HBu2pz2HQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAgJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjgwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjgwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ch8/WucAAAUSSURBVGgF7VhJKH1/FD/PHCKZNsgUNobMZEiZpywMG7KUjZIVGf5lSNmxk7VSFsqwQBGZFUkiY1LKsCDz+PO5dV/v3Xu/930v7/1//cqp17vf8z3nfM+594xf3fPz8yf9w2D1D+suqP5rwN/+gr9f4G9/ARtLKHBzc0NbW1tGopOSksjGxvzHmV/il9pzc3M0NDRkZICTkxNFR0cb4cyxsEgMrK6uynRbWFiQ4cyBMLsBl5eXdHJyItNtY2ODHh8fZfifIjQbsLe3R+/v78xz19bW6PNTXtxfXl4IeyxA3Kjts/g0xcDIyAgNDw+Tp6cn5efnU3p6OtnZ2ell39/f0+Lion4tfZiZmaHY2FhydHTUb93e3tLY2BhNT08TjKyoqKCioiL9vqkHHW8vJCpvKNDFxYVyc3MpNDRUCNylpSVBCUMa6bO9vT0hI6WmptLm5iZNTk7Slw5GZOXl5VRcXGyEYy24DFhZWaG+vj6WDIvgW1tbKSQkxKRsrhgICwszchWTUn9IABcNCgriksJlgKurK2VmZnIJNAdRQUEBWVtbc4niMgCSCgsLCf5racDLSktL4z6G2wAEbHZ2Nrfg7xLm5ORocldNaTQiIoJGR0dN6gYfDgwMFH4gPjo6ooODA7q+vjbJi3jTApoMmJ+fV5Xt4OBAtbW1FBMTI6P7+PgQUibqyNPTk2xfRKCP4sk+Ij23C6FILS8vi3yyfxSnpqYmReVBbGVlJdQM0BgWP6kg1JKHhwcpmrm2bmlp+Y+5+7UBYWjEBgcHCX0OC2pqaig8PJy1rce7ubkRvpS03RYJ0KZsb28LxQ20hlVbpDH8Vyxkb29vQpWE4qiWr6+vhjyyZz8/P+rq6pLhWQi4U0NDg+oLAa9Op6OAgACKi4sTMhMylBQUYwD9TH9/v5SWucYBWgDuFB8fT+Pj46psaAqRAPBjpVfuGFA7ycfHR21bcc/b21sRrxVpFgPgElrhOzxKZ5jFgNPTUyXZqrjz83PVfd5NRQMiIyOFvhzFCIFkCpD6tLxR0K6vr5sSS7a2tkIA19fXU3JysiK9YhYypLy6uhImJWQkpVFRpK2urqasrCxxqfo/OztLAwMDTBp0ohkZGUKgfyuNKkm+u7ujuro65sCC3N7W1ka+vr5K7Hrc4eEhdXd3M+djFLne3l5ydnbW86g9KLqQEgMEJiYmKm0JOLQH7e3twmioNBOjQCFtdnZ2MpWHIExrvMqD3qQLgUiE3d1d6ujoEJfMfy8vLwoODiZ/f39hwD8+Pqb9/X2uZq65uZm0NHSKhYylGQzggYuLC8JPbcBnyUGLocUAbhfCjQEGcEsDzsBNBS9wG4ArES2CeRWQ0iGWTLUYhjxcBiAAJyYmDPks+jw1NUW46OIBLgN4A5DnQB4auCtvvJmcB3Cgh4eHMJDs7OwYnY/cn5eXR2VlZULFRnugdu0IZuR5XGpVVVURGrqzszPZxVZpaSn3LYimNCrezkEJVF1cf2DYFwHFrqenh1CslAC9fWNjo9GQgrc9+1WZ4feYmaF8SUmJErsiTpMBkIBbOqQ5peEC+1CG1SZUVlYKYyXopIAvB1fVkkIhgysGDA9LSEhgKg86DCpowqSAplBt8MFFllblcYZmA6SKSddovqKioqRo4YrF3d1dhv8pwuwGQKGUlBSZXvgylgDNMcCjBC4FpG0EZgxW3PDIZNFYxADWYZbAW8SFLKEoS+avAaw383/h/wBEme+Is1WR0gAAAABJRU5ErkJggg=="},482:function(e,a,t){e.exports=t.p+"assets/img/figure-4.65dd4176.png"},483:function(e,a,t){e.exports=t.p+"assets/img/figure-5.a7c23193.png"},484:function(e,a,t){e.exports=t.p+"assets/img/figure-6.5520e95a.png"},485:function(e,a,t){e.exports=t.p+"assets/img/figure-7.866156c7.png"},486:function(e,a,t){e.exports=t.p+"assets/img/figure-8.3afbab68.png"},610:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,o=e._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"include-a-data-schema"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#include-a-data-schema"}},[e._v("#")]),e._v(" Include a data schema")]),e._v(" "),o("p",[e._v("Simply put, a schema is a blueprint that tells us how your data is structured, and what type of content is to be expected in it. You can think of it as a data dictionary. Having a table schema at hand makes it possible to run more precise validation checks on your data, both at a structural and content level.")]),e._v(" "),o("p",[e._v("For this section, we will use the "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"http://datahub.io/core/gdp",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gross Domestic Product dataset for all countries (1960 - 2014)"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("Data Package")]),e._v(" is a format that makes it possible to put your data collection and relevant information that provides context about your data in one container before you share it. All contextual information, such as metadata and your data schema, is published in a JSON file named "),o("em",[e._v("datapackage.json")]),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("Data Package Creator")]),e._v(" is an online service that facilitates the creation and editing of data packages. The service automatically generates a "),o("em",[e._v("datapackage.json")]),e._v(" file for you as you add and edit data that is part of your data collection. We refer to each piece of data in a data collection as a "),o("strong",[e._v("data resource")]),e._v(".")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" loads with dummy data to make it easy to understand how metadata and sample resources help generate the "),o("em",[e._v("datapackage.json")]),e._v(" file. There are three ways in which a user can add data resources on "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("ol",[o("li",[e._v("Provide a hyperlink to your data resource (highly recommended).")])]),e._v(" "),o("p",[e._v("If your data resource is publicly available, like on GitHub or in a data repository, simply obtain the URL and paste it in the "),o("strong",[e._v("Path")]),e._v(" section. To learn how to publish your data resource online, check the publish your dataset section.")]),e._v(" "),o("ol",{attrs:{start:"2"}},[o("li",[e._v("Create your data resource within the service.")])]),e._v(" "),o("p",[e._v("If your data resource isn’t published online, you’ll have to define its fields from scratch. Depending on how complex is your data, this can be time consuming, but it’s still easier than creating the descriptor JSON file from scratch.This option is time consuming, as a user has to manually create each field of a data resource. However, this is simpler than learning how to create a JSON file from scratch.")]),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[o("strong",[e._v("Load a Data Package")]),e._v(" option")])]),e._v(" "),o("p",[e._v("With this option, you can load a pre-existing "),o("em",[e._v("datapackage.json")]),e._v(" file to view and edit its metadata and resource fields.")]),e._v(" "),o("p",[e._v("Our "),o("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/blob/master/gross-domestic-product-all/data/gdp.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gross Domestic Product dataset for all countries (1960 - 2014)"),o("OutboundLink")],1),e._v(" dataset is publicly available on GitHub.")]),e._v(" "),o("p",[e._v("Obtain a link to the raw CSV file by clicking on the Raw button at the top right corner of the GitHub file preview page, as shown in figure 1 below. The resulting hyperlink looks like "),o("a",{attrs:{href:"https://raw.githubusercontent.com/datasets/continent-codes/master/data/continent-codes.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://raw.githubusercontent.com/datasets/continent-codes/master/data/continent-codes.csv"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("img",{attrs:{src:t(478),alt:"Above, raw button highlighted in red"}}),o("br"),e._v(" "),o("em",[e._v("Figure 1: Above, raw button highlighted in red.")])]),e._v(" "),o("p",[e._v("Paste your hyperlink in the "),o("em",[e._v("Path")]),e._v(" section and click on the "),o("em",[e._v("Load")]),e._v(" button. Each column in your table translates to a "),o("em",[e._v("field")]),e._v(". You should be prompted to add all fields identified in your data resource, as in Figure 2 below. Click on the prompt to load the fields.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(479),alt:"annotated in red, a prompt to add all fields inferred from your data resource"}}),o("br"),e._v(" "),o("em",[e._v("Figure 2: annotated in red, a prompt to add all fields inferred from your data resource.")])]),e._v(" "),o("p",[e._v("The page that follows looks like Figure 3 below. Each column from the GDP dataset has been mapped to a "),o("em",[e._v("field")]),e._v(". The data type for each column has been inferred correctly, and we can preview data under each field by hovering over the field name. It is also possible to edit all sections of our data resource’s fields as we can see below.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(480),alt:"all fields inferred from your data resource"}}),o("br"),e._v(" "),o("em",[e._v("Figure 3: all fields inferred from your data resource.")])]),e._v(" "),o("p",[e._v("You can now edit data types and formats as necessary, and optionally add titles and descriptive information to your fields. For example, the data type for our {Year} field should be "),o("em",[o("strong",[e._v("year")])]),e._v(" and not "),o("em",[o("strong",[e._v("integer")])]),e._v(". Our {Value} column has numeric information with decimal places.")]),e._v(" "),o("p",[e._v("By definition, values under the "),o("em",[o("strong",[e._v("integer")])]),e._v(" data type are whole numbers. The "),o("em",[o("strong",[e._v("number")])]),e._v(" data type is more appropriate for the {Value} column. When in doubt about what data type to use, consult the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#types-and-formats",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema data types cheat sheet"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Click on the "),o("img",{attrs:{src:t(481),alt:""}}),e._v(" icon to pick a suitable profile for your data resource. "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/profiles/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here’s more information about Frictionless Data profiles"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("If your dataset has other data resources, add them by scrolling to the bottom of the page, clicking on Add Resource, and repeating the same process as we just did.")]),e._v(" "),o("p",[e._v("If your dataset has other data resources, add them by scrolling to the bottom of the page, clicking on "),o("strong",[e._v("Add Resource")]),e._v(", and repeating the same process as we just did.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(482),alt:"Prompt to add more data resources"}}),o("br"),e._v(" "),o("em",[e._v("Figure 4: Prompt to add more data resources.")])]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"add-descriptive-metadata"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#add-descriptive-metadata"}},[e._v("#")]),e._v(" Add descriptive metadata")]),e._v(" "),o("p",[e._v("In the previous section, we described metadata for each of our datasets, but we’re still missing metadata for our collection of datasets. You can add it via the "),o("strong",[e._v("Metadata")]),e._v(" section on the left side bar, describing things like the dataset name, description, author, license, etc.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(483),alt:"Add Data Package Metadata"}})]),e._v(" "),o("p",[e._v("The "),o("strong",[e._v("Profile")]),e._v(" section under metadata allows us to specify what kind of data collection we are packaging.")]),e._v(" "),o("ul",[o("li",[o("p",[o("em",[e._v("Data Package")]),o("br"),e._v("\nThis is the base, more general profile. Use it if your dataset contains resources of mixed formats, like tabular and geographical data. The base requirement for a valid Data Package profile is the "),o("em",[e._v("datapackage.json")]),e._v(" file. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])]),e._v(" "),o("li",[o("p",[o("em",[e._v("Tabular Data Package")]),o("br"),e._v("\nIf your data contains only tabular resources like CSVs and spreadsheets, use the Tabular Data Package profile. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])]),e._v(" "),o("li",[o("p",[o("em",[e._v("Fiscal Data Package")]),o("br"),e._v("\nIf your data contains fiscal information like budgets and expenditure data, use the Fiscal Data Package profile. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/fiscal-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fiscal Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])])]),e._v(" "),o("p",[e._v("In our example, as we only have a CSV data resource, the "),o("em",[e._v("Tabular Data Package")]),e._v(" profile is the best option.")]),e._v(" "),o("p",[e._v("In the "),o("strong",[e._v("Keywords")]),e._v(" section, you can add any keywords that helps make your data collection more discoverable. For our dataset, we might use the keywords "),o("em",[e._v("GDP, National Accounts, National GDP, Regional GDP")]),e._v(". Other datasets could include the country name, dataset area (e.g. “health” or “environmental”), etc.")]),e._v(" "),o("p",[e._v("Now that we have created a Data Package, we can "),o("strong",[e._v("Validate")]),e._v(" or "),o("strong",[e._v("Download")]),e._v(" it. But first, let’s see what our datapackage.json file looks like. With every addition and modification, the "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" has been populating the "),o("em",[e._v("datapackage.json")]),e._v(" file for us. Click on the "),o("strong",[e._v("{···}")]),e._v(" icon to view the "),o("em",[e._v("datapackage.json")]),e._v(" file. As you can see below, any edit we make to the description of the Value field reflects on the JSON file in real time.")]),e._v(" "),o("p",[e._v("The "),o("strong",[e._v("Validate")]),e._v(" button allows us to confirm whether we chose the correct Profile for our Data Package. The two possible outcomes at this stage are:")]),e._v(" "),o("p",[o("img",{attrs:{src:t(484),alt:"Data Package is Invalid"}})]),e._v(" "),o("p",[e._v("This message appears when there is some validation error like if we miss some required attribute (e.g. the data package name), or have picked an incorrect profile (e.g. Tabular Data Package with geographical data)… Review the metadata and profiles to find the mistake and try validating again.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(485),alt:"Data Package is Valid"}})]),e._v(" "),o("p",[e._v("All good! This message means that your data package is valid, and we can download it.")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"create-data-packages"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#create-data-packages"}},[e._v("#")]),e._v(" Create Data Packages")]),e._v(" "),o("p",[e._v("As we said earlier, the base requirement for a valid Data Package profile is the "),o("em",[e._v("datapackage.json")]),e._v(" file, which contains your data schema and metadata. We call this the descriptor file. You can download your descriptor file by clicking on the "),o("strong",[e._v("Download")]),e._v(" button.")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("If your data resources, like ours, were linked from an online public source, sharing the "),o("em",[e._v("datapackage.json")]),e._v(" file is sufficient, since it contains URLs to your data resources.")])]),e._v(" "),o("li",[o("p",[e._v("If you manually created a data resource and its fields, remember to add all your data resources and the downloaded "),o("em",[e._v("datapackage.json")]),e._v(" file in one folder before sharing it.")])])]),e._v(" "),o("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),o("li",[o("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),o("p",[e._v("Your final Data Package file directory should look like this:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v("data/\n dataresource1.csv\n dataresource2.csv\ndatapackage.json\n")])])]),o("ul",[o("li",[o("p",[o("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there is only one: "),o("code",[e._v("data/gdp.csv")]),e._v(" .")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files.")])])]),e._v(" "),o("p",[e._v("Congratulations! You have now created a schema for your data, and combined it with descriptive metadata and your data collection to create your first data package!")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"validate-your-packaged-data-automatically"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-your-packaged-data-automatically"}},[e._v("#")]),e._v(" Validate your packaged data automatically")]),e._v(" "),o("p",[e._v("Running continuous checks on data provides regular feedback and contributes to better data quality as errors can be flagged and fixed early on.")]),e._v(" "),o("p",[e._v("In this section, you will learn how to setup automatic tabular data validation using goodtables, so your data is validated every time it’s updated. Although not strictly necessary, it’s useful to "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[e._v("know about Data Packages and Table Schema")]),e._v(" before proceeding, as they allow you to describe your data in more detail, allowing more advanced validations.")],1),e._v(" "),o("p",[e._v("We will show how to set up automated tabular data validations for data published on:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v(", an open source platform for publishing data in the open, that makes it easy to discover, use and share data;")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),o("OutboundLink")],1),e._v(", a web platform for collaborating on projects as well as publishing, sharing and storing resources, such as data files;")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://aws.amazon.com/s3/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Amazon S3"),o("OutboundLink")],1),e._v(", a data storage service by Amazon.")])]),e._v(" "),o("p",[e._v("Even if you don’t use any of these platforms, you can still setup the validation using "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables-py"),o("OutboundLink")],1),e._v(", it will just require some technical knowledge")]),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-ckan"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-ckan"}},[e._v("#")]),e._v(" Validate tabular data automatically on CKAN")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v(" is an open source platform for publishing data online. It is widely used across the planet, including by the federal governments of the USA, United Kingdom, Brazil, and others.")]),e._v(" "),o("p",[e._v("To automatically validate tabular data on CKAN, enable the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension, which uses goodtables to run continuous checks on your data. The "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension:")]),e._v(" "),o("ul",[o("li",[e._v("Adds a badge next to each dataset showing the status of their validation (valid or invalid), and")]),e._v(" "),o("li",[e._v("allows users to access the validation report, making it possible for errors to be identified and fixed.")])]),e._v(" "),o("p",[o("img",{attrs:{src:t(486),alt:"annotated in red, automated validation checks on datasets in CKAN"}}),o("br"),e._v(" "),o("em",[e._v("Figure 8: annotated in red, automated validation checks on datasets in CKAN.")])]),e._v(" "),o("p",[e._v("The installation and usage instructions for "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension are available on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-github"}},[e._v("#")]),e._v(" Validate tabular data automatically on GitHub")]),e._v(" "),o("p",[e._v("If your data is hosted on GitHub, you can use "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://goodtables.io"),o("OutboundLink")],1),e._v(" to automatically validate it on every change.")]),e._v(" "),o("p",[e._v("For this section, you will first need to create a "),o("a",{attrs:{href:"https://help.github.com/articles/create-a-repo/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repository"),o("OutboundLink")],1),e._v(" and add tabular data to it.")]),e._v(" "),o("p",[e._v("Once you have tabular data in your Github repository:")]),e._v(" "),o("ol",[o("li",[e._v("Login on "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" using your GitHub account and accept the permissions confirmation.")]),e._v(" "),o("li",[e._v("Once we’ve synchronized your repository list, go to the "),o("a",{attrs:{href:"https://goodtables.io/settings",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage Sources"),o("OutboundLink")],1),e._v(" page and enable the repository with the data you want to validate.\n"),o("ul",[o("li",[e._v("If you can’t find the repository, try clicking on the Refresh button on the Manage Sources page")])])])]),e._v(" "),o("p",[e._v("Goodtables will then validate all tabular data files (CSV, XLS, XLSX, ODS) and "),o("RouterLink",{attrs:{to:"/data-package/"}},[e._v("data packages")]),e._v(" in the repository. These validations will be executed on every change, including pull requests.")],1),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-amazon-s3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-amazon-s3"}},[e._v("#")]),e._v(" Validate tabular data automatically on Amazon S3")]),e._v(" "),o("p",[e._v("If your data is hosted on Amazon S3, you can use "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://goodtables.io"),o("OutboundLink")],1),e._v(" to automatically validate it on every change.")]),e._v(" "),o("p",[e._v("It is a technical process to set up, as you need to know how to configure your Amazon S3 bucket. However, once it’s configured, the validations happen automatically on any tabular data created or updated. Find the detailed instructions "),o("a",{attrs:{href:"https://docs.goodtables.io/getting_started/s3.html",title:"Validating data on Amazon S3",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"custom-setup-of-automatic-tabular-data-validation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#custom-setup-of-automatic-tabular-data-validation"}},[e._v("#")]),e._v(" Custom setup of automatic tabular data validation")]),e._v(" "),o("p",[e._v("If you don’t use any of the oficially supported data publishing platforms, you can use "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables-py"),o("OutboundLink")],1),e._v(" directly to validate your data. This is the most flexible option, as you can configure exactly when, and how your tabular data is validated. For example, if your data come from an external source, you could validate it once before you process it (so you catch errors in the source data), and once after cleaning, just before you publish it, so you catch errors introduced by your data processing.")]),e._v(" "),o("p",[e._v("The instructions on how to do this are technical, and can be found on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables-py"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"publish-packaged-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data"}},[e._v("#")]),e._v(" Publish packaged data")]),e._v(" "),o("p",[e._v("Creating and Sharing Data Packages is important for both data publishers and data users because it provides a common and open specification to describe your dataset’s metadata. This facilitates data reuse, as users don’t need to understand each data publisher’s specific metadata format, and as the specification is machine-readable, it also allows tools to parse the metadata. This enables software to:")]),e._v(" "),o("ul",[o("li",[e._v("Import the data packages into different tools and languages, like Python and R")]),e._v(" "),o("li",[e._v("Validate the data contents according to the schema described in the data package")]),e._v(" "),o("li",[e._v("Convert the data package into other formats, for example loading it into a SQL database for further analysis")])]),e._v(" "),o("p",[e._v("Although these reasons are not unique to publishing data as data packages, here’s why we think data publishers should consider publishing in this format:")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Archiving data collections using data packages ensure data publishers can update data more efficiently at any time. The associated schema is a guide on existing data fields and acceptable data types for individual tabular data resources and can be easily built upon.")])]),e._v(" "),o("li",[o("p",[e._v("Sharing data with descriptive metadata and its associated schema provides context for your data no matter where it is used, and significantly cuts down on time spent researching data provenance before using acquired data.")])]),e._v(" "),o("li",[o("p",[e._v("Data Packages allow for accountability and enrich the feedback process as data publishers can add metadata with contact information for users to reach out to them and licensing to spell out accepted use of published data.")])])]),e._v(" "),o("p",[e._v("If don’t need your own data portal, there are many platforms where you can publish your data (if you need your own, check "),o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v("). In the section below, we dive into a few options. Read along and decide what option is most suitable:")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-in-our-community-ckan-instance"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-in-our-community-ckan-instance"}},[e._v("#")]),e._v(" Publish packaged data in our community CKAN instance")]),e._v(" "),o("p",[e._v("CKAN is an open source platform for publishing data that makes it easy to discover, use and share data. "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is a public instance of CKAN that allows anyone to publish their data.")]),e._v(" "),o("p",[e._v("Here’s why you should consider creating an organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" and publishing datasets therein:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is free for all to use! The file upload size limit on the platform is currently 100mb.")]),e._v(" "),o("li",[e._v("The decision on whether to publicly or privately publish datasets rests with data publishers.")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" organizations allow for multiple users to collaborate with varied privileges:")]),e._v(" "),o("li",[o("strong",[e._v("Admin")]),e._v(": Can add/edit and delete datasets, as well as manage organization members.")]),e._v(" "),o("li",[o("strong",[e._v("Editor")]),e._v(": Can add and edit datasets, but not manage organization members.")]),e._v(" "),o("li",[o("strong",[e._v("Member")]),e._v(": Can view the organization’s private datasets, but not add new datasets.")])]),e._v(" "),o("p",[e._v("To publish data on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Request for a new Organization to be created on the platform for you via "),o("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community page"),o("OutboundLink")],1),e._v("."),o("br"),e._v("\nThis is required only to ensure spammers don’t take up space and hog resources on the platform.")]),e._v(" "),o("p",[e._v("The request format is simple and requires:")]),e._v(" "),o("ul",[o("li",[o("p",[o("strong",[e._v("Title")]),e._v(": This will be the name of your Organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" i.e."),o("br"),o("br"),e._v(" "),o("em",[e._v("My New Organization")])])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("Slug")]),e._v(": This is an acronym, word or hyphenated phrase that will be added to the end of the "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" url to uniquely identify your Organization and associate your data collections with it i.e."),o("br"),o("br"),e._v(" "),o("em",[e._v("my-new-organization")])])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("Username")]),e._v(": The username you provide is associated with an email address on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" and allows us to give you admin access to your Organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(".")])])])]),e._v(" "),o("li",[o("p",[e._v("Log In and add new datasets")])])]),e._v(" "),o("p",[e._v("Adding datasets on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is no different from using any other CKAN platform, but "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a good guide by Dan Fowler"),o("OutboundLink")],1),e._v(" for first timers.")]),e._v(" "),o("p",[e._v("3.Publish and share public datasets widely.")]),e._v(" "),o("p",[e._v("On "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(", you can either publish datasets privately, meaning only members of your organization have access to them, or publicly, as open data. "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Find out more"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-on-datahub-io"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-datahub-io"}},[e._v("#")]),e._v(" Publish packaged data on "),o("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(" is a platform for finding, sharing and publishing high quality data online.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" share the same name for historical reasons. "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datahub.ckan.io"),o("OutboundLink")],1),e._v(" used to be the DataHub, but was moved to its current address, and the current DataHub uses new software developed from scratch.")]),e._v(" "),o("ol",[o("li",[e._v("Set up a data publisher / user account on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Join the "),o("a",{attrs:{href:"https://gitter.im/datahubio/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.io community group"),o("OutboundLink")],1),e._v(", introduce yourself and request for an account.")]),e._v(" "),o("ol",{attrs:{start:"2"}},[o("li",[e._v("Publish Datasets on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)])]),e._v(" "),o("p",[o("a",{attrs:{href:"http://datahub.io/docs/getting-started/publishing-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("This post"),o("OutboundLink")],1),e._v(" provides helpful information on publishing datasets on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-github"}},[e._v("#")]),e._v(" Publish packaged data on GitHub")]),e._v(" "),o("p",[e._v("GitHub is the largest repository of source code, with "),o("a",{attrs:{href:"https://github.com/blog/2345-celebrating-nine-years-of-github-with-an-anniversary-sale",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 20 million"),o("br"),e._v("\nusers"),o("OutboundLink")],1),e._v(". Although the focus is on hosting source code, any type of file can be hosted. Documents, thesis, images, shapefiles, you can even host an entire static website with "),o("a",{attrs:{href:"https://pages.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Pages"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("By using GitHub, you get all the advantages of using a version control system as Git, where every modification to your files is tracked. You also get an issue ticketing system, wiki pages, milestones tracking, and other useful"),o("br"),e._v("\ncollaboration tools.")]),e._v(" "),o("p",[e._v("** What types of datasets can be hosted on GitHub?**")]),e._v(" "),o("p",[e._v("Although GitHub offers many useful functionalities, not all datasets are a good fit for it. The main limitations are:")]),e._v(" "),o("ul",[o("li",[e._v("Individual files have less than 100 MB")]),e._v(" "),o("li",[e._v("Entire repository have less than 1 GB\n"),o("ul",[o("li",[e._v("The repository size includes not only the current files, but all of their previous versions.")])])])]),e._v(" "),o("p",[e._v("You can store larger files using "),o("a",{attrs:{href:"https://git-lfs.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("git-lfs"),o("OutboundLink")],1),e._v(", but we won’t go in details about it in this section.")]),e._v(" "),o("p",[e._v("It’s also useful if your data files use text-based file formats like CSV or GeoJSON, as then git is able to show you exactly what changed between two versions of the files. However, even if you use binary file formats like XLS, GitHub is still useful.")]),e._v(" "),o("p",[e._v("** Step 1. Organise your dataset folder structure **")]),e._v(" "),o("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),o("li",[o("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),o("p",[e._v("Even though we’ll see an example that has all of these different types of files, this isn’t always the case. For example, datasets that were manually collected might not have any scripts.")]),e._v(" "),o("p",[e._v("Consider this folder structure:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v("data/\n schools.csv\n cities.csv\ndocs/\n screenshot.png\nscripts/\n clean_data.py\nMakefile\ndatapackage.json\nREADME.md\n")])])]),o("ul",[o("li",[o("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there are two: "),o("code",[e._v("data/schools.csv")]),e._v(" and "),o("code",[e._v("data/cities.csv")]),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("docs/")]),e._v(": Images, sample analysis, and other documentation files regarding the dataset. The main documentation is in "),o("code",[e._v("README.md")]),e._v(", but in this folder you can add any images used in the README, and other writings about the dataset.")]),e._v(" "),o("li",[o("strong",[e._v("scripts/")]),e._v(": All scripts are contained in this folder. There could be scripts to scrape the data, join different files, clean them, etc. Depending on the programming language you use, you might also add requirements files like "),o("code",[e._v("requirements.txt")]),e._v(" for Python, or "),o("code",[e._v("package.json")]),e._v(" for NodeJS.")]),e._v(" "),o("li",[o("strong",[e._v("Makefile")]),e._v(": The scripts are only part of the puzzle, we also need to know how to run them. In which order they should be executed, which one should I run to update the data, and so on. You could document this information textually in the "),o("code",[e._v("README.md")]),e._v(" file, but the "),o("code",[e._v("Makefile")]),e._v(" allows you to have executable documentation. You can think of it as a script to run the scripts. If you have never written a Makefile, read "),o("a",{attrs:{href:"https://bost.ocks.org/mike/make/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Use Make"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files. See "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[e._v("how to create a data package")]),e._v(" on instructions on writing this file.")],1),e._v(" "),o("li",[o("strong",[o("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),o("OutboundLink")],1)]),e._v(": This is where the dataset is described for humans. We recommend the following sections:\n"),o("ul",[o("li",[o("strong",[e._v("Introduction")]),e._v(": A short description of the dataset, what it contains, the time or geographical area it covers")]),e._v(" "),o("li",[o("strong",[e._v("Data")]),e._v(": What the data structure? Does it use any codes? How do you define missing values (e.g. ‘N/A’ or ‘-1’)")]),e._v(" "),o("li",[o("strong",[e._v("Preparation")]),e._v(": How was the data collected? How do I update the data? Was it modified in any way? If you have a "),o("code",[e._v("Makefile")]),e._v(", this section will mostly document how to run it. Otherwise you can describe how to run the scripts, or how to collect the data manually.")]),e._v(" "),o("li",[o("strong",[e._v("License")]),e._v(": There are two issues here: the license of the data itself, and the license of the package you are creating (including any scripts). Our recommendation is to license the package you created as "),o("a",{attrs:{href:"https://creativecommons.org/publicdomain/zero/1.0/",title:"Creative Commons Public Domain Dedication",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC0"),o("OutboundLink")],1),e._v(", and add any relevant information or disclaimers regarding the source data’s license.")])])])]),e._v(" "),o("p",[e._v("To summarize, these are the folders, files, and their respective contents in this structure:")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Path")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Contents")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[e._v("data/")]),e._v(" "),o("td",[e._v("Data")]),e._v(" "),o("td",[e._v("Dataset’s data files.")])]),e._v(" "),o("tr",[o("td",[e._v("docs/")]),e._v(" "),o("td",[e._v("Documentation")]),e._v(" "),o("td",[e._v("Images, analysis, and other documentation files.")])]),e._v(" "),o("tr",[o("td",[e._v("scripts/")]),e._v(" "),o("td",[e._v("Scripts")]),e._v(" "),o("td",[e._v("Scripts used for creating, modifying, or analysing the dataset.")])]),e._v(" "),o("tr",[o("td",[e._v("Makefile")]),e._v(" "),o("td",[e._v("Scripts")]),e._v(" "),o("td",[e._v("Executable documentation on how to run the scripts.")])]),e._v(" "),o("tr",[o("td",[e._v("datapackage.json")]),e._v(" "),o("td",[e._v("Metadata")]),e._v(" "),o("td",[e._v("Data Package descriptor file.")])]),e._v(" "),o("tr",[o("td",[o("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),o("OutboundLink")],1)]),e._v(" "),o("td",[e._v("Documentation")]),e._v(" "),o("td",[e._v("Textual description of the dataset with description, preparation steps, license, etc.")])])])]),e._v(" "),o("p",[e._v("** Step 2. Upload the dataset to GitHub **")]),e._v(" "),o("ol",[o("li",[e._v("Login (or create) a new account on GitHub")]),e._v(" "),o("li",[e._v("Create "),o("a",{attrs:{href:"https://github.com/new",title:"GitHub New Repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("a new repository"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Write a short description about the dataset")])])]),e._v(" "),o("li",[e._v("On your repository page, click on the “Upload files” link")]),e._v(" "),o("li",[e._v("Upload the files you created in the previous step\n"),o("ul",[o("li",[e._v("If your have files larger than 25 MB, you’ll need to either "),o("a",{attrs:{href:"https://help.github.com/articles/adding-a-file-to-a-repository-using-the-command-line/",title:"Adding a file to a repository using the command line",target:"_blank",rel:"noopener noreferrer"}},[e._v("upload using the command line"),o("OutboundLink")],1),e._v(", or the "),o("a",{attrs:{href:"https://desktop.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Desktop client"),o("OutboundLink")],1),e._v(".")])])])]),e._v(" "),o("p",[e._v("** (Optional) Step 3. Enable automatic tabular data validation **")]),e._v(" "),o("p",[e._v("You can automatically validate your tabular data files using "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(". This will take only a few minutes, and will ensure you’ll always know when there are errors with your dataset, maintaining its quality. "),o("a",{attrs:{href:"/blog/2018/03/12/automatically-validated-tabular-data"}},[e._v("Read the walkthrough here")]),e._v(".")]),e._v(" "),o("p",[e._v("The sample datasets used in this example, that is, List of schools in Birmingham, UK are available "),o("a",{attrs:{href:"https://github.com/vitorbaptista/birmingham_schools",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"share-packaged-data-effectively"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#share-packaged-data-effectively"}},[e._v("#")]),e._v(" Share packaged data effectively")]),e._v(" "),o("p",[e._v("Publishing packaged data is not enough. To avoid hiding useful information in open archives online, it is necessary to engage communities that could be interested in your data. Community engagement should not be viewed as a one-off assignment, but rather, as a continuous effort to increase the impact of your data publishing work.")]),e._v(" "),o("p",[e._v("Some best practices:")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Publish quickly, update often."),o("br"),e._v("\nThe true value of published data lies in its use and reuse by open data communities. Publish data as soon as possible and update it regularly so users have access to the latest information.")])]),e._v(" "),o("li",[o("p",[e._v("Set up feedback loops."),o("br"),e._v("\nYour data publishing platform should aim to get community “buy in”, by encouraging participatory processes. Feedback loops are important because:")])])]),e._v(" "),o("ul",[o("li",[e._v("they allow data users to ask for clarifications and request for additional information about specific datasets, if need be.")]),e._v(" "),o("li",[e._v("they allow data publishers to understand what communities need and publish data driven by user demand, increasing the chance it’ll be used")]),e._v(" "),o("li",[e._v("they provide an avenue for data publishers to learn how their data is used, so they can gauge its impact.")])]),e._v(" "),o("p",[e._v("Examples of feedback loops that data publishers can set up include:")]),e._v(" "),o("ul",[o("li",[e._v("Adding a comments section in a data platform. Needless to say, the comments section should be monitored closely to ensure that responses are sent in time, and that discussions remain respectful and on topic.")]),e._v(" "),o("li",[e._v("A dedicated social platform channel, such as a Google Group or Facebook group, with a prominently placed link from the data platform for sharing updates, collating and responding to feedback.")]),e._v(" "),o("li",[e._v("An e-mail address where users can contact the people responsible for the datasets for clarifications, suggestions, or to report errors.")])]),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[e._v("Meet open data communities in the places they already meet")])]),e._v(" "),o("p",[e._v("Communities thrive when there’s continued discourse over similar interests."),o("br"),e._v("\nData publishers should be active in existing networks, as supporters and collaborators in community data initiatives. Some of the ways this can be done, leveraging on Open Knowledge communities and others, include:")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Kickstarting and joining discussions in online forums")])]),e._v(" "),o("li",[o("p",[e._v("Blogs"),o("br"),e._v("\nAs a data publisher, running a data blog is a great way to create awareness about the data you publish, and an avenue to highlight how data users are drawing insight from it. This encourages use and reuse of your data. If you don’t run a data blog, there are plenty of open data blogs that welcome external contributions i.e. "),o("a",{attrs:{href:"https://blog.okfn.org/submit/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s how"),o("OutboundLink")],1),e._v(" you can contribute guest posts on "),o("a",{attrs:{href:"http://blog.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog.okfn.org"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("Open Knowledge Discuss"),o("br"),e._v("\nThe Open Knowledge discussion platform is a great place to invoke and contribute to conversation on specific subjects. "),o("a",{attrs:{href:"https://discuss.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dive in"),o("OutboundLink")],1),e._v("!")])]),e._v(" "),o("li",[o("p",[e._v("Gitter"),o("br"),e._v("\nGitter is a chat platform that’s well suited for more technical discussions around open data. If you are looking to engage technical data users, consider joining our "),o("a",{attrs:{href:"https://gitter.im/okfn/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation channel"),o("OutboundLink")],1),e._v(" or the "),o("a",{attrs:{href:"https://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data project channel"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("In-person meetups"),o("br"),e._v("\nOrganizing and participating in meetups, hackathons and domain-specific conferences is a good way to engage with communities.")])]),e._v(" "),o("li",[o("p",[e._v("Community calls, webinars and podcasts")])])]),e._v(" "),o("p",[e._v("Finally, to maintain an active community of data users as a data publisher:")]),e._v(" "),o("ul",[o("li",[e._v("Keep your datasets updated and highlight changes that might be of interest to the community. For example, if the changes are relevant to a specific data request, reach out and let the user know.")]),e._v(" "),o("li",[e._v("Have a human representative play an active role in community activities. Bots can be fun and efficient, but they are limited and can get in the way of meaningful interactions.")]),e._v(" "),o("li",[e._v("Be flexible and transparent. Listen to your community needs and respond appropriately and in timely fashion i.e. consider publishing datasets that are in high demand first, or more regularly. Archive, rather than delete datasets, but if one must be deleted, issue a forewarning and explain why.")]),e._v(" "),o("li",[e._v("Set up a sharing system to regularly showcase notable data use cases by the the community i.e. fortnightly to inspire other community members.")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{475:function(e,a,t){e.exports=t.p+"assets/img/figure-1.0b5d5da2.png"},476:function(e,a,t){e.exports=t.p+"assets/img/figure-2.a4cda338.png"},477:function(e,a,t){e.exports=t.p+"assets/img/figure-3.e234c78e.png"},478:function(e,a){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWVBJaIBQpoTdRepVeIwhIFWyEJJBQYkgIKnZ0UcG1oGLBiq6KKLgWQBYVsWBhEez9YUFFWRcLNlTeJAF09Xvvfe9839z758yZM+ecO3dyBwC1GI5YnI2qA5AjypPEhgWyJiSnsEgPAQqIgAq8gDuHKxUHxMREAihD93/Ku+sAkd+v2Mt9/dz/X0WDx5dyAUBiIKfxpNwcyIcBwN24YkkeAIQeqDebnieGTIRRAi0JDBCyuZwzlOwh5zQlRyps4mODIKcCQKZxOJIMAFTlcbHyuRnQj+oyyA4inlAEuRGyL1fA4UH+DHlkTs40yGrWkK3TvvOT8Q+facM+OZyMYVbmohBysFAqzubM/D/L8b8lJ1s2NIcZbDSBJDxWnrO8blnTIuRMg3xOlBYVDVkT8lUhT2Ev5ycCWXjCoP0HrjQI1gwwAUBpPE5wBGQDyKai7KjIQb1vujCUDRnWHo0X5rHjlWNRnmRa7KB/dAZfGhI3xByJYi65TbEsKyFg0OcWAZ895LOhQBCfpIwTbc8XJkZBVoV8V5oVFzFo87xAEBQ1ZCORxcpjhs8cA+mS0FilDWaeIx3KC/MSCNlRgxyZJ4gPV47FpnA5ith0IWfypRMih+Lk8YNDlHlhhXxRwmD8WKk4LzB20H6nODtm0B5r5GeHyfWmkNuk+XFDY3vz4GJT5osDcV5MvDI2XCuTMzZGGQNuCyJBEAgGLCCDLQ1MA5lA2NZT1wN/KXtCAQdIQAbgA/tBzdCIJEWPCF7jQAH4CxIfSIfHBSp6+SAf6r8Ma5VXe5Cu6M1XjMgCTyDngAiQDX/LFKNEw7MlgsdQI/xpdi6MNRs2ed9POpbakI4YQgwmhhNDiTa4Pu6Le+OR8OoPmxPugXsOxfXNnvCE0EF4SLhG6CTcmioslPwQOQuMA50wxtDB7NK+zw63hF5d8UDcB/qHvnEmrg/scRc4UwDuB+d2hdrvY5UNZ/ytloO+KA4UlKJD8adY/xiBqq2q67AXeaW+r4UyrrThagUN9/yYR9B39ePBe8SPltgS7BDWgp3EzmONWB1gYSeweqwVOybn4bXxWLE2hmaLVcSTBf0If5qPMzinvGpShyqHbofPg30gjz8jT/6yBE0Tz5QIMwR5rAC4W/NZbBF31EiWk4Mj3EXle79ya3nDVOzpCPPCN11uEwCexVCZ8U3HgXvQ0ScAMN5905m9hst+JQDH2rkySb5Sh8svBPiPogbfFD1gBPcua5iRE3AD3sAfhICxIBrEg2QwBdZZANepBEwHs8ECUARKwEqwFmwEW8EOsAfsBwdBHWgEJ8FZcBG0g2vgDlwrXeAF6AXvQD+CICSEjjAQPcQYsUDsECfEA/FFQpBIJBZJRlKRDESEyJDZyEKkBClFNiLbkUrkd+QochI5j3Qgt5AHSDfyGvmEYigN1UINUUt0NOqBBqARaDw6Gc1Ac9ECdBG6HF2PVqD70Fr0JHoRvYZ2oi/QPgxgKhgTM8HsMQ8sCIvGUrB0TILNxYqxMqwCq8Ya4JO+gnViPdhHnIgzcBZuD9drOJ6Ac/FcfC6+DN+I78Fr8dP4FfwB3ot/JdAJBgQ7gheBTZhAyCBMJxQRygi7CEcIZ+C700V4RyQSmUQrojt895KJmcRZxGXEzcQaYhOxg/iI2EcikfRIdiQfUjSJQ8ojFZE2kPaRTpAuk7pIH8gqZGOyEzmUnEIWkQvJZeS95OPky+Sn5H6KOsWC4kWJpvAoMykrKDspDZRLlC5KP1WDakX1ocZTM6kLqOup1dQz1LvUNyoqKqYqnirjVYQq81XWqxxQOafyQOUjTZNmSwuiTaLJaMtpu2lNtFu0N3Q63ZLuT0+h59GX0yvpp+j36R9UGaqjVNmqPNV5quWqtaqXVV+qUdQs1ALUpqgVqJWpHVK7pNajTlG3VA9S56jPVS9XP6p+Q71Pg6HhqBGtkaOxTGOvxnmNZ5okTUvNEE2e5iLNHZqnNB8xMIYZI4jBZSxk7GScYXRpEbWstNhamVolWvu12rR6tTW1XbQTtWdol2sf0+5kYkxLJpuZzVzBPMi8zvykY6gToMPXWapTrXNZ573uCF1/Xb5usW6N7jXdT3osvRC9LL1VenV69/RxfVv98frT9bfon9HvGaE1wnsEd0TxiIMjbhugBrYGsQazDHYYtBr0GRoZhhmKDTcYnjLsMWIa+RtlGq0xOm7Ubcww9jUWGq8xPmH8nKXNCmBls9azTrN6TQxMwk1kJttN2kz6Ta1ME0wLTWtM75lRzTzM0s3WmDWb9Zobm48zn21eZX7bgmLhYSGwWGfRYvHe0soyyXKxZZ3lMytdK7ZVgVWV1V1rurWfda51hfVVG6KNh02WzWabdlvU1tVWYFtue8kOtXOzE9pttusYSRjpOVI0smLkDXuafYB9vn2V/YNRzFGRowpH1Y16Odp8dMroVaNbRn91cHXIdtjpcMdR03GsY6Fjg+NrJ1snrlO501VnunOo8zzneudXLnYufJctLjddGa7jXBe7Nrt+cXN3k7hVu3W7m7unum9yv+Gh5RHjsczjnCfBM9Bznmej50cvN688r4Nef3vbe2d57/V+NsZqDH/MzjGPfEx9OD7bfTp9Wb6pvtt8O/1M/Dh+FX4P/c38ef67/J8G2ARkBuwLeBnoECgJPBL4PsgraE5QUzAWHBZcHNwWohmSELIx5H6oaWhGaFVob5hr2KywpnBCeET4qvAbbEM2l13J7h3rPnbO2NMRtIi4iI0RDyNtIyWRDePQcWPHrR53N8oiShRVFw2i2dGro+/FWMXkxvwxnjg+Znz5+CexjrGzY1viGHFT4/bGvYsPjF8RfyfBOkGW0JyoljgpsTLxfVJwUmlS54TRE+ZMuJisnyxMrk8hpSSm7Erpmxgyce3Erkmuk4omXZ9sNXnG5PNT9KdkTzk2VW0qZ+qhVEJqUure1M+caE4Fpy+NnbYprZcbxF3HfcHz563hdfN9+KX8p+k+6aXpzzJ8MlZndAv8BGWCHmGQcKPwVWZ45tbM91nRWbuzBrKTsmtyyDmpOUdFmqIs0elpRtNmTOsQ24mLxJ25Xrlrc3slEZJdUkQ6WVqfpwU/sltl1rJfZA/yffPL8z9MT5x+aIbGDNGM1pm2M5fOfFoQWvDbLHwWd1bzbJPZC2Y/mBMwZ/tcZG7a3OZ5ZvMWzeuaHzZ/zwLqgqwFfxY6FJYWvl2YtLBhkeGi+Yse/RL2S1WRapGk6MZi78Vbl+BLhEvaljov3bD0azGv+EKJQ0lZyedl3GUXfnX8df2vA8vTl7etcFuxZSVxpWjl9VV+q/aUapQWlD5aPW517RrWmuI1b9dOXXu+zKVs6zrqOtm6zvWR6+s3mG9YueHzRsHGa+WB5TWbDDYt3fR+M2/z5S3+W6q3Gm4t2fppm3Dbze1h22srLCvKdhB35O94sjNxZ8tvHr9V7tLfVbLry27R7s49sXtOV7pXVu412LuiCq2SVXXvm7SvfX/w/vpq++rtNcyakgPggOzA899Tf79+MOJg8yGPQ9WHLQ5vOsI4UlyL1M6s7a0T1HXWJ9d3HB17tLnBu+HIH6P+2N1o0lh+TPvYiuPU44uOD5woONHXJG7qOZlx8lHz1OY7pyacunp6/Om2MxFnzp0NPXuqJaDlxDmfc43nvc4fveBxoe6i28XaVtfWI3+6/nmkza2t9pL7pfp2z/aGjjEdxy/7XT55JfjK2avsqxevRV3ruJ5w/eaNSTc6b/JuPruVfevV7fzb/Xfm3yXcLb6nfq/svsH9in/Z/Kum063z2IPgB60P4x7eecR99OKx9PHnrkVP6E/Knho/rXzm9KyxO7S7/fnE510vxC/6e4r+0vhr00vrl4f/9v+7tXdCb9cryauB18ve6L3Z/dblbXNfTN/9dznv+t8Xf9D7sOejx8eWT0mfnvZP/0z6vP6LzZeGrxFf7w7kDAyIORKO4lMAgw1NTwfg9W4A6Mnw26EdAOpE5dlMIYjyPKkg8J9YeX5TiBsAu/0BSJgPQCT8RtkCmwVkGrzLP8Hj/QHq7DzcBkWa7uyk9EWDJxbCh4GBN4YAkBoA+CIZGOjfPDDwZScM9hYATbnKM6Fc5GfQbTZyamslaIEf5N/H6HBu2pz2HQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAgJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjgwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjgwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ch8/WucAAAUSSURBVGgF7VhJKH1/FD/PHCKZNsgUNobMZEiZpywMG7KUjZIVGf5lSNmxk7VSFsqwQBGZFUkiY1LKsCDz+PO5dV/v3Xu/930v7/1//cqp17vf8z3nfM+594xf3fPz8yf9w2D1D+suqP5rwN/+gr9f4G9/ARtLKHBzc0NbW1tGopOSksjGxvzHmV/il9pzc3M0NDRkZICTkxNFR0cb4cyxsEgMrK6uynRbWFiQ4cyBMLsBl5eXdHJyItNtY2ODHh8fZfifIjQbsLe3R+/v78xz19bW6PNTXtxfXl4IeyxA3Kjts/g0xcDIyAgNDw+Tp6cn5efnU3p6OtnZ2ell39/f0+Lion4tfZiZmaHY2FhydHTUb93e3tLY2BhNT08TjKyoqKCioiL9vqkHHW8vJCpvKNDFxYVyc3MpNDRUCNylpSVBCUMa6bO9vT0hI6WmptLm5iZNTk7Slw5GZOXl5VRcXGyEYy24DFhZWaG+vj6WDIvgW1tbKSQkxKRsrhgICwszchWTUn9IABcNCgriksJlgKurK2VmZnIJNAdRQUEBWVtbc4niMgCSCgsLCf5racDLSktL4z6G2wAEbHZ2Nrfg7xLm5ORocldNaTQiIoJGR0dN6gYfDgwMFH4gPjo6ooODA7q+vjbJi3jTApoMmJ+fV5Xt4OBAtbW1FBMTI6P7+PgQUibqyNPTk2xfRKCP4sk+Ij23C6FILS8vi3yyfxSnpqYmReVBbGVlJdQM0BgWP6kg1JKHhwcpmrm2bmlp+Y+5+7UBYWjEBgcHCX0OC2pqaig8PJy1rce7ubkRvpS03RYJ0KZsb28LxQ20hlVbpDH8Vyxkb29vQpWE4qiWr6+vhjyyZz8/P+rq6pLhWQi4U0NDg+oLAa9Op6OAgACKi4sTMhMylBQUYwD9TH9/v5SWucYBWgDuFB8fT+Pj46psaAqRAPBjpVfuGFA7ycfHR21bcc/b21sRrxVpFgPgElrhOzxKZ5jFgNPTUyXZqrjz83PVfd5NRQMiIyOFvhzFCIFkCpD6tLxR0K6vr5sSS7a2tkIA19fXU3JysiK9YhYypLy6uhImJWQkpVFRpK2urqasrCxxqfo/OztLAwMDTBp0ohkZGUKgfyuNKkm+u7ujuro65sCC3N7W1ka+vr5K7Hrc4eEhdXd3M+djFLne3l5ydnbW86g9KLqQEgMEJiYmKm0JOLQH7e3twmioNBOjQCFtdnZ2MpWHIExrvMqD3qQLgUiE3d1d6ujoEJfMfy8vLwoODiZ/f39hwD8+Pqb9/X2uZq65uZm0NHSKhYylGQzggYuLC8JPbcBnyUGLocUAbhfCjQEGcEsDzsBNBS9wG4ArES2CeRWQ0iGWTLUYhjxcBiAAJyYmDPks+jw1NUW46OIBLgN4A5DnQB4auCtvvJmcB3Cgh4eHMJDs7OwYnY/cn5eXR2VlZULFRnugdu0IZuR5XGpVVVURGrqzszPZxVZpaSn3LYimNCrezkEJVF1cf2DYFwHFrqenh1CslAC9fWNjo9GQgrc9+1WZ4feYmaF8SUmJErsiTpMBkIBbOqQ5peEC+1CG1SZUVlYKYyXopIAvB1fVkkIhgysGDA9LSEhgKg86DCpowqSAplBt8MFFllblcYZmA6SKSddovqKioqRo4YrF3d1dhv8pwuwGQKGUlBSZXvgylgDNMcCjBC4FpG0EZgxW3PDIZNFYxADWYZbAW8SFLKEoS+avAaw383/h/wBEme+Is1WR0gAAAABJRU5ErkJggg=="},479:function(e,a,t){e.exports=t.p+"assets/img/figure-4.65dd4176.png"},480:function(e,a,t){e.exports=t.p+"assets/img/figure-5.a7c23193.png"},481:function(e,a,t){e.exports=t.p+"assets/img/figure-6.5520e95a.png"},482:function(e,a,t){e.exports=t.p+"assets/img/figure-7.866156c7.png"},483:function(e,a,t){e.exports=t.p+"assets/img/figure-8.3afbab68.png"},609:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,o=e._self._c||a;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h2",{attrs:{id:"include-a-data-schema"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#include-a-data-schema"}},[e._v("#")]),e._v(" Include a data schema")]),e._v(" "),o("p",[e._v("Simply put, a schema is a blueprint that tells us how your data is structured, and what type of content is to be expected in it. You can think of it as a data dictionary. Having a table schema at hand makes it possible to run more precise validation checks on your data, both at a structural and content level.")]),e._v(" "),o("p",[e._v("For this section, we will use the "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"http://datahub.io/core/gdp",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gross Domestic Product dataset for all countries (1960 - 2014)"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("Data Package")]),e._v(" is a format that makes it possible to put your data collection and relevant information that provides context about your data in one container before you share it. All contextual information, such as metadata and your data schema, is published in a JSON file named "),o("em",[e._v("datapackage.json")]),e._v(".")]),e._v(" "),o("p",[o("strong",[e._v("Data Package Creator")]),e._v(" is an online service that facilitates the creation and editing of data packages. The service automatically generates a "),o("em",[e._v("datapackage.json")]),e._v(" file for you as you add and edit data that is part of your data collection. We refer to each piece of data in a data collection as a "),o("strong",[e._v("data resource")]),e._v(".")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" loads with dummy data to make it easy to understand how metadata and sample resources help generate the "),o("em",[e._v("datapackage.json")]),e._v(" file. There are three ways in which a user can add data resources on "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("ol",[o("li",[e._v("Provide a hyperlink to your data resource (highly recommended).")])]),e._v(" "),o("p",[e._v("If your data resource is publicly available, like on GitHub or in a data repository, simply obtain the URL and paste it in the "),o("strong",[e._v("Path")]),e._v(" section. To learn how to publish your data resource online, check the publish your dataset section.")]),e._v(" "),o("ol",{attrs:{start:"2"}},[o("li",[e._v("Create your data resource within the service.")])]),e._v(" "),o("p",[e._v("If your data resource isn’t published online, you’ll have to define its fields from scratch. Depending on how complex is your data, this can be time consuming, but it’s still easier than creating the descriptor JSON file from scratch.This option is time consuming, as a user has to manually create each field of a data resource. However, this is simpler than learning how to create a JSON file from scratch.")]),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[o("strong",[e._v("Load a Data Package")]),e._v(" option")])]),e._v(" "),o("p",[e._v("With this option, you can load a pre-existing "),o("em",[e._v("datapackage.json")]),e._v(" file to view and edit its metadata and resource fields.")]),e._v(" "),o("p",[e._v("Our "),o("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/blob/master/gross-domestic-product-all/data/gdp.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("Gross Domestic Product dataset for all countries (1960 - 2014)"),o("OutboundLink")],1),e._v(" dataset is publicly available on GitHub.")]),e._v(" "),o("p",[e._v("Obtain a link to the raw CSV file by clicking on the Raw button at the top right corner of the GitHub file preview page, as shown in figure 1 below. The resulting hyperlink looks like "),o("a",{attrs:{href:"https://raw.githubusercontent.com/datasets/continent-codes/master/data/continent-codes.csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://raw.githubusercontent.com/datasets/continent-codes/master/data/continent-codes.csv"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("img",{attrs:{src:t(475),alt:"Above, raw button highlighted in red"}}),o("br"),e._v(" "),o("em",[e._v("Figure 1: Above, raw button highlighted in red.")])]),e._v(" "),o("p",[e._v("Paste your hyperlink in the "),o("em",[e._v("Path")]),e._v(" section and click on the "),o("em",[e._v("Load")]),e._v(" button. Each column in your table translates to a "),o("em",[e._v("field")]),e._v(". You should be prompted to add all fields identified in your data resource, as in Figure 2 below. Click on the prompt to load the fields.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(476),alt:"annotated in red, a prompt to add all fields inferred from your data resource"}}),o("br"),e._v(" "),o("em",[e._v("Figure 2: annotated in red, a prompt to add all fields inferred from your data resource.")])]),e._v(" "),o("p",[e._v("The page that follows looks like Figure 3 below. Each column from the GDP dataset has been mapped to a "),o("em",[e._v("field")]),e._v(". The data type for each column has been inferred correctly, and we can preview data under each field by hovering over the field name. It is also possible to edit all sections of our data resource’s fields as we can see below.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(477),alt:"all fields inferred from your data resource"}}),o("br"),e._v(" "),o("em",[e._v("Figure 3: all fields inferred from your data resource.")])]),e._v(" "),o("p",[e._v("You can now edit data types and formats as necessary, and optionally add titles and descriptive information to your fields. For example, the data type for our {Year} field should be "),o("em",[o("strong",[e._v("year")])]),e._v(" and not "),o("em",[o("strong",[e._v("integer")])]),e._v(". Our {Value} column has numeric information with decimal places.")]),e._v(" "),o("p",[e._v("By definition, values under the "),o("em",[o("strong",[e._v("integer")])]),e._v(" data type are whole numbers. The "),o("em",[o("strong",[e._v("number")])]),e._v(" data type is more appropriate for the {Value} column. When in doubt about what data type to use, consult the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#types-and-formats",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema data types cheat sheet"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Click on the "),o("img",{attrs:{src:t(478),alt:""}}),e._v(" icon to pick a suitable profile for your data resource. "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/profiles/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Here’s more information about Frictionless Data profiles"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("If your dataset has other data resources, add them by scrolling to the bottom of the page, clicking on Add Resource, and repeating the same process as we just did.")]),e._v(" "),o("p",[e._v("If your dataset has other data resources, add them by scrolling to the bottom of the page, clicking on "),o("strong",[e._v("Add Resource")]),e._v(", and repeating the same process as we just did.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(479),alt:"Prompt to add more data resources"}}),o("br"),e._v(" "),o("em",[e._v("Figure 4: Prompt to add more data resources.")])]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"add-descriptive-metadata"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#add-descriptive-metadata"}},[e._v("#")]),e._v(" Add descriptive metadata")]),e._v(" "),o("p",[e._v("In the previous section, we described metadata for each of our datasets, but we’re still missing metadata for our collection of datasets. You can add it via the "),o("strong",[e._v("Metadata")]),e._v(" section on the left side bar, describing things like the dataset name, description, author, license, etc.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(480),alt:"Add Data Package Metadata"}})]),e._v(" "),o("p",[e._v("The "),o("strong",[e._v("Profile")]),e._v(" section under metadata allows us to specify what kind of data collection we are packaging.")]),e._v(" "),o("ul",[o("li",[o("p",[o("em",[e._v("Data Package")]),o("br"),e._v("\nThis is the base, more general profile. Use it if your dataset contains resources of mixed formats, like tabular and geographical data. The base requirement for a valid Data Package profile is the "),o("em",[e._v("datapackage.json")]),e._v(" file. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])]),e._v(" "),o("li",[o("p",[o("em",[e._v("Tabular Data Package")]),o("br"),e._v("\nIf your data contains only tabular resources like CSVs and spreadsheets, use the Tabular Data Package profile. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tabular Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])]),e._v(" "),o("li",[o("p",[o("em",[e._v("Fiscal Data Package")]),o("br"),e._v("\nIf your data contains fiscal information like budgets and expenditure data, use the Fiscal Data Package profile. See the "),o("a",{attrs:{href:"https://specs.frictionlessdata.io/fiscal-data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fiscal Data Package specification"),o("OutboundLink")],1),e._v(" for more information.")])])]),e._v(" "),o("p",[e._v("In our example, as we only have a CSV data resource, the "),o("em",[e._v("Tabular Data Package")]),e._v(" profile is the best option.")]),e._v(" "),o("p",[e._v("In the "),o("strong",[e._v("Keywords")]),e._v(" section, you can add any keywords that helps make your data collection more discoverable. For our dataset, we might use the keywords "),o("em",[e._v("GDP, National Accounts, National GDP, Regional GDP")]),e._v(". Other datasets could include the country name, dataset area (e.g. “health” or “environmental”), etc.")]),e._v(" "),o("p",[e._v("Now that we have created a Data Package, we can "),o("strong",[e._v("Validate")]),e._v(" or "),o("strong",[e._v("Download")]),e._v(" it. But first, let’s see what our datapackage.json file looks like. With every addition and modification, the "),o("a",{attrs:{href:"https://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Creator"),o("OutboundLink")],1),e._v(" has been populating the "),o("em",[e._v("datapackage.json")]),e._v(" file for us. Click on the "),o("strong",[e._v("{···}")]),e._v(" icon to view the "),o("em",[e._v("datapackage.json")]),e._v(" file. As you can see below, any edit we make to the description of the Value field reflects on the JSON file in real time.")]),e._v(" "),o("p",[e._v("The "),o("strong",[e._v("Validate")]),e._v(" button allows us to confirm whether we chose the correct Profile for our Data Package. The two possible outcomes at this stage are:")]),e._v(" "),o("p",[o("img",{attrs:{src:t(481),alt:"Data Package is Invalid"}})]),e._v(" "),o("p",[e._v("This message appears when there is some validation error like if we miss some required attribute (e.g. the data package name), or have picked an incorrect profile (e.g. Tabular Data Package with geographical data)… Review the metadata and profiles to find the mistake and try validating again.")]),e._v(" "),o("p",[o("img",{attrs:{src:t(482),alt:"Data Package is Valid"}})]),e._v(" "),o("p",[e._v("All good! This message means that your data package is valid, and we can download it.")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"create-data-packages"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#create-data-packages"}},[e._v("#")]),e._v(" Create Data Packages")]),e._v(" "),o("p",[e._v("As we said earlier, the base requirement for a valid Data Package profile is the "),o("em",[e._v("datapackage.json")]),e._v(" file, which contains your data schema and metadata. We call this the descriptor file. You can download your descriptor file by clicking on the "),o("strong",[e._v("Download")]),e._v(" button.")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("If your data resources, like ours, were linked from an online public source, sharing the "),o("em",[e._v("datapackage.json")]),e._v(" file is sufficient, since it contains URLs to your data resources.")])]),e._v(" "),o("li",[o("p",[e._v("If you manually created a data resource and its fields, remember to add all your data resources and the downloaded "),o("em",[e._v("datapackage.json")]),e._v(" file in one folder before sharing it.")])])]),e._v(" "),o("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),o("li",[o("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),o("p",[e._v("Your final Data Package file directory should look like this:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v("data/\n dataresource1.csv\n dataresource2.csv\ndatapackage.json\n")])])]),o("ul",[o("li",[o("p",[o("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there is only one: "),o("code",[e._v("data/gdp.csv")]),e._v(" .")])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files.")])])]),e._v(" "),o("p",[e._v("Congratulations! You have now created a schema for your data, and combined it with descriptive metadata and your data collection to create your first data package!")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"validate-your-packaged-data-automatically"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-your-packaged-data-automatically"}},[e._v("#")]),e._v(" Validate your packaged data automatically")]),e._v(" "),o("p",[e._v("Running continuous checks on data provides regular feedback and contributes to better data quality as errors can be flagged and fixed early on.")]),e._v(" "),o("p",[e._v("In this section, you will learn how to setup automatic tabular data validation using goodtables, so your data is validated every time it’s updated. Although not strictly necessary, it’s useful to "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[e._v("know about Data Packages and Table Schema")]),e._v(" before proceeding, as they allow you to describe your data in more detail, allowing more advanced validations.")],1),e._v(" "),o("p",[e._v("We will show how to set up automated tabular data validations for data published on:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v(", an open source platform for publishing data in the open, that makes it easy to discover, use and share data;")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),o("OutboundLink")],1),e._v(", a web platform for collaborating on projects as well as publishing, sharing and storing resources, such as data files;")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://aws.amazon.com/s3/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Amazon S3"),o("OutboundLink")],1),e._v(", a data storage service by Amazon.")])]),e._v(" "),o("p",[e._v("Even if you don’t use any of these platforms, you can still setup the validation using "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables-py"),o("OutboundLink")],1),e._v(", it will just require some technical knowledge")]),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-ckan"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-ckan"}},[e._v("#")]),e._v(" Validate tabular data automatically on CKAN")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v(" is an open source platform for publishing data online. It is widely used across the planet, including by the federal governments of the USA, United Kingdom, Brazil, and others.")]),e._v(" "),o("p",[e._v("To automatically validate tabular data on CKAN, enable the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension, which uses goodtables to run continuous checks on your data. The "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension:")]),e._v(" "),o("ul",[o("li",[e._v("Adds a badge next to each dataset showing the status of their validation (valid or invalid), and")]),e._v(" "),o("li",[e._v("allows users to access the validation report, making it possible for errors to be identified and fixed.")])]),e._v(" "),o("p",[o("img",{attrs:{src:t(483),alt:"annotated in red, automated validation checks on datasets in CKAN"}}),o("br"),e._v(" "),o("em",[e._v("Figure 8: annotated in red, automated validation checks on datasets in CKAN.")])]),e._v(" "),o("p",[e._v("The installation and usage instructions for "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("ckanext-validation"),o("OutboundLink")],1),e._v(" extension are available on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-validation",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-github"}},[e._v("#")]),e._v(" Validate tabular data automatically on GitHub")]),e._v(" "),o("p",[e._v("If your data is hosted on GitHub, you can use "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://goodtables.io"),o("OutboundLink")],1),e._v(" to automatically validate it on every change.")]),e._v(" "),o("p",[e._v("For this section, you will first need to create a "),o("a",{attrs:{href:"https://help.github.com/articles/create-a-repo/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub repository"),o("OutboundLink")],1),e._v(" and add tabular data to it.")]),e._v(" "),o("p",[e._v("Once you have tabular data in your Github repository:")]),e._v(" "),o("ol",[o("li",[e._v("Login on "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(" using your GitHub account and accept the permissions confirmation.")]),e._v(" "),o("li",[e._v("Once we’ve synchronized your repository list, go to the "),o("a",{attrs:{href:"https://goodtables.io/settings",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manage Sources"),o("OutboundLink")],1),e._v(" page and enable the repository with the data you want to validate.\n"),o("ul",[o("li",[e._v("If you can’t find the repository, try clicking on the Refresh button on the Manage Sources page")])])])]),e._v(" "),o("p",[e._v("Goodtables will then validate all tabular data files (CSV, XLS, XLSX, ODS) and "),o("RouterLink",{attrs:{to:"/data-package/"}},[e._v("data packages")]),e._v(" in the repository. These validations will be executed on every change, including pull requests.")],1),e._v(" "),o("h3",{attrs:{id:"validate-tabular-data-automatically-on-amazon-s3"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#validate-tabular-data-automatically-on-amazon-s3"}},[e._v("#")]),e._v(" Validate tabular data automatically on Amazon S3")]),e._v(" "),o("p",[e._v("If your data is hosted on Amazon S3, you can use "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://goodtables.io"),o("OutboundLink")],1),e._v(" to automatically validate it on every change.")]),e._v(" "),o("p",[e._v("It is a technical process to set up, as you need to know how to configure your Amazon S3 bucket. However, once it’s configured, the validations happen automatically on any tabular data created or updated. Find the detailed instructions "),o("a",{attrs:{href:"https://docs.goodtables.io/getting_started/s3.html",title:"Validating data on Amazon S3",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"custom-setup-of-automatic-tabular-data-validation"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#custom-setup-of-automatic-tabular-data-validation"}},[e._v("#")]),e._v(" Custom setup of automatic tabular data validation")]),e._v(" "),o("p",[e._v("If you don’t use any of the oficially supported data publishing platforms, you can use "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables-py"),o("OutboundLink")],1),e._v(" directly to validate your data. This is the most flexible option, as you can configure exactly when, and how your tabular data is validated. For example, if your data come from an external source, you could validate it once before you process it (so you catch errors in the source data), and once after cleaning, just before you publish it, so you catch errors introduced by your data processing.")]),e._v(" "),o("p",[e._v("The instructions on how to do this are technical, and can be found on "),o("a",{attrs:{href:"https://github.com/frictionlessdata/goodtables-py",title:"Goodtables.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/goodtables-py"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"publish-packaged-data"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data"}},[e._v("#")]),e._v(" Publish packaged data")]),e._v(" "),o("p",[e._v("Creating and Sharing Data Packages is important for both data publishers and data users because it provides a common and open specification to describe your dataset’s metadata. This facilitates data reuse, as users don’t need to understand each data publisher’s specific metadata format, and as the specification is machine-readable, it also allows tools to parse the metadata. This enables software to:")]),e._v(" "),o("ul",[o("li",[e._v("Import the data packages into different tools and languages, like Python and R")]),e._v(" "),o("li",[e._v("Validate the data contents according to the schema described in the data package")]),e._v(" "),o("li",[e._v("Convert the data package into other formats, for example loading it into a SQL database for further analysis")])]),e._v(" "),o("p",[e._v("Although these reasons are not unique to publishing data as data packages, here’s why we think data publishers should consider publishing in this format:")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Archiving data collections using data packages ensure data publishers can update data more efficiently at any time. The associated schema is a guide on existing data fields and acceptable data types for individual tabular data resources and can be easily built upon.")])]),e._v(" "),o("li",[o("p",[e._v("Sharing data with descriptive metadata and its associated schema provides context for your data no matter where it is used, and significantly cuts down on time spent researching data provenance before using acquired data.")])]),e._v(" "),o("li",[o("p",[e._v("Data Packages allow for accountability and enrich the feedback process as data publishers can add metadata with contact information for users to reach out to them and licensing to spell out accepted use of published data.")])])]),e._v(" "),o("p",[e._v("If don’t need your own data portal, there are many platforms where you can publish your data (if you need your own, check "),o("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),o("OutboundLink")],1),e._v("). In the section below, we dive into a few options. Read along and decide what option is most suitable:")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-in-our-community-ckan-instance"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-in-our-community-ckan-instance"}},[e._v("#")]),e._v(" Publish packaged data in our community CKAN instance")]),e._v(" "),o("p",[e._v("CKAN is an open source platform for publishing data that makes it easy to discover, use and share data. "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is a public instance of CKAN that allows anyone to publish their data.")]),e._v(" "),o("p",[e._v("Here’s why you should consider creating an organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" and publishing datasets therein:")]),e._v(" "),o("ul",[o("li",[o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is free for all to use! The file upload size limit on the platform is currently 100mb.")]),e._v(" "),o("li",[e._v("The decision on whether to publicly or privately publish datasets rests with data publishers.")]),e._v(" "),o("li",[o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" organizations allow for multiple users to collaborate with varied privileges:")]),e._v(" "),o("li",[o("strong",[e._v("Admin")]),e._v(": Can add/edit and delete datasets, as well as manage organization members.")]),e._v(" "),o("li",[o("strong",[e._v("Editor")]),e._v(": Can add and edit datasets, but not manage organization members.")]),e._v(" "),o("li",[o("strong",[e._v("Member")]),e._v(": Can view the organization’s private datasets, but not add new datasets.")])]),e._v(" "),o("p",[e._v("To publish data on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(":")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Request for a new Organization to be created on the platform for you via "),o("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community page"),o("OutboundLink")],1),e._v("."),o("br"),e._v("\nThis is required only to ensure spammers don’t take up space and hog resources on the platform.")]),e._v(" "),o("p",[e._v("The request format is simple and requires:")]),e._v(" "),o("ul",[o("li",[o("p",[o("strong",[e._v("Title")]),e._v(": This will be the name of your Organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" i.e."),o("br"),o("br"),e._v(" "),o("em",[e._v("My New Organization")])])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("Slug")]),e._v(": This is an acronym, word or hyphenated phrase that will be added to the end of the "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" url to uniquely identify your Organization and associate your data collections with it i.e."),o("br"),o("br"),e._v(" "),o("em",[e._v("my-new-organization")])])]),e._v(" "),o("li",[o("p",[o("strong",[e._v("Username")]),e._v(": The username you provide is associated with an email address on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" and allows us to give you admin access to your Organization on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(".")])])])]),e._v(" "),o("li",[o("p",[e._v("Log In and add new datasets")])])]),e._v(" "),o("p",[e._v("Adding datasets on "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" is no different from using any other CKAN platform, but "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a good guide by Dan Fowler"),o("OutboundLink")],1),e._v(" for first timers.")]),e._v(" "),o("p",[e._v("3.Publish and share public datasets widely.")]),e._v(" "),o("p",[e._v("On "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(", you can either publish datasets privately, meaning only members of your organization have access to them, or publicly, as open data. "),o("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Find out more"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-on-datahub-io"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-datahub-io"}},[e._v("#")]),e._v(" Publish packaged data on "),o("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)]),e._v(" "),o("p",[o("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(" is a platform for finding, sharing and publishing high quality data online.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(" and "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),o("OutboundLink")],1),e._v(" share the same name for historical reasons. "),o("a",{attrs:{href:"https://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datahub.ckan.io"),o("OutboundLink")],1),e._v(" used to be the DataHub, but was moved to its current address, and the current DataHub uses new software developed from scratch.")]),e._v(" "),o("ol",[o("li",[e._v("Set up a data publisher / user account on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)])]),e._v(" "),o("p",[e._v("Join the "),o("a",{attrs:{href:"https://gitter.im/datahubio/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.io community group"),o("OutboundLink")],1),e._v(", introduce yourself and request for an account.")]),e._v(" "),o("ol",{attrs:{start:"2"}},[o("li",[e._v("Publish Datasets on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1)])]),e._v(" "),o("p",[o("a",{attrs:{href:"http://datahub.io/docs/getting-started/publishing-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("This post"),o("OutboundLink")],1),e._v(" provides helpful information on publishing datasets on "),o("a",{attrs:{href:"https://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h3",{attrs:{id:"publish-packaged-data-on-github"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-github"}},[e._v("#")]),e._v(" Publish packaged data on GitHub")]),e._v(" "),o("p",[e._v("GitHub is the largest repository of source code, with "),o("a",{attrs:{href:"https://github.com/blog/2345-celebrating-nine-years-of-github-with-an-anniversary-sale",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 20 million"),o("br"),e._v("\nusers"),o("OutboundLink")],1),e._v(". Although the focus is on hosting source code, any type of file can be hosted. Documents, thesis, images, shapefiles, you can even host an entire static website with "),o("a",{attrs:{href:"https://pages.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Pages"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("By using GitHub, you get all the advantages of using a version control system as Git, where every modification to your files is tracked. You also get an issue ticketing system, wiki pages, milestones tracking, and other useful"),o("br"),e._v("\ncollaboration tools.")]),e._v(" "),o("p",[e._v("** What types of datasets can be hosted on GitHub?**")]),e._v(" "),o("p",[e._v("Although GitHub offers many useful functionalities, not all datasets are a good fit for it. The main limitations are:")]),e._v(" "),o("ul",[o("li",[e._v("Individual files have less than 100 MB")]),e._v(" "),o("li",[e._v("Entire repository have less than 1 GB\n"),o("ul",[o("li",[e._v("The repository size includes not only the current files, but all of their previous versions.")])])])]),e._v(" "),o("p",[e._v("You can store larger files using "),o("a",{attrs:{href:"https://git-lfs.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("git-lfs"),o("OutboundLink")],1),e._v(", but we won’t go in details about it in this section.")]),e._v(" "),o("p",[e._v("It’s also useful if your data files use text-based file formats like CSV or GeoJSON, as then git is able to show you exactly what changed between two versions of the files. However, even if you use binary file formats like XLS, GitHub is still useful.")]),e._v(" "),o("p",[e._v("** Step 1. Organise your dataset folder structure **")]),e._v(" "),o("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),o("ul",[o("li",[o("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),o("li",[o("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),o("li",[o("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),o("p",[e._v("Even though we’ll see an example that has all of these different types of files, this isn’t always the case. For example, datasets that were manually collected might not have any scripts.")]),e._v(" "),o("p",[e._v("Consider this folder structure:")]),e._v(" "),o("div",{staticClass:"language- extra-class"},[o("pre",{pre:!0,attrs:{class:"language-text"}},[o("code",[e._v("data/\n schools.csv\n cities.csv\ndocs/\n screenshot.png\nscripts/\n clean_data.py\nMakefile\ndatapackage.json\nREADME.md\n")])])]),o("ul",[o("li",[o("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there are two: "),o("code",[e._v("data/schools.csv")]),e._v(" and "),o("code",[e._v("data/cities.csv")]),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("docs/")]),e._v(": Images, sample analysis, and other documentation files regarding the dataset. The main documentation is in "),o("code",[e._v("README.md")]),e._v(", but in this folder you can add any images used in the README, and other writings about the dataset.")]),e._v(" "),o("li",[o("strong",[e._v("scripts/")]),e._v(": All scripts are contained in this folder. There could be scripts to scrape the data, join different files, clean them, etc. Depending on the programming language you use, you might also add requirements files like "),o("code",[e._v("requirements.txt")]),e._v(" for Python, or "),o("code",[e._v("package.json")]),e._v(" for NodeJS.")]),e._v(" "),o("li",[o("strong",[e._v("Makefile")]),e._v(": The scripts are only part of the puzzle, we also need to know how to run them. In which order they should be executed, which one should I run to update the data, and so on. You could document this information textually in the "),o("code",[e._v("README.md")]),e._v(" file, but the "),o("code",[e._v("Makefile")]),e._v(" allows you to have executable documentation. You can think of it as a script to run the scripts. If you have never written a Makefile, read "),o("a",{attrs:{href:"https://bost.ocks.org/mike/make/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Use Make"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("li",[o("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files. See "),o("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/"}},[e._v("how to create a data package")]),e._v(" on instructions on writing this file.")],1),e._v(" "),o("li",[o("strong",[o("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),o("OutboundLink")],1)]),e._v(": This is where the dataset is described for humans. We recommend the following sections:\n"),o("ul",[o("li",[o("strong",[e._v("Introduction")]),e._v(": A short description of the dataset, what it contains, the time or geographical area it covers")]),e._v(" "),o("li",[o("strong",[e._v("Data")]),e._v(": What the data structure? Does it use any codes? How do you define missing values (e.g. ‘N/A’ or ‘-1’)")]),e._v(" "),o("li",[o("strong",[e._v("Preparation")]),e._v(": How was the data collected? How do I update the data? Was it modified in any way? If you have a "),o("code",[e._v("Makefile")]),e._v(", this section will mostly document how to run it. Otherwise you can describe how to run the scripts, or how to collect the data manually.")]),e._v(" "),o("li",[o("strong",[e._v("License")]),e._v(": There are two issues here: the license of the data itself, and the license of the package you are creating (including any scripts). Our recommendation is to license the package you created as "),o("a",{attrs:{href:"https://creativecommons.org/publicdomain/zero/1.0/",title:"Creative Commons Public Domain Dedication",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC0"),o("OutboundLink")],1),e._v(", and add any relevant information or disclaimers regarding the source data’s license.")])])])]),e._v(" "),o("p",[e._v("To summarize, these are the folders, files, and their respective contents in this structure:")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Path")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Contents")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[e._v("data/")]),e._v(" "),o("td",[e._v("Data")]),e._v(" "),o("td",[e._v("Dataset’s data files.")])]),e._v(" "),o("tr",[o("td",[e._v("docs/")]),e._v(" "),o("td",[e._v("Documentation")]),e._v(" "),o("td",[e._v("Images, analysis, and other documentation files.")])]),e._v(" "),o("tr",[o("td",[e._v("scripts/")]),e._v(" "),o("td",[e._v("Scripts")]),e._v(" "),o("td",[e._v("Scripts used for creating, modifying, or analysing the dataset.")])]),e._v(" "),o("tr",[o("td",[e._v("Makefile")]),e._v(" "),o("td",[e._v("Scripts")]),e._v(" "),o("td",[e._v("Executable documentation on how to run the scripts.")])]),e._v(" "),o("tr",[o("td",[e._v("datapackage.json")]),e._v(" "),o("td",[e._v("Metadata")]),e._v(" "),o("td",[e._v("Data Package descriptor file.")])]),e._v(" "),o("tr",[o("td",[o("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),o("OutboundLink")],1)]),e._v(" "),o("td",[e._v("Documentation")]),e._v(" "),o("td",[e._v("Textual description of the dataset with description, preparation steps, license, etc.")])])])]),e._v(" "),o("p",[e._v("** Step 2. Upload the dataset to GitHub **")]),e._v(" "),o("ol",[o("li",[e._v("Login (or create) a new account on GitHub")]),e._v(" "),o("li",[e._v("Create "),o("a",{attrs:{href:"https://github.com/new",title:"GitHub New Repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("a new repository"),o("OutboundLink")],1),e._v(" "),o("ul",[o("li",[e._v("Write a short description about the dataset")])])]),e._v(" "),o("li",[e._v("On your repository page, click on the “Upload files” link")]),e._v(" "),o("li",[e._v("Upload the files you created in the previous step\n"),o("ul",[o("li",[e._v("If your have files larger than 25 MB, you’ll need to either "),o("a",{attrs:{href:"https://help.github.com/articles/adding-a-file-to-a-repository-using-the-command-line/",title:"Adding a file to a repository using the command line",target:"_blank",rel:"noopener noreferrer"}},[e._v("upload using the command line"),o("OutboundLink")],1),e._v(", or the "),o("a",{attrs:{href:"https://desktop.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Desktop client"),o("OutboundLink")],1),e._v(".")])])])]),e._v(" "),o("p",[e._v("** (Optional) Step 3. Enable automatic tabular data validation **")]),e._v(" "),o("p",[e._v("You can automatically validate your tabular data files using "),o("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),o("OutboundLink")],1),e._v(". This will take only a few minutes, and will ensure you’ll always know when there are errors with your dataset, maintaining its quality. "),o("a",{attrs:{href:"/blog/2018/03/12/automatically-validated-tabular-data"}},[e._v("Read the walkthrough here")]),e._v(".")]),e._v(" "),o("p",[e._v("The sample datasets used in this example, that is, List of schools in Birmingham, UK are available "),o("a",{attrs:{href:"https://github.com/vitorbaptista/birmingham_schools",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("hr"),e._v(" "),o("h2",{attrs:{id:"share-packaged-data-effectively"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#share-packaged-data-effectively"}},[e._v("#")]),e._v(" Share packaged data effectively")]),e._v(" "),o("p",[e._v("Publishing packaged data is not enough. To avoid hiding useful information in open archives online, it is necessary to engage communities that could be interested in your data. Community engagement should not be viewed as a one-off assignment, but rather, as a continuous effort to increase the impact of your data publishing work.")]),e._v(" "),o("p",[e._v("Some best practices:")]),e._v(" "),o("ol",[o("li",[o("p",[e._v("Publish quickly, update often."),o("br"),e._v("\nThe true value of published data lies in its use and reuse by open data communities. Publish data as soon as possible and update it regularly so users have access to the latest information.")])]),e._v(" "),o("li",[o("p",[e._v("Set up feedback loops."),o("br"),e._v("\nYour data publishing platform should aim to get community “buy in”, by encouraging participatory processes. Feedback loops are important because:")])])]),e._v(" "),o("ul",[o("li",[e._v("they allow data users to ask for clarifications and request for additional information about specific datasets, if need be.")]),e._v(" "),o("li",[e._v("they allow data publishers to understand what communities need and publish data driven by user demand, increasing the chance it’ll be used")]),e._v(" "),o("li",[e._v("they provide an avenue for data publishers to learn how their data is used, so they can gauge its impact.")])]),e._v(" "),o("p",[e._v("Examples of feedback loops that data publishers can set up include:")]),e._v(" "),o("ul",[o("li",[e._v("Adding a comments section in a data platform. Needless to say, the comments section should be monitored closely to ensure that responses are sent in time, and that discussions remain respectful and on topic.")]),e._v(" "),o("li",[e._v("A dedicated social platform channel, such as a Google Group or Facebook group, with a prominently placed link from the data platform for sharing updates, collating and responding to feedback.")]),e._v(" "),o("li",[e._v("An e-mail address where users can contact the people responsible for the datasets for clarifications, suggestions, or to report errors.")])]),e._v(" "),o("ol",{attrs:{start:"3"}},[o("li",[e._v("Meet open data communities in the places they already meet")])]),e._v(" "),o("p",[e._v("Communities thrive when there’s continued discourse over similar interests."),o("br"),e._v("\nData publishers should be active in existing networks, as supporters and collaborators in community data initiatives. Some of the ways this can be done, leveraging on Open Knowledge communities and others, include:")]),e._v(" "),o("ul",[o("li",[o("p",[e._v("Kickstarting and joining discussions in online forums")])]),e._v(" "),o("li",[o("p",[e._v("Blogs"),o("br"),e._v("\nAs a data publisher, running a data blog is a great way to create awareness about the data you publish, and an avenue to highlight how data users are drawing insight from it. This encourages use and reuse of your data. If you don’t run a data blog, there are plenty of open data blogs that welcome external contributions i.e. "),o("a",{attrs:{href:"https://blog.okfn.org/submit/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s how"),o("OutboundLink")],1),e._v(" you can contribute guest posts on "),o("a",{attrs:{href:"http://blog.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("blog.okfn.org"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("Open Knowledge Discuss"),o("br"),e._v("\nThe Open Knowledge discussion platform is a great place to invoke and contribute to conversation on specific subjects. "),o("a",{attrs:{href:"https://discuss.okfn.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dive in"),o("OutboundLink")],1),e._v("!")])]),e._v(" "),o("li",[o("p",[e._v("Gitter"),o("br"),e._v("\nGitter is a chat platform that’s well suited for more technical discussions around open data. If you are looking to engage technical data users, consider joining our "),o("a",{attrs:{href:"https://gitter.im/okfn/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation channel"),o("OutboundLink")],1),e._v(" or the "),o("a",{attrs:{href:"https://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data project channel"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("li",[o("p",[e._v("In-person meetups"),o("br"),e._v("\nOrganizing and participating in meetups, hackathons and domain-specific conferences is a good way to engage with communities.")])]),e._v(" "),o("li",[o("p",[e._v("Community calls, webinars and podcasts")])])]),e._v(" "),o("p",[e._v("Finally, to maintain an active community of data users as a data publisher:")]),e._v(" "),o("ul",[o("li",[e._v("Keep your datasets updated and highlight changes that might be of interest to the community. For example, if the changes are relevant to a specific data request, reach out and let the user know.")]),e._v(" "),o("li",[e._v("Have a human representative play an active role in community activities. Bots can be fun and efficient, but they are limited and can get in the way of meaningful interactions.")]),e._v(" "),o("li",[e._v("Be flexible and transparent. Listen to your community needs and respond appropriately and in timely fashion i.e. consider publishing datasets that are in high demand first, or more regularly. Archive, rather than delete datasets, but if one must be deleted, issue a forewarning and explain why.")]),e._v(" "),o("li",[e._v("Set up a sharing system to regularly showcase notable data use cases by the the community i.e. fortnightly to inspire other community members.")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/50.6eaad3c7.js b/assets/js/50.db9ab2c9.js similarity index 99% rename from assets/js/50.6eaad3c7.js rename to assets/js/50.db9ab2c9.js index 8cda56162..dab66fc3a 100644 --- a/assets/js/50.6eaad3c7.js +++ b/assets/js/50.db9ab2c9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{457:function(t,a,s){t.exports=s.p+"assets/img/gdp_map_example.c3bf2487.png"},596:function(t,a,s){"use strict";s.r(a);var n=s(29),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("p",[t._v("Joining multiple datasets on a common value or set of values is a common data wrangling task. For instance, one might have a dataset listing Gross Domestic Product (GDP) per country and a separate dataset containing geographic outlines of country borders. If these independent datasets have a shared property (for instance, the three-letter country code as "),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3",target:"_blank",rel:"noopener noreferrer"}},[t._v("defined in ISO 3166-1"),n("OutboundLink")],1),t._v("),we should be able to create one consolidated dataset to generate a map of GDP per country. This guide will walk through this simple use case.")]),t._v(" "),n("h2",{attrs:{id:"example-data"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#example-data"}},[t._v("#")]),t._v(" Example Data")]),t._v(" "),n("p",[t._v("For this example, we are going to use two example Data Packages from our "),n("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/",target:"_blank",rel:"noopener noreferrer"}},[t._v("example data packages repository"),n("OutboundLink")],1),t._v(" with the properties described above. The first is an example of Data Package containing a GeoJSON file. "),n("a",{attrs:{href:"http://geojson.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GeoJSON"),n("OutboundLink")],1),t._v(" is a format for representing geographical features in "),n("a",{attrs:{href:"http://json.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JSON"),n("OutboundLink")],1),t._v(". This particular GeoJSON file lists countries on its "),n("code",[t._v("features")]),t._v(" array and specifies the country code as a property on each “feature”. In this case, the country code is stored on the key “ISO_A3” of the feature’s "),n("code",[t._v("properties")]),t._v(" object.")]),t._v(" "),n("div",{staticClass:"language-json extra-class"},[n("pre",{pre:!0,attrs:{class:"language-json"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FeatureCollection"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"features"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Feature"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"properties"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ADMIN"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Ukraine"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ISO_A3"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UKR"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"geometry"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Polygon"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"coordinates"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"..."')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),n("p",[t._v("The second Data Package is a typical "),n("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),n("OutboundLink")],1),t._v(" containing a GDP measure for each country in the world for the year 2014. Country codes are stored, naturally, on the “Country Code” column.")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Country Name")]),t._v(" "),n("th",[t._v("Country Code")]),t._v(" "),n("th",[t._v("Year")]),t._v(" "),n("th",[t._v("Value")])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Ukraine")]),t._v(" "),n("td",[t._v("UKR")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("131805126738.287")])]),t._v(" "),n("tr",[n("td",[t._v("United Arab Emirates")]),t._v(" "),n("td",[t._v("ARE")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("401646583173.427")])]),t._v(" "),n("tr",[n("td",[t._v("United Kingdom")]),t._v(" "),n("td",[t._v("GBR")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("2941885537461.48")])]),t._v(" "),n("tr",[n("td",[t._v("United States")]),t._v(" "),n("td",[t._v("USA")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("17419000000000")])]),t._v(" "),n("tr",[n("td",[t._v("Uruguay")]),t._v(" "),n("td",[t._v("URY")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("57471277325.1312")])])])]),t._v(" "),n("h2",{attrs:{id:"reading-and-joining-data"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#reading-and-joining-data"}},[t._v("#")]),t._v(" Reading and Joining Data")]),t._v(" "),n("p",[t._v("As in our "),n("RouterLink",{attrs:{to:"/blog/2016/08/29/using-data-packages-in-python/"}},[t._v("Using Data Packages in Python guide")]),t._v(", the first step before joining is to read the data for each Data Package onto our computer. We do this by importing the "),n("code",[t._v("datapackage")]),t._v(" library and passing the Data Package url to its "),n("code",[t._v("DataPackage")]),t._v(" method. We are also importing the standard Python "),n("code",[t._v("json")]),t._v(" library to read and write our GeoJSON file.")],1),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" json\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datapackage\n\ncountries_url "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/geo-countries/datapackage.json'")]),t._v("\ngdp_url "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/gross-domestic-product-2014/datapackage.json'")]),t._v("\n\ncountries_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_url"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ngdp_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_url"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nworld "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" json"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("loads"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'countries'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("raw_read"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'UTF-8'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),n("p",[t._v("Learn more about creating data packages in Python "),n("RouterLink",{attrs:{to:"/blog/2016/07/21/creating-tabular-data-packages-in-python/"}},[t._v("in this tutorial")]),t._v(".")],1),t._v(" "),n("p",[t._v("Our GeoJSON data is stored as a "),n("code",[t._v("bytes")]),t._v(" object in the "),n("code",[t._v("data")]),t._v(" attribute of the first (and only) element of the Data Package "),n("code",[t._v("resources")]),t._v(" array. To create our "),n("code",[t._v("world")]),t._v(" GeoJSON dict, we first need to decode this "),n("code",[t._v("bytes")]),t._v(" object to a UTF-8 string and pass it to "),n("code",[t._v("json.loads")]),t._v(".")]),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[t._v("world "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" json"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("loads"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'countries'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("raw_read"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'UTF-8'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),n("p",[t._v("At this point, joining the data can be accomplished by iterating through each country in the "),n("code",[t._v("world['features']")]),t._v(" array and adding a property “GDP (2014)” if “Country Code” on the "),n("code",[t._v("gdp_dp")]),t._v(" Data Package object matches “ISO_A3” on the given GeoJSON feature. The value of “GDP (2014)” is derived from the “Value” column on the "),n("code",[t._v("gdp_dp")]),t._v(" Data Package object.")]),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" feature "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" world"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'features'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n matches "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("gdp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Value'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" gdp "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" gdp_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" gdp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ISO_A3'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" matches"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'GDP (2014)'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("matches"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'GDP (2014)'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n")])])]),n("p",[t._v("Finally, we can output our consolidated GeoJSON dataset into a new file called “world_gdp_2014.geojson” using "),n("code",[t._v("json.dump")]),t._v(" and create a new Data Package container for it. For a more thorough walkthrough on creating a Data Package, please consult the"),n("br"),t._v(" "),n("RouterLink",{attrs:{to:"/blog/2016/07/21/creating-tabular-data-packages-in-python/"}},[t._v("Creating Data Packages in Python")]),t._v(" guide.")],1),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[t._v("new_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'consolidated-dataset'")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'resources'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'world_gdp_2014.geojson'")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("commit"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("save"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage.zip'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),n("p",[t._v("We can now quickly render this GeoJSON file into a "),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/Choropleth_map",target:"_blank",rel:"noopener noreferrer"}},[t._v("chloropleth map"),n("OutboundLink")],1),t._v(" using "),n("a",{attrs:{href:"http://qgis.org/en/site/",target:"_blank",rel:"noopener noreferrer"}},[t._v("QGIS"),n("OutboundLink")],1),t._v(":")]),t._v(" "),n("p",[n("img",{attrs:{src:s(457),alt:"GDP Map Example"}})]),t._v(" "),n("p",[t._v("Or we can rely on GitHub to render our GeoJSON for us. When you click a country, it’s property list will show up featuring “ADMIN”, “ISO_A3”, and the newly added “GDP (2014)” property.")])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{457:function(t,a,s){t.exports=s.p+"assets/img/gdp_map_example.c3bf2487.png"},595:function(t,a,s){"use strict";s.r(a);var n=s(29),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("p",[t._v("Joining multiple datasets on a common value or set of values is a common data wrangling task. For instance, one might have a dataset listing Gross Domestic Product (GDP) per country and a separate dataset containing geographic outlines of country borders. If these independent datasets have a shared property (for instance, the three-letter country code as "),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3",target:"_blank",rel:"noopener noreferrer"}},[t._v("defined in ISO 3166-1"),n("OutboundLink")],1),t._v("),we should be able to create one consolidated dataset to generate a map of GDP per country. This guide will walk through this simple use case.")]),t._v(" "),n("h2",{attrs:{id:"example-data"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#example-data"}},[t._v("#")]),t._v(" Example Data")]),t._v(" "),n("p",[t._v("For this example, we are going to use two example Data Packages from our "),n("a",{attrs:{href:"https://github.com/frictionlessdata/example-data-packages/",target:"_blank",rel:"noopener noreferrer"}},[t._v("example data packages repository"),n("OutboundLink")],1),t._v(" with the properties described above. The first is an example of Data Package containing a GeoJSON file. "),n("a",{attrs:{href:"http://geojson.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("GeoJSON"),n("OutboundLink")],1),t._v(" is a format for representing geographical features in "),n("a",{attrs:{href:"http://json.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("JSON"),n("OutboundLink")],1),t._v(". This particular GeoJSON file lists countries on its "),n("code",[t._v("features")]),t._v(" array and specifies the country code as a property on each “feature”. In this case, the country code is stored on the key “ISO_A3” of the feature’s "),n("code",[t._v("properties")]),t._v(" object.")]),t._v(" "),n("div",{staticClass:"language-json extra-class"},[n("pre",{pre:!0,attrs:{class:"language-json"}},[n("code",[n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"FeatureCollection"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"features"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Feature"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"properties"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ADMIN"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Ukraine"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ISO_A3"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"UKR"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"geometry"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Polygon"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token property"}},[t._v('"coordinates"')]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"..."')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),n("p",[t._v("The second Data Package is a typical "),n("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),n("OutboundLink")],1),t._v(" containing a GDP measure for each country in the world for the year 2014. Country codes are stored, naturally, on the “Country Code” column.")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Country Name")]),t._v(" "),n("th",[t._v("Country Code")]),t._v(" "),n("th",[t._v("Year")]),t._v(" "),n("th",[t._v("Value")])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Ukraine")]),t._v(" "),n("td",[t._v("UKR")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("131805126738.287")])]),t._v(" "),n("tr",[n("td",[t._v("United Arab Emirates")]),t._v(" "),n("td",[t._v("ARE")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("401646583173.427")])]),t._v(" "),n("tr",[n("td",[t._v("United Kingdom")]),t._v(" "),n("td",[t._v("GBR")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("2941885537461.48")])]),t._v(" "),n("tr",[n("td",[t._v("United States")]),t._v(" "),n("td",[t._v("USA")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("17419000000000")])]),t._v(" "),n("tr",[n("td",[t._v("Uruguay")]),t._v(" "),n("td",[t._v("URY")]),t._v(" "),n("td",[t._v("2014")]),t._v(" "),n("td",[t._v("57471277325.1312")])])])]),t._v(" "),n("h2",{attrs:{id:"reading-and-joining-data"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#reading-and-joining-data"}},[t._v("#")]),t._v(" Reading and Joining Data")]),t._v(" "),n("p",[t._v("As in our "),n("RouterLink",{attrs:{to:"/blog/2016/08/29/using-data-packages-in-python/"}},[t._v("Using Data Packages in Python guide")]),t._v(", the first step before joining is to read the data for each Data Package onto our computer. We do this by importing the "),n("code",[t._v("datapackage")]),t._v(" library and passing the Data Package url to its "),n("code",[t._v("DataPackage")]),t._v(" method. We are also importing the standard Python "),n("code",[t._v("json")]),t._v(" library to read and write our GeoJSON file.")],1),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" json\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datapackage\n\ncountries_url "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/geo-countries/datapackage.json'")]),t._v("\ngdp_url "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/gross-domestic-product-2014/datapackage.json'")]),t._v("\n\ncountries_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_url"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ngdp_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_url"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nworld "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" json"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("loads"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'countries'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("raw_read"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'UTF-8'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),n("p",[t._v("Learn more about creating data packages in Python "),n("RouterLink",{attrs:{to:"/blog/2016/07/21/creating-tabular-data-packages-in-python/"}},[t._v("in this tutorial")]),t._v(".")],1),t._v(" "),n("p",[t._v("Our GeoJSON data is stored as a "),n("code",[t._v("bytes")]),t._v(" object in the "),n("code",[t._v("data")]),t._v(" attribute of the first (and only) element of the Data Package "),n("code",[t._v("resources")]),t._v(" array. To create our "),n("code",[t._v("world")]),t._v(" GeoJSON dict, we first need to decode this "),n("code",[t._v("bytes")]),t._v(" object to a UTF-8 string and pass it to "),n("code",[t._v("json.loads")]),t._v(".")]),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[t._v("world "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" json"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("loads"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("countries_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_resource"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'countries'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("raw_read"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'UTF-8'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),n("p",[t._v("At this point, joining the data can be accomplished by iterating through each country in the "),n("code",[t._v("world['features']")]),t._v(" array and adding a property “GDP (2014)” if “Country Code” on the "),n("code",[t._v("gdp_dp")]),t._v(" Data Package object matches “ISO_A3” on the given GeoJSON feature. The value of “GDP (2014)” is derived from the “Value” column on the "),n("code",[t._v("gdp_dp")]),t._v(" Data Package object.")]),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" feature "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" world"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'features'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n matches "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("gdp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Value'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" gdp "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" gdp_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" gdp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ISO_A3'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" matches"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'GDP (2014)'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("matches"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n feature"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'properties'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'GDP (2014)'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n")])])]),n("p",[t._v("Finally, we can output our consolidated GeoJSON dataset into a new file called “world_gdp_2014.geojson” using "),n("code",[t._v("json.dump")]),t._v(" and create a new Data Package container for it. For a more thorough walkthrough on creating a Data Package, please consult the"),n("br"),t._v(" "),n("RouterLink",{attrs:{to:"/blog/2016/07/21/creating-tabular-data-packages-in-python/"}},[t._v("Creating Data Packages in Python")]),t._v(" guide.")],1),t._v(" "),n("div",{staticClass:"language-python extra-class"},[n("pre",{pre:!0,attrs:{class:"language-python"}},[n("code",[t._v("new_dp "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'consolidated-dataset'")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'resources'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'world_gdp_2014.geojson'")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("commit"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nnew_dp"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("save"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage.zip'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),n("p",[t._v("We can now quickly render this GeoJSON file into a "),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/Choropleth_map",target:"_blank",rel:"noopener noreferrer"}},[t._v("chloropleth map"),n("OutboundLink")],1),t._v(" using "),n("a",{attrs:{href:"http://qgis.org/en/site/",target:"_blank",rel:"noopener noreferrer"}},[t._v("QGIS"),n("OutboundLink")],1),t._v(":")]),t._v(" "),n("p",[n("img",{attrs:{src:s(457),alt:"GDP Map Example"}})]),t._v(" "),n("p",[t._v("Or we can rely on GitHub to render our GeoJSON for us. When you click a country, it’s property list will show up featuring “ADMIN”, “ISO_A3”, and the newly added “GDP (2014)” property.")])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/51.d03929e6.js b/assets/js/51.82ea6b76.js similarity index 97% rename from assets/js/51.d03929e6.js rename to assets/js/51.82ea6b76.js index dd1e2435e..56ea543df 100644 --- a/assets/js/51.d03929e6.js +++ b/assets/js/51.82ea6b76.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{501:function(e,a,t){e.exports=t.p+"assets/img/OR.8407f111.png"},621:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Tool Fund."),r("br"),e._v(" "),r("br"),e._v("\nOriginally published at "),r("a",{attrs:{href:"https://blog.okfn.org/2020/01/15/frictionless-data-tool-fund-update-shelby-switzer-and-greg-bloom-open-referral/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2020/01/15/frictionless-data-tool-fund-update-shelby-switzer-and-greg-bloom-open-referral/"),r("OutboundLink")],1)]),e._v(" "),r("p",[r("em",[e._v("The 2019 Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This Fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),r("p",[e._v("Open Referral creates standards for health, human, and social services data – the data found in community resource directories used to help find resources for people in need. In many organizations, this data lives in a multitude of formats, from handwritten notes to Excel files on a laptop to Microsoft SQL databases in the cloud. For community resource directories to be maximally useful to the public, this disparate data must be converted into an interoperable format. Many organizations have decided to use Open Referral’s Human Services Data Specification (HSDS) as that format. However, to accurately represent this data, HSDS uses multiple linked tables, which can be challenging to work with. To make this process easier, Greg Bloom and Shelby Switzer from Open Referral decided to implement datapackage bundling of their CSV files using the Frictionless Data Tool Fund.")]),e._v(" "),r("p",[e._v("In order to accurately represent the relationships between organizations, the services they provide, and the locations they are offered, Open Referral aims to use their Human Service Data Specification (HSDS) makes sense of disparate data by linking multiple CSV files together by foreign keys. Open Referral used Frictionless Data’s datapackage to specify the tables’ contents and relationships in a single machine-readable file, so that this standardized format could transport HSDS-compliant data in a way that all of the teams who work with this data can use: CSVs of linked data.")]),e._v(" "),r("p",[e._v("In the Tool Fund, Open Referral worked on their HSDS Transformer tool, which enables a group or person to transform data into an HSDS-compliant data package, so that it can then be combined with other data or used in any number of applications. The HSDS-Transformer is a Ruby library that can be used during the extract, transform, load (ETL) workflow of raw community resource data. This library extracts the community resource data, transforms that data into HSDS-compliant CSVs, and generates a datapackage.json that describes the data output. The Transformer can also output the datapackage as a zip file, called HSDS Zip, enabling systems to send and receive a single compressed file rather than multiple files. The Transformer can be spun up in a docker container — and once it’s live, the API can deliver a payload that includes links to the source data and to the configuration file that maps the source data to HSDS fields. The Transformer then grabs the source data and uses the configuration file to transform the data and return a zip file of the HSDS-compliant datapackage.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(501),alt:"DemoApp"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("A demo app consuming the API generated from the HSDS Zip")])]),e._v(" "),r("p",[e._v("The Open Referral team has also been working on projects related to the HSDS Transformer and HSDS Zip. For example, the HSDS Validator checks that a given datapackage of community service data is HSDS-compliant. Additionally, they have used these tools in the field with a project in Miami. For this project, the HSDS Transformer was used to transform data from a Microsoft SQL Server into an HSDS Zip. Then that zipped datapackage was used to populate a Human Services Data API with a generated developer portal and OpenAPI Specification.")]),e._v(" "),r("p",[e._v("Further, as part of this work, the team also contributed to the original source code for the datapackage-rb Ruby gem. They added a new feature to infer a datapackage.json schema from a given set of CSVs, so that you can generate the json file automatically from your dataset.")]),e._v(" "),r("p",[e._v("Greg and Shelby are eager for the Open Referral community to use these new tools and provide feedback. To use these tools currently, users should either be a Ruby developer who can use the gem as part of another Ruby project, or be familiar enough with Docker and HTTP APIs to start a Docker container and make an HTTP request to it. You can use the HSDS Transformer as a Ruby gem in another project or as a standalone API. In the future, the project might expand to include hosting the HSDS Transformer as a cloud service that anyone can use to transform their data, eliminating many of these technical requirements.")]),e._v(" "),r("p",[e._v("Interested in using these new tools? Open Referral wants to hear your feedback. For example, would it be useful to develop an extract-transform-load API, hosted in the cloud, that enables recurring transformation of nonstandardized human service directory data source into an HSDS-compliant datapackage? You can reach them via their GitHub repos.")]),e._v(" "),r("p",[e._v("Further reading:")]),e._v(" "),r("p",[e._v("Repository: "),r("a",{attrs:{href:"https://github.com/openreferral/hsds-transformer",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/openreferral/hsds-transformer"),r("OutboundLink")],1),r("br"),e._v("\nHSDS Transformer: "),r("a",{attrs:{href:"https://openreferral.github.io/hsds-transformer/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://openreferral.github.io/hsds-transformer/"),r("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{492:function(e,a,t){e.exports=t.p+"assets/img/OR.8407f111.png"},619:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("This blog is part of a series showcasing projects developed during the 2019 Tool Fund."),r("br"),e._v(" "),r("br"),e._v("\nOriginally published at "),r("a",{attrs:{href:"https://blog.okfn.org/2020/01/15/frictionless-data-tool-fund-update-shelby-switzer-and-greg-bloom-open-referral/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://blog.okfn.org/2020/01/15/frictionless-data-tool-fund-update-shelby-switzer-and-greg-bloom-open-referral/"),r("OutboundLink")],1)]),e._v(" "),r("p",[r("em",[e._v("The 2019 Tool Fund provided four mini-grants of $5,000 to support individuals or organisations in developing an open tool for reproducible research built using the Frictionless Data specifications and software. This Fund is part of the Frictionless Data for Reproducible Research project, which is funded by the Sloan Foundation. This project applies our work in Frictionless Data to data-driven research disciplines, in order to facilitate reproducible data workflows in research contexts.")])]),e._v(" "),r("p",[e._v("Open Referral creates standards for health, human, and social services data – the data found in community resource directories used to help find resources for people in need. In many organizations, this data lives in a multitude of formats, from handwritten notes to Excel files on a laptop to Microsoft SQL databases in the cloud. For community resource directories to be maximally useful to the public, this disparate data must be converted into an interoperable format. Many organizations have decided to use Open Referral’s Human Services Data Specification (HSDS) as that format. However, to accurately represent this data, HSDS uses multiple linked tables, which can be challenging to work with. To make this process easier, Greg Bloom and Shelby Switzer from Open Referral decided to implement datapackage bundling of their CSV files using the Frictionless Data Tool Fund.")]),e._v(" "),r("p",[e._v("In order to accurately represent the relationships between organizations, the services they provide, and the locations they are offered, Open Referral aims to use their Human Service Data Specification (HSDS) makes sense of disparate data by linking multiple CSV files together by foreign keys. Open Referral used Frictionless Data’s datapackage to specify the tables’ contents and relationships in a single machine-readable file, so that this standardized format could transport HSDS-compliant data in a way that all of the teams who work with this data can use: CSVs of linked data.")]),e._v(" "),r("p",[e._v("In the Tool Fund, Open Referral worked on their HSDS Transformer tool, which enables a group or person to transform data into an HSDS-compliant data package, so that it can then be combined with other data or used in any number of applications. The HSDS-Transformer is a Ruby library that can be used during the extract, transform, load (ETL) workflow of raw community resource data. This library extracts the community resource data, transforms that data into HSDS-compliant CSVs, and generates a datapackage.json that describes the data output. The Transformer can also output the datapackage as a zip file, called HSDS Zip, enabling systems to send and receive a single compressed file rather than multiple files. The Transformer can be spun up in a docker container — and once it’s live, the API can deliver a payload that includes links to the source data and to the configuration file that maps the source data to HSDS fields. The Transformer then grabs the source data and uses the configuration file to transform the data and return a zip file of the HSDS-compliant datapackage.")]),e._v(" "),r("p",[r("img",{attrs:{src:t(492),alt:"DemoApp"}}),e._v(" "),r("br"),e._v(" "),r("em",[e._v("A demo app consuming the API generated from the HSDS Zip")])]),e._v(" "),r("p",[e._v("The Open Referral team has also been working on projects related to the HSDS Transformer and HSDS Zip. For example, the HSDS Validator checks that a given datapackage of community service data is HSDS-compliant. Additionally, they have used these tools in the field with a project in Miami. For this project, the HSDS Transformer was used to transform data from a Microsoft SQL Server into an HSDS Zip. Then that zipped datapackage was used to populate a Human Services Data API with a generated developer portal and OpenAPI Specification.")]),e._v(" "),r("p",[e._v("Further, as part of this work, the team also contributed to the original source code for the datapackage-rb Ruby gem. They added a new feature to infer a datapackage.json schema from a given set of CSVs, so that you can generate the json file automatically from your dataset.")]),e._v(" "),r("p",[e._v("Greg and Shelby are eager for the Open Referral community to use these new tools and provide feedback. To use these tools currently, users should either be a Ruby developer who can use the gem as part of another Ruby project, or be familiar enough with Docker and HTTP APIs to start a Docker container and make an HTTP request to it. You can use the HSDS Transformer as a Ruby gem in another project or as a standalone API. In the future, the project might expand to include hosting the HSDS Transformer as a cloud service that anyone can use to transform their data, eliminating many of these technical requirements.")]),e._v(" "),r("p",[e._v("Interested in using these new tools? Open Referral wants to hear your feedback. For example, would it be useful to develop an extract-transform-load API, hosted in the cloud, that enables recurring transformation of nonstandardized human service directory data source into an HSDS-compliant datapackage? You can reach them via their GitHub repos.")]),e._v(" "),r("p",[e._v("Further reading:")]),e._v(" "),r("p",[e._v("Repository: "),r("a",{attrs:{href:"https://github.com/openreferral/hsds-transformer",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/openreferral/hsds-transformer"),r("OutboundLink")],1),r("br"),e._v("\nHSDS Transformer: "),r("a",{attrs:{href:"https://openreferral.github.io/hsds-transformer/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://openreferral.github.io/hsds-transformer/"),r("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/54.7b23f7cc.js b/assets/js/54.9e9cbb98.js similarity index 99% rename from assets/js/54.7b23f7cc.js rename to assets/js/54.9e9cbb98.js index 5bf29925c..b4a93296f 100644 --- a/assets/js/54.7b23f7cc.js +++ b/assets/js/54.9e9cbb98.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{514:function(e,a,t){e.exports=t.p+"assets/img/fellows-img-1.967b02cd.png"},691:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("With the Frictionless Data Reproducible Research Fellows Programme, supported by the Sloan Foundation and Open Knowledge Foundation, we are recruiting and training early career researchers to become champions of the Frictionless Data tools and approaches in their field. Fellows learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science.")]),e._v(" "),r("p",[e._v("As part of their training, we asked the 3rd cohort of Frictionless Fellows to package their research data in Frictionless "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Packages"),r("OutboundLink")],1),e._v(". Here’s what they reported on their experience:")]),e._v(" "),r("h2",{attrs:{id:"victoria"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#victoria"}},[e._v("#")]),e._v(" Victoria")]),e._v(" "),r("p",[e._v("Constantly under the impression that I’m six months behind on lab work, I am capital Q - Queen - of bad data practices. My computer is a graveyard of poorly labeled .csv files, featuring illustrative headers such as “redo,” “negative pressure why?” and “weird - see notes.” I was vaguely aware of the existence of data packages, but like learning Italian or traveling more, implementing them in my workflow got slotted in the category of “would be nice if I had the time.” That clemency, however, was not extended to my research lifeblood - molecular spectroscopy databases, you disorganised beauties you - nor to collaborators who often invoked the following feeling:")]),e._v(" "),r("p",[r("img",{attrs:{src:t(514),alt:"fellows-img-1"}})]),e._v(" "),r("p",[e._v("Particularly in fields where measurables aren’t tangible macro concepts (see: population) but abstract and insular conventions with many varied representations, clear descriptors of multivariate data are a must in order for that data to be easily used and reproduced. This is where data packages come in; they bundle up your data with a human and machine readable file containing, at minimum, standardised information regarding structure and contents. In this lil’ post here, we’re going to walk through this process together by packaging data together with its metadata, and then validating the data using Frictionless tools.")]),e._v(" "),r("p",[e._v("Keep on reading about Victoria’s experience packaging data in her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/victoria-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"lindsay"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#lindsay"}},[e._v("#")]),e._v(" Lindsay")]),e._v(" "),r("p",[e._v("The first tenet of the American Library Association’s Bill of Rights states: “Books and other library resources should be provided for the interest, information, and enlightenment of all people of the community the library serves” (American Library Association). Libraries are supposed to be for everyone. Unfortunately, like many other institutions, libraries were founded upon outdated and racist patriarchal heteronormative ideals that ostracise users from marginalized backgrounds. Most academic libraries in the United States use the Library of Congress Classification System to organize books, a system that inadvertently centers christian, heterosexual white males. Critical librarianship, or critical cataloging is “a movement of library workers dedicated to bringing social justice principles into our work in libraries” "),r("a",{attrs:{href:"http://critlib.org/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("critlib"),r("OutboundLink")],1),e._v(". I would like to use data science principles to explore bias in library MARC (machine readable catalog) records.")]),e._v(" "),r("p",[e._v("Read Lindsay’s Data Package blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lindsay-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"zarena"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#zarena"}},[e._v("#")]),e._v(" Zarena")]),e._v(" "),r("p",[e._v("As a social science researcher studying the research landscape in Central Asian countries, I decided to share a part of my dataset with key bibliometric information about the journal articles published by Kyrgyzstani authors between 1991-2021. The data I am going to share comes from the "),r("a",{attrs:{href:"https://www.lens.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lens"),r("OutboundLink")],1),e._v(" platform. To ensure the data quality, and to comply with the "),r("a",{attrs:{href:"https://howtofair.dk/what-is-fair/#fair-principles",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAIR principles"),r("OutboundLink")],1),e._v(", before sharing my data, I created a data package that consists of the cleaned raw data, "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#metadata-properties",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata"),r("OutboundLink")],1),e._v(", and "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#language",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("I tested two methods to create such a package. First, I tried to use the "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package programming libraries"),r("OutboundLink")],1),e._v(". This method lets you do more than just to create a data package (e.g., describe, extract, transform, and validate your data). But I found the programming libraries a bit complicated. So, I ended up using the second method, that is the browser tool "),r("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package Creator"),r("OutboundLink")],1),e._v(". It lets you create a data package without ay technical knowledge. The tool is comparatively simple and easy to navigate. It allows you to clean your dataset, change datatypes, provide a short description to your data as well as to add and edit associated metadata…")]),e._v(" "),r("p",[e._v("Keep on reading about how Zarena packaged here data in her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/zarena-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"kevin"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#kevin"}},[e._v("#")]),e._v(" Kevin")]),e._v(" "),r("p",[e._v("My research aims at understanding the transmission mechanisms of neglected vector-borne diseases. I mostly deal with data on the distribution and diversity of vectors of diseases and their infection status. The metadata would include but not be limited to the date of sample collection, location and GPS coordinates of the sites of sample collection, type of sample (blood or fly sample), the concentration of RNA or DNA extracted from the samples, and the infection status of the samples (whether the samples are infected with pathogens or not) as well as the blood meal sources of the insect vectors. All these datasets are supposed to be presented in a way that it can be understood by whoever accesses it and that information regarding the licensing and other attribution information can easily be accessed. One way to reduce friction when dealing with such huge datasets is to put them in a container that groups all the descriptive data and schema together. A schema tells us how the data is structured and the type of content that is expected in it. All this is contained in a data package that can be generated by a data package creator.")]),e._v(" "),r("p",[e._v("I am going to take you through a step by step process on how I created a data package for my dataset on sandflies diversity, infection status, and their blood-meal sources, using Frictionless Data Package Creator…")]),e._v(" "),r("p",[e._v("Read Kevin’s blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kk-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(" to know more about how he created data packages for his data.")]),e._v(" "),r("h2",{attrs:{id:"guo-qiang"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#guo-qiang"}},[e._v("#")]),e._v(" Guo Qiang")]),e._v(" "),r("p",[e._v("The dataset I am going to package is from a project which we have recently completed – “"),r("a",{attrs:{href:"https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.1003731",target:"_blank",rel:"noopener noreferrer"}},[e._v("Menopausal hormone therapy and women’s health: An umbrella review"),r("OutboundLink")],1),e._v("” which summarizes the clinical evidence on various health effects of menopausal hormone therapy in menopausal women. The full datasets are publicly available in the "),r("a",{attrs:{href:"https://osf.io/dsy37/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Science Framework"),r("OutboundLink")],1),e._v(". I am going to use one of the datasets –All-Cause Mortality.xlsx, which summarizes all the clinical trials published until 2017 investigating the effect of menopausal hormone therapy on all-cause mortality in menopausal women – to illustrate the process of creating a Data Package.")]),e._v(" "),r("p",[e._v("As the Data Package Creator currently accepts only .csv format, first I need to convert All-Cause Mortality.xlsx to .csv format…")]),e._v(" "),r("p",[e._v("Keep on reading about Guo Qiang’s experience of packaging is data in his blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/guo-qiang-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"melvin"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#melvin"}},[e._v("#")]),e._v(" Melvin")]),e._v(" "),r("p",[e._v("Being a soil science student, I felt using soil data would be useful for me to better understand this process of packaging data for future use. I got data on the impact of fertiliser recommendations on yield and felt it would be great to use it. However, this wasn’t such a good idea as I got so many error messages and clean-ups to do to suit the tabular data accepted by the data package creator ("),r("a",{attrs:{href:"http://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("create.frictionlessdata.io"),r("OutboundLink")],1),e._v("). Similarly in case you want to create a data package using someone else’s data it should either have a licence or ask to use the data.Afterwards, I got around to working with a different data set that was more straightforward and easy to work with.The data was on the infection prevalence of ‘Ca. Anaplasma camelii’ in camels and camel keds evaluated in different seasons within a year…")]),e._v(" "),r("p",[e._v("To read about the errors that Melvin got and what she learned from them, read her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("hr"),e._v(" "),r("p",[e._v("You can read all the Frictionless Data Fellows’ blogs on the dedicated website: "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fellows.frictionlessdata.io/"),r("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{514:function(e,a,t){e.exports=t.p+"assets/img/fellows-img-1.967b02cd.png"},688:function(e,a,t){"use strict";t.r(a);var r=t(29),o=Object(r.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("With the Frictionless Data Reproducible Research Fellows Programme, supported by the Sloan Foundation and Open Knowledge Foundation, we are recruiting and training early career researchers to become champions of the Frictionless Data tools and approaches in their field. Fellows learn about Frictionless Data, including how to use Frictionless tools in their domains to improve reproducible research workflows, and how to advocate for open science.")]),e._v(" "),r("p",[e._v("As part of their training, we asked the 3rd cohort of Frictionless Fellows to package their research data in Frictionless "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Packages"),r("OutboundLink")],1),e._v(". Here’s what they reported on their experience:")]),e._v(" "),r("h2",{attrs:{id:"victoria"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#victoria"}},[e._v("#")]),e._v(" Victoria")]),e._v(" "),r("p",[e._v("Constantly under the impression that I’m six months behind on lab work, I am capital Q - Queen - of bad data practices. My computer is a graveyard of poorly labeled .csv files, featuring illustrative headers such as “redo,” “negative pressure why?” and “weird - see notes.” I was vaguely aware of the existence of data packages, but like learning Italian or traveling more, implementing them in my workflow got slotted in the category of “would be nice if I had the time.” That clemency, however, was not extended to my research lifeblood - molecular spectroscopy databases, you disorganised beauties you - nor to collaborators who often invoked the following feeling:")]),e._v(" "),r("p",[r("img",{attrs:{src:t(514),alt:"fellows-img-1"}})]),e._v(" "),r("p",[e._v("Particularly in fields where measurables aren’t tangible macro concepts (see: population) but abstract and insular conventions with many varied representations, clear descriptors of multivariate data are a must in order for that data to be easily used and reproduced. This is where data packages come in; they bundle up your data with a human and machine readable file containing, at minimum, standardised information regarding structure and contents. In this lil’ post here, we’re going to walk through this process together by packaging data together with its metadata, and then validating the data using Frictionless tools.")]),e._v(" "),r("p",[e._v("Keep on reading about Victoria’s experience packaging data in her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/victoria-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"lindsay"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#lindsay"}},[e._v("#")]),e._v(" Lindsay")]),e._v(" "),r("p",[e._v("The first tenet of the American Library Association’s Bill of Rights states: “Books and other library resources should be provided for the interest, information, and enlightenment of all people of the community the library serves” (American Library Association). Libraries are supposed to be for everyone. Unfortunately, like many other institutions, libraries were founded upon outdated and racist patriarchal heteronormative ideals that ostracise users from marginalized backgrounds. Most academic libraries in the United States use the Library of Congress Classification System to organize books, a system that inadvertently centers christian, heterosexual white males. Critical librarianship, or critical cataloging is “a movement of library workers dedicated to bringing social justice principles into our work in libraries” "),r("a",{attrs:{href:"http://critlib.org/about/",target:"_blank",rel:"noopener noreferrer"}},[e._v("critlib"),r("OutboundLink")],1),e._v(". I would like to use data science principles to explore bias in library MARC (machine readable catalog) records.")]),e._v(" "),r("p",[e._v("Read Lindsay’s Data Package blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/lindsay-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"zarena"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#zarena"}},[e._v("#")]),e._v(" Zarena")]),e._v(" "),r("p",[e._v("As a social science researcher studying the research landscape in Central Asian countries, I decided to share a part of my dataset with key bibliometric information about the journal articles published by Kyrgyzstani authors between 1991-2021. The data I am going to share comes from the "),r("a",{attrs:{href:"https://www.lens.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Lens"),r("OutboundLink")],1),e._v(" platform. To ensure the data quality, and to comply with the "),r("a",{attrs:{href:"https://howtofair.dk/what-is-fair/#fair-principles",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAIR principles"),r("OutboundLink")],1),e._v(", before sharing my data, I created a data package that consists of the cleaned raw data, "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#metadata-properties",target:"_blank",rel:"noopener noreferrer"}},[e._v("metadata"),r("OutboundLink")],1),e._v(", and "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/#language",target:"_blank",rel:"noopener noreferrer"}},[e._v("schema"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("p",[e._v("I tested two methods to create such a package. First, I tried to use the "),r("a",{attrs:{href:"https://framework.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data package programming libraries"),r("OutboundLink")],1),e._v(". This method lets you do more than just to create a data package (e.g., describe, extract, transform, and validate your data). But I found the programming libraries a bit complicated. So, I ended up using the second method, that is the browser tool "),r("a",{attrs:{href:"https://create.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Package Creator"),r("OutboundLink")],1),e._v(". It lets you create a data package without ay technical knowledge. The tool is comparatively simple and easy to navigate. It allows you to clean your dataset, change datatypes, provide a short description to your data as well as to add and edit associated metadata…")]),e._v(" "),r("p",[e._v("Keep on reading about how Zarena packaged here data in her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/zarena-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"kevin"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#kevin"}},[e._v("#")]),e._v(" Kevin")]),e._v(" "),r("p",[e._v("My research aims at understanding the transmission mechanisms of neglected vector-borne diseases. I mostly deal with data on the distribution and diversity of vectors of diseases and their infection status. The metadata would include but not be limited to the date of sample collection, location and GPS coordinates of the sites of sample collection, type of sample (blood or fly sample), the concentration of RNA or DNA extracted from the samples, and the infection status of the samples (whether the samples are infected with pathogens or not) as well as the blood meal sources of the insect vectors. All these datasets are supposed to be presented in a way that it can be understood by whoever accesses it and that information regarding the licensing and other attribution information can easily be accessed. One way to reduce friction when dealing with such huge datasets is to put them in a container that groups all the descriptive data and schema together. A schema tells us how the data is structured and the type of content that is expected in it. All this is contained in a data package that can be generated by a data package creator.")]),e._v(" "),r("p",[e._v("I am going to take you through a step by step process on how I created a data package for my dataset on sandflies diversity, infection status, and their blood-meal sources, using Frictionless Data Package Creator…")]),e._v(" "),r("p",[e._v("Read Kevin’s blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/kk-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(" to know more about how he created data packages for his data.")]),e._v(" "),r("h2",{attrs:{id:"guo-qiang"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#guo-qiang"}},[e._v("#")]),e._v(" Guo Qiang")]),e._v(" "),r("p",[e._v("The dataset I am going to package is from a project which we have recently completed – “"),r("a",{attrs:{href:"https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.1003731",target:"_blank",rel:"noopener noreferrer"}},[e._v("Menopausal hormone therapy and women’s health: An umbrella review"),r("OutboundLink")],1),e._v("” which summarizes the clinical evidence on various health effects of menopausal hormone therapy in menopausal women. The full datasets are publicly available in the "),r("a",{attrs:{href:"https://osf.io/dsy37/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Science Framework"),r("OutboundLink")],1),e._v(". I am going to use one of the datasets –All-Cause Mortality.xlsx, which summarizes all the clinical trials published until 2017 investigating the effect of menopausal hormone therapy on all-cause mortality in menopausal women – to illustrate the process of creating a Data Package.")]),e._v(" "),r("p",[e._v("As the Data Package Creator currently accepts only .csv format, first I need to convert All-Cause Mortality.xlsx to .csv format…")]),e._v(" "),r("p",[e._v("Keep on reading about Guo Qiang’s experience of packaging is data in his blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/guo-qiang-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("h2",{attrs:{id:"melvin"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#melvin"}},[e._v("#")]),e._v(" Melvin")]),e._v(" "),r("p",[e._v("Being a soil science student, I felt using soil data would be useful for me to better understand this process of packaging data for future use. I got data on the impact of fertiliser recommendations on yield and felt it would be great to use it. However, this wasn’t such a good idea as I got so many error messages and clean-ups to do to suit the tabular data accepted by the data package creator ("),r("a",{attrs:{href:"http://create.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("create.frictionlessdata.io"),r("OutboundLink")],1),e._v("). Similarly in case you want to create a data package using someone else’s data it should either have a licence or ask to use the data.Afterwards, I got around to working with a different data set that was more straightforward and easy to work with.The data was on the infection prevalence of ‘Ca. Anaplasma camelii’ in camels and camel keds evaluated in different seasons within a year…")]),e._v(" "),r("p",[e._v("To read about the errors that Melvin got and what she learned from them, read her blog "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/blog/melvin-datapackage-blog/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")]),e._v(" "),r("hr"),e._v(" "),r("p",[e._v("You can read all the Frictionless Data Fellows’ blogs on the dedicated website: "),r("a",{attrs:{href:"https://fellows.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://fellows.frictionlessdata.io/"),r("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/67.c668ed43.js b/assets/js/67.3e7762b2.js similarity index 98% rename from assets/js/67.c668ed43.js rename to assets/js/67.3e7762b2.js index 63916aa41..261879b05 100644 --- a/assets/js/67.c668ed43.js +++ b/assets/js/67.3e7762b2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{572:function(t,a,e){"use strict";e.r(a);var r=e(29),o=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("p",[t._v("This post provides you with a template for writing Frictionless Data tutorials. Specifically, tutorials of the form: "),e("strong",[t._v("How to do X thing using Y Frictionless Data tool")]),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("You want to start introducting what you are doing e.g.")]),t._v(" "),e("blockquote",[e("p",[t._v("In this tutorial you’ll learn how to {do a thing using a tool} to {provide some benefit} (This first sentence may be inspired by a "),e("a",{attrs:{href:"http://frictionlessdata.io/user-stories/",target:"_blank",rel:"noopener noreferrer"}},[t._v("user story"),e("OutboundLink")],1),t._v(").")])]),t._v(" "),e("p",[t._v("Clearly state the objective of your tutorial in the title and then once again in more detail at the very beginning of the tutorial. This gives readers an idea of what to expect and helps them determine if they want to continue reading.")]),t._v(" "),e("blockquote",[e("p",[e("strong",[t._v("Tutorial time")]),t._v(" : 20 minutes")]),t._v(" "),e("p",[e("strong",[t._v("Audience")]),t._v(" : Beginner Data Packagers {user role} with {skill level}.")])]),t._v(" "),e("p",[t._v("Then continue like this:")]),t._v(" "),e("blockquote",[e("h2",{attrs:{id:"what-you-ll-need"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-you-ll-need"}},[t._v("#")]),t._v(" What you’ll need")]),t._v(" "),e("p",[t._v("You’ll need a basic understanding of:")]),t._v(" "),e("ul",[e("li",[t._v("JSON syntax")]),t._v(" "),e("li",[t._v("how to run commands in Terminal")])]),t._v(" "),e("p",[t._v("To complete this tutorial you’ll need:")]),t._v(" "),e("ul",[e("li",[t._v("a computer (macOS or Windows) with access to the internet")]),t._v(" "),e("li",[t._v("an account on "),e("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),e("OutboundLink")],1),t._v(" ("),e("a",{attrs:{href:"https://datahub.ckan.io/about",target:"_blank",rel:"noopener noreferrer"}},[t._v("here’s how"),e("OutboundLink")],1),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"introduction-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction-2"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Introduce any basic concepts.")]),t._v(" "),e("p",[t._v("To {achieve the benefit} we’ll guide you through these steps:")]),t._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"#1-import-the-data"}},[t._v("import the data")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#2-generate-a-table-schema"}},[t._v("generate a table schema")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#3-create-a-data-package"}},[t._v("create a data package")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#4-publish-the-data-package"}},[t._v("publish the data package")])])]),t._v(" "),e("h3",{attrs:{id:"_1-import-the-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_1-import-the-data"}},[t._v("#")]),t._v(" 1. Import the data")]),t._v(" "),e("p",[t._v("Write in a friendly, conversational style. Using humor is fine.")]),t._v(" "),e("h3",{attrs:{id:"_2-generate-a-table-schema"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_2-generate-a-table-schema"}},[t._v("#")]),t._v(" 2. Generate a table schema")]),t._v(" "),e("p",[t._v("Include pictures. Highlight key items on screenshots. Make sure pictures can be view in fullsize.")]),t._v(" "),e("h3",{attrs:{id:"_3-create-a-data-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_3-create-a-data-package"}},[t._v("#")]),t._v(" 3. Create a data package")]),t._v(" "),e("p",[t._v("Explain why something must be done, not just how to do it.")]),t._v(" "),e("h3",{attrs:{id:"_4-publish-the-data-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_4-publish-the-data-package"}},[t._v("#")]),t._v(" 4. Publish the data package")]),t._v(" "),e("p",[t._v("In this step you’ll…")]),t._v(" "),e("h2",{attrs:{id:"congratulations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#congratulations"}},[t._v("#")]),t._v(" Congratulations")]),t._v(" "),e("p",[t._v("In 4 simple steps you’ve learned how {do a thing}. With this new knowledge, now you can {achieve a benefit}.")]),t._v(" "),e("p",[t._v("Now go {do something}")]),t._v(" "),e("h2",{attrs:{id:"learn-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#learn-more"}},[t._v("#")]),t._v(" Learn more")]),t._v(" "),e("h3",{attrs:{id:"related-guides"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#related-guides"}},[t._v("#")]),t._v(" Related Guides")]),t._v(" "),e("ul",[e("li",[t._v("Tabular Data Package guide - "),e("a",{attrs:{href:"http://frictionlessdata.io/docs/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://frictionlessdata.io/docs/tabular-data-package/"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"references"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/specs/tabular-data-package/"}},[t._v("Tabular Data Package specification")])],1)])])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{573:function(t,a,e){"use strict";e.r(a);var r=e(29),o=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("p",[t._v("This post provides you with a template for writing Frictionless Data tutorials. Specifically, tutorials of the form: "),e("strong",[t._v("How to do X thing using Y Frictionless Data tool")]),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("You want to start introducting what you are doing e.g.")]),t._v(" "),e("blockquote",[e("p",[t._v("In this tutorial you’ll learn how to {do a thing using a tool} to {provide some benefit} (This first sentence may be inspired by a "),e("a",{attrs:{href:"http://frictionlessdata.io/user-stories/",target:"_blank",rel:"noopener noreferrer"}},[t._v("user story"),e("OutboundLink")],1),t._v(").")])]),t._v(" "),e("p",[t._v("Clearly state the objective of your tutorial in the title and then once again in more detail at the very beginning of the tutorial. This gives readers an idea of what to expect and helps them determine if they want to continue reading.")]),t._v(" "),e("blockquote",[e("p",[e("strong",[t._v("Tutorial time")]),t._v(" : 20 minutes")]),t._v(" "),e("p",[e("strong",[t._v("Audience")]),t._v(" : Beginner Data Packagers {user role} with {skill level}.")])]),t._v(" "),e("p",[t._v("Then continue like this:")]),t._v(" "),e("blockquote",[e("h2",{attrs:{id:"what-you-ll-need"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#what-you-ll-need"}},[t._v("#")]),t._v(" What you’ll need")]),t._v(" "),e("p",[t._v("You’ll need a basic understanding of:")]),t._v(" "),e("ul",[e("li",[t._v("JSON syntax")]),t._v(" "),e("li",[t._v("how to run commands in Terminal")])]),t._v(" "),e("p",[t._v("To complete this tutorial you’ll need:")]),t._v(" "),e("ul",[e("li",[t._v("a computer (macOS or Windows) with access to the internet")]),t._v(" "),e("li",[t._v("an account on "),e("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("datahub.io"),e("OutboundLink")],1),t._v(" ("),e("a",{attrs:{href:"https://datahub.ckan.io/about",target:"_blank",rel:"noopener noreferrer"}},[t._v("here’s how"),e("OutboundLink")],1),t._v(")")])]),t._v(" "),e("h2",{attrs:{id:"introduction-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction-2"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Introduce any basic concepts.")]),t._v(" "),e("p",[t._v("To {achieve the benefit} we’ll guide you through these steps:")]),t._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"#1-import-the-data"}},[t._v("import the data")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#2-generate-a-table-schema"}},[t._v("generate a table schema")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#3-create-a-data-package"}},[t._v("create a data package")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#4-publish-the-data-package"}},[t._v("publish the data package")])])]),t._v(" "),e("h3",{attrs:{id:"_1-import-the-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_1-import-the-data"}},[t._v("#")]),t._v(" 1. Import the data")]),t._v(" "),e("p",[t._v("Write in a friendly, conversational style. Using humor is fine.")]),t._v(" "),e("h3",{attrs:{id:"_2-generate-a-table-schema"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_2-generate-a-table-schema"}},[t._v("#")]),t._v(" 2. Generate a table schema")]),t._v(" "),e("p",[t._v("Include pictures. Highlight key items on screenshots. Make sure pictures can be view in fullsize.")]),t._v(" "),e("h3",{attrs:{id:"_3-create-a-data-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_3-create-a-data-package"}},[t._v("#")]),t._v(" 3. Create a data package")]),t._v(" "),e("p",[t._v("Explain why something must be done, not just how to do it.")]),t._v(" "),e("h3",{attrs:{id:"_4-publish-the-data-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_4-publish-the-data-package"}},[t._v("#")]),t._v(" 4. Publish the data package")]),t._v(" "),e("p",[t._v("In this step you’ll…")]),t._v(" "),e("h2",{attrs:{id:"congratulations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#congratulations"}},[t._v("#")]),t._v(" Congratulations")]),t._v(" "),e("p",[t._v("In 4 simple steps you’ve learned how {do a thing}. With this new knowledge, now you can {achieve a benefit}.")]),t._v(" "),e("p",[t._v("Now go {do something}")]),t._v(" "),e("h2",{attrs:{id:"learn-more"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#learn-more"}},[t._v("#")]),t._v(" Learn more")]),t._v(" "),e("h3",{attrs:{id:"related-guides"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#related-guides"}},[t._v("#")]),t._v(" Related Guides")]),t._v(" "),e("ul",[e("li",[t._v("Tabular Data Package guide - "),e("a",{attrs:{href:"http://frictionlessdata.io/docs/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://frictionlessdata.io/docs/tabular-data-package/"),e("OutboundLink")],1)])]),t._v(" "),e("h3",{attrs:{id:"references"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#references"}},[t._v("#")]),t._v(" References")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/specs/tabular-data-package/"}},[t._v("Tabular Data Package specification")])],1)])])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/69.dab71250.js b/assets/js/69.46efc422.js similarity index 98% rename from assets/js/69.dab71250.js rename to assets/js/69.46efc422.js index 13615ce67..5dd624189 100644 --- a/assets/js/69.dab71250.js +++ b/assets/js/69.46efc422.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{577:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Georges Labreche for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("I arrived in Kosovo from New York back in 2014 in order to conduct field research for my Masters thesis in International Affairs: I was studying the distinct phenomenon of Digital State-Building, i.e. the use of online digital technologies to promote statehood. I didn’t pack much on my trip here but did bring along a lot of entrepreneurial drive to start a digital agency with strong elements of corporate social responsibility and tech community building. Initially, I had hoped to leverage my background as a Software Engineer to build a small service-oriented startup, but in light of Kosovo’s ongoing state-building processes and push for good governance and anti-corruption, I saw the opportunity to establish a civic-tech NGO, "),a("a",{attrs:{href:"https://opendatakosovo.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Kosovo"),a("OutboundLink")],1),e._v(" (ODK), as a means of getting local techies to play an active part in state-building by applying their digital skills towards contributing to increasing government transparency and accountability.")]),e._v(" "),a("p",[e._v("Work aside, I have a passion for continuous learning so if you were to meet me I would probably steer the conversation towards what I recently learned on my latest online edX course. My current deep-dives are around space, physics, astronautics and robotics and it is likely that you would find me happily struggling on my homework for online courses in these fields or getting excited about the next scheduled SpaceX launch in my spare time. I am also passionate about travel, particularly experiences that combine visits to UNESCO World Heritage sites, discovery of local cuisines, as well as hiking and mountain climbing in the great outdoors.")]),e._v(" "),a("p",[e._v("I first heard about Frictionless Data from "),a("a",{attrs:{href:"https://tin.fyi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tin Geber"),a("OutboundLink")],1),e._v(" (formerly of The Engine Room). He directly contacted me with a link to the Frictionless Data Tool Fund grant and asked me to apply. A couple of days later, "),a("a",{attrs:{href:"https://fr.linkedin.com/in/andrew-russell-b4a4665",target:"_blank",rel:"noopener noreferrer"}},[e._v("Andrew Russell"),a("OutboundLink")],1),e._v(", the UN Development Coordinator and UNDP Resident Representative in Kosovo, asked me about Frictionless Data and the Tool Fund grant on Twitter and I have since had the opportunity to explain the concept behind Frictionless Data to several people.")]),e._v(" "),a("p",[e._v("At first I was just really excited about using the already available Frictionless Data Python library for a procurement data importer we were working on for an Open Contracting Data Standard (OCDS) project. Here in Kosovo, my organization has liberated public procurement datasets that we’ve transformed into an open format but without any strong nor consistent data processing methodology. As I went through the specifications, it became clear to me that it was exactly what our procurement data liberation workflow was missing. I also wanted to do more than just use it, I wanted to contribute to it and make it more accessible to other developer communities, and especially in Java, which I am proficient in.")]),e._v(" "),a("p",[e._v("Data is messy and, for developers, cleaning and processing data from one project to another can quickly turn an awesome end-product idea into a burdensome chore. Data packages and Frictionless Data tools and libraries are important because they allow developers to focus more on the end-product itself without having to worry about heavy lifting in the data processing pipeline.")]),e._v(" "),a("p",[e._v("Members of programming communities are, as a whole, involved in infinitely diverse projects and problem solving initiatives. Working with that diversity allows us to explore use cases that we would never have imagined when conceptualizing such libraries and tapping into such an ecosystem of programmers would serve to enhance future versions of the libraries.")]),e._v(" "),a("p",[e._v("All my work around extending implementation of Frictionless Data libraries in Java will be available on Github in these two repositories: "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-java"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-java"),a("OutboundLink")],1),e._v(", and comments, forks and pull requests are welcome.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{579:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Georges Labreche for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("I arrived in Kosovo from New York back in 2014 in order to conduct field research for my Masters thesis in International Affairs: I was studying the distinct phenomenon of Digital State-Building, i.e. the use of online digital technologies to promote statehood. I didn’t pack much on my trip here but did bring along a lot of entrepreneurial drive to start a digital agency with strong elements of corporate social responsibility and tech community building. Initially, I had hoped to leverage my background as a Software Engineer to build a small service-oriented startup, but in light of Kosovo’s ongoing state-building processes and push for good governance and anti-corruption, I saw the opportunity to establish a civic-tech NGO, "),a("a",{attrs:{href:"https://opendatakosovo.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Data Kosovo"),a("OutboundLink")],1),e._v(" (ODK), as a means of getting local techies to play an active part in state-building by applying their digital skills towards contributing to increasing government transparency and accountability.")]),e._v(" "),a("p",[e._v("Work aside, I have a passion for continuous learning so if you were to meet me I would probably steer the conversation towards what I recently learned on my latest online edX course. My current deep-dives are around space, physics, astronautics and robotics and it is likely that you would find me happily struggling on my homework for online courses in these fields or getting excited about the next scheduled SpaceX launch in my spare time. I am also passionate about travel, particularly experiences that combine visits to UNESCO World Heritage sites, discovery of local cuisines, as well as hiking and mountain climbing in the great outdoors.")]),e._v(" "),a("p",[e._v("I first heard about Frictionless Data from "),a("a",{attrs:{href:"https://tin.fyi/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Tin Geber"),a("OutboundLink")],1),e._v(" (formerly of The Engine Room). He directly contacted me with a link to the Frictionless Data Tool Fund grant and asked me to apply. A couple of days later, "),a("a",{attrs:{href:"https://fr.linkedin.com/in/andrew-russell-b4a4665",target:"_blank",rel:"noopener noreferrer"}},[e._v("Andrew Russell"),a("OutboundLink")],1),e._v(", the UN Development Coordinator and UNDP Resident Representative in Kosovo, asked me about Frictionless Data and the Tool Fund grant on Twitter and I have since had the opportunity to explain the concept behind Frictionless Data to several people.")]),e._v(" "),a("p",[e._v("At first I was just really excited about using the already available Frictionless Data Python library for a procurement data importer we were working on for an Open Contracting Data Standard (OCDS) project. Here in Kosovo, my organization has liberated public procurement datasets that we’ve transformed into an open format but without any strong nor consistent data processing methodology. As I went through the specifications, it became clear to me that it was exactly what our procurement data liberation workflow was missing. I also wanted to do more than just use it, I wanted to contribute to it and make it more accessible to other developer communities, and especially in Java, which I am proficient in.")]),e._v(" "),a("p",[e._v("Data is messy and, for developers, cleaning and processing data from one project to another can quickly turn an awesome end-product idea into a burdensome chore. Data packages and Frictionless Data tools and libraries are important because they allow developers to focus more on the end-product itself without having to worry about heavy lifting in the data processing pipeline.")]),e._v(" "),a("p",[e._v("Members of programming communities are, as a whole, involved in infinitely diverse projects and problem solving initiatives. Working with that diversity allows us to explore use cases that we would never have imagined when conceptualizing such libraries and tapping into such an ecosystem of programmers would serve to enhance future versions of the libraries.")]),e._v(" "),a("p",[e._v("All my work around extending implementation of Frictionless Data libraries in Java will be available on Github in these two repositories: "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-java"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-java"),a("OutboundLink")],1),e._v(", and comments, forks and pull requests are welcome.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/70.70153266.js b/assets/js/70.542e1289.js similarity index 98% rename from assets/js/70.70153266.js rename to assets/js/70.542e1289.js index dfec36801..70c7aa497 100644 --- a/assets/js/70.70153266.js +++ b/assets/js/70.542e1289.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{578:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Matt Thompson for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("My name is Matt Thompson, I am from Bristol, UK, and work as a lecturer in Creative Computing at Bath Spa University. I have been involved in the Clojure community for a while, running the "),a("a",{attrs:{href:"https://bristolclojurians.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bristol Clojurians group"),a("OutboundLink")],1),e._v(" since 2014. I was involved in the "),a("a",{attrs:{href:"http://www.cs.bath.ac.uk/dm4t/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DM4T project"),a("OutboundLink")],1),e._v(" during my postdoc at Bath University, where we used Frictionless Data software to create metadata for large datasets recording domestic energy usage.")]),e._v(" "),a("p",[e._v("We worked with Open Knowledge International’s Developer Advocate, Dan Fowler, on the DM4T project at Bath in a collaboration which turned into a soon-to-be-published pilot study for the project. "),a("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dan showed us"),a("OutboundLink")],1),e._v(" how the Frictionless Data software could allow us to quickly automate ways to annotate our datasets with metadata. We came away excited about the possibilities that the Frictionless Data software enable for the datasets we’re working with.")]),e._v(" "),a("p",[e._v("When the "),a("a",{attrs:{href:"https://blog.okfn.org/2017/03/01/announcing-the-frictionless-data-tool-fund/",target:"_blank",rel:"noopener noreferrer"}},[e._v("call for applications"),a("OutboundLink")],1),e._v(" for Frictionless Data’s Tool Fund was made in May 2017, I was already building tools in Clojure for working with Frictionless Data as part of DM4T, and I decided to apply to enable me to flesh them out into well-tested, documented libraries.")]),e._v(" "),a("p",[e._v("The problem we had with the DM4T project is that the same kinds of data were being collected by many different projects run by different universities across the country. In addition to describing the energy usage of different appliances, the data also includes different types of readings as well (electric usage, gas usage, humidity levels, temperature readings, etc). Different projects store their data in different ways, with some using mySQL databases, and others using CSV tables. The Frictionless Data software allow us to create simple JSON files describing the metadata for each project in a uniform way that is easy for the collaborating researchers to understand and implement.")]),e._v(" "),a("p",[e._v("Once datasets are put into the public domain, it is extremely useful to also have the metadata that describe them. This would enable people to, for example, run queries across multiple datasets. One example in our case would be to ask: “What was the energy usage of all homes in Exeter for January 2014?”. This information would be contained in datasets that are curated by different people, and so we need uniform metadata in order to be able to make these kinds of queries.")]),e._v(" "),a("p",[e._v("We run Clojure events and workshops twice a month as part of the "),a("a",{attrs:{href:"https://bristolclojurians.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bristol Clojurians group"),a("OutboundLink")],1),e._v(", so interested people can drop in and discuss the work we’re doing with Frictionless Data. I’m also planning to give a talk about Frictionless Data at one of the Clojurian events.")]),e._v(" "),a("p",[e._v("You can follow the development of the Clojure libraries on the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clojure Data Package library"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-clj",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clojure Table Schema library"),a("OutboundLink")],1),e._v(" Github repositories.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{577:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Matt Thompson for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("My name is Matt Thompson, I am from Bristol, UK, and work as a lecturer in Creative Computing at Bath Spa University. I have been involved in the Clojure community for a while, running the "),a("a",{attrs:{href:"https://bristolclojurians.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bristol Clojurians group"),a("OutboundLink")],1),e._v(" since 2014. I was involved in the "),a("a",{attrs:{href:"http://www.cs.bath.ac.uk/dm4t/",target:"_blank",rel:"noopener noreferrer"}},[e._v("DM4T project"),a("OutboundLink")],1),e._v(" during my postdoc at Bath University, where we used Frictionless Data software to create metadata for large datasets recording domestic energy usage.")]),e._v(" "),a("p",[e._v("We worked with Open Knowledge International’s Developer Advocate, Dan Fowler, on the DM4T project at Bath in a collaboration which turned into a soon-to-be-published pilot study for the project. "),a("a",{attrs:{href:"https://github.com/frictionlessdata/pilot-dm4t",target:"_blank",rel:"noopener noreferrer"}},[e._v("Dan showed us"),a("OutboundLink")],1),e._v(" how the Frictionless Data software could allow us to quickly automate ways to annotate our datasets with metadata. We came away excited about the possibilities that the Frictionless Data software enable for the datasets we’re working with.")]),e._v(" "),a("p",[e._v("When the "),a("a",{attrs:{href:"https://blog.okfn.org/2017/03/01/announcing-the-frictionless-data-tool-fund/",target:"_blank",rel:"noopener noreferrer"}},[e._v("call for applications"),a("OutboundLink")],1),e._v(" for Frictionless Data’s Tool Fund was made in May 2017, I was already building tools in Clojure for working with Frictionless Data as part of DM4T, and I decided to apply to enable me to flesh them out into well-tested, documented libraries.")]),e._v(" "),a("p",[e._v("The problem we had with the DM4T project is that the same kinds of data were being collected by many different projects run by different universities across the country. In addition to describing the energy usage of different appliances, the data also includes different types of readings as well (electric usage, gas usage, humidity levels, temperature readings, etc). Different projects store their data in different ways, with some using mySQL databases, and others using CSV tables. The Frictionless Data software allow us to create simple JSON files describing the metadata for each project in a uniform way that is easy for the collaborating researchers to understand and implement.")]),e._v(" "),a("p",[e._v("Once datasets are put into the public domain, it is extremely useful to also have the metadata that describe them. This would enable people to, for example, run queries across multiple datasets. One example in our case would be to ask: “What was the energy usage of all homes in Exeter for January 2014?”. This information would be contained in datasets that are curated by different people, and so we need uniform metadata in order to be able to make these kinds of queries.")]),e._v(" "),a("p",[e._v("We run Clojure events and workshops twice a month as part of the "),a("a",{attrs:{href:"https://bristolclojurians.github.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bristol Clojurians group"),a("OutboundLink")],1),e._v(", so interested people can drop in and discuss the work we’re doing with Frictionless Data. I’m also planning to give a talk about Frictionless Data at one of the Clojurian events.")]),e._v(" "),a("p",[e._v("You can follow the development of the Clojure libraries on the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clojure Data Package library"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-clj",target:"_blank",rel:"noopener noreferrer"}},[e._v("Clojure Table Schema library"),a("OutboundLink")],1),e._v(" Github repositories.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/72.c80b57c7.js b/assets/js/72.58029e7d.js similarity index 98% rename from assets/js/72.c80b57c7.js rename to assets/js/72.58029e7d.js index 8757a6810..c570b451b 100644 --- a/assets/js/72.c80b57c7.js +++ b/assets/js/72.58029e7d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{582:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Daniel Fireman for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("I was born in "),a("a",{attrs:{href:"https://www.google.com/search?site=&tbm=isch&source=hp&biw=1600&bih=783&q=Macei%C3%B3&oq=Macei%C3%B3&gs_l=img.3..0l7j0i30k1l3.707.4892.0.5214.9.7.0.0.0.0.245.904.0j1j3.4.0....0...1.1.64.img..5.4.903.0..35i39k1.p1SYqvZtcYw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Maceió"),a("OutboundLink")],1),e._v(", a sunny coastal city in the Northeast of Brazil. It was 20th century still when I had a first contact with an Intel 80386 and installed Conectiva Linux Guarani 3.0. A lot has happened since, for instance, a bachelor’s degree in Computer Science at UFCG after three years as a research assistant in the Distributed Systems Lab (LSD). It was already the 21st century when I realized that distributed and scalable systems were the way to go. I kept on studying the field and pursued a MSc at UFMG. From there I joined Google and spent 6 happy years working at multiple offices (NYC, ZRH, BHZ). I’ve got the chance to work on a myriad of projects, ranging from social networks to Google’s default Java HTTP/RPC server framework. Currently, I’m back to UFCG doing a Ph.D. in cloud computing performance. It is easy to find me at hackathons and other efforts to increase transparency of public data. I have also been busy working on projects like "),a("a",{attrs:{href:"http://www.madrid.org/cs/Satellite?pagename=PortalContratacion/Page/PCON_home",target:"_blank",rel:"noopener noreferrer"}},[e._v("contratospublicos.info"),a("OutboundLink")],1),e._v(" and Frictionless Data, using Go to improve data transparency in Brazil and around the world.")]),e._v(" "),a("p",[e._v("I started following "),a("a",{attrs:{href:"https://twitter.com/OKFN",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International (OKI) on Twitter"),a("OutboundLink")],1),e._v(" after watching a talk from "),a("a",{attrs:{href:"https://github.com/vitorbaptista",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vitor Baptista"),a("OutboundLink")],1),e._v(" at UFCG. I learnt about Frictionless Data from posts by OKI and liked the overall idea a lot. I have been a Golang enthusiast for a while now, but I hadn’t thought of applying to the fund until I had a quick chat with "),a("a",{attrs:{href:"https://github.com/nazareno",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nazareno Andrade"),a("OutboundLink")],1),e._v(" that started with Golang and ended with: “what about the "),a("a",{attrs:{href:"https://toolfund.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Tool Fund"),a("OutboundLink")],1),e._v("?”")]),e._v(" "),a("p",[e._v("Go has a lot to deliver in terms of approximating simplicity of reading/writing, correctness, and performance. I believe bringing the experience and solid specifications of Frictionless Data to the Go ecosystem will not only make data description, validation and processing easier and faster, but also help to decrease the distance between data analysis/processing and production serving systems, resulting in simpler and more solid infrastructure.")]),e._v(" "),a("p",[e._v("In the coming weeks, I hope to use the Tool Fund grant I received to bring Go’s performance and concurrency capabilities to data processing and to have a set of tools distributed as standalone and multi-platform binaries which are very easy to download and install. I am currently working on my Ph.D. and one pitfall I have come across is the use of one environment/system to collect/generate data and another to process. I will be working to alleviate this issue in order to make it easier to process tabular data in Go.")]),e._v(" "),a("p",[e._v("From the developer’s perspective, it is really great to use open source software. This is especially true when the community around the software fosters it’s usage and welcome contributors. That ends up increasing the overall quality of the software, which benefits all users.")]),e._v(" "),a("p",[e._v("The source code will be hosted at Github’s "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-go"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-go"),a("OutboundLink")],1),e._v(" repositories. We are going to use issues to track development progress and next steps.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{581:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Daniel Fireman for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("p",[e._v("I was born in "),a("a",{attrs:{href:"https://www.google.com/search?site=&tbm=isch&source=hp&biw=1600&bih=783&q=Macei%C3%B3&oq=Macei%C3%B3&gs_l=img.3..0l7j0i30k1l3.707.4892.0.5214.9.7.0.0.0.0.245.904.0j1j3.4.0....0...1.1.64.img..5.4.903.0..35i39k1.p1SYqvZtcYw",target:"_blank",rel:"noopener noreferrer"}},[e._v("Maceió"),a("OutboundLink")],1),e._v(", a sunny coastal city in the Northeast of Brazil. It was 20th century still when I had a first contact with an Intel 80386 and installed Conectiva Linux Guarani 3.0. A lot has happened since, for instance, a bachelor’s degree in Computer Science at UFCG after three years as a research assistant in the Distributed Systems Lab (LSD). It was already the 21st century when I realized that distributed and scalable systems were the way to go. I kept on studying the field and pursued a MSc at UFMG. From there I joined Google and spent 6 happy years working at multiple offices (NYC, ZRH, BHZ). I’ve got the chance to work on a myriad of projects, ranging from social networks to Google’s default Java HTTP/RPC server framework. Currently, I’m back to UFCG doing a Ph.D. in cloud computing performance. It is easy to find me at hackathons and other efforts to increase transparency of public data. I have also been busy working on projects like "),a("a",{attrs:{href:"http://www.madrid.org/cs/Satellite?pagename=PortalContratacion/Page/PCON_home",target:"_blank",rel:"noopener noreferrer"}},[e._v("contratospublicos.info"),a("OutboundLink")],1),e._v(" and Frictionless Data, using Go to improve data transparency in Brazil and around the world.")]),e._v(" "),a("p",[e._v("I started following "),a("a",{attrs:{href:"https://twitter.com/OKFN",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge International (OKI) on Twitter"),a("OutboundLink")],1),e._v(" after watching a talk from "),a("a",{attrs:{href:"https://github.com/vitorbaptista",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vitor Baptista"),a("OutboundLink")],1),e._v(" at UFCG. I learnt about Frictionless Data from posts by OKI and liked the overall idea a lot. I have been a Golang enthusiast for a while now, but I hadn’t thought of applying to the fund until I had a quick chat with "),a("a",{attrs:{href:"https://github.com/nazareno",target:"_blank",rel:"noopener noreferrer"}},[e._v("Nazareno Andrade"),a("OutboundLink")],1),e._v(" that started with Golang and ended with: “what about the "),a("a",{attrs:{href:"https://toolfund.frictionlessdata.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Tool Fund"),a("OutboundLink")],1),e._v("?”")]),e._v(" "),a("p",[e._v("Go has a lot to deliver in terms of approximating simplicity of reading/writing, correctness, and performance. I believe bringing the experience and solid specifications of Frictionless Data to the Go ecosystem will not only make data description, validation and processing easier and faster, but also help to decrease the distance between data analysis/processing and production serving systems, resulting in simpler and more solid infrastructure.")]),e._v(" "),a("p",[e._v("In the coming weeks, I hope to use the Tool Fund grant I received to bring Go’s performance and concurrency capabilities to data processing and to have a set of tools distributed as standalone and multi-platform binaries which are very easy to download and install. I am currently working on my Ph.D. and one pitfall I have come across is the use of one environment/system to collect/generate data and another to process. I will be working to alleviate this issue in order to make it easier to process tabular data in Go.")]),e._v(" "),a("p",[e._v("From the developer’s perspective, it is really great to use open source software. This is especially true when the community around the software fosters it’s usage and welcome contributors. That ends up increasing the overall quality of the software, which benefits all users.")]),e._v(" "),a("p",[e._v("The source code will be hosted at Github’s "),a("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("tableschema-go"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[e._v("datapackage-go"),a("OutboundLink")],1),e._v(" repositories. We are going to use issues to track development progress and next steps.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/73.6e3cac69.js b/assets/js/73.bff5f5c0.js similarity index 99% rename from assets/js/73.6e3cac69.js rename to assets/js/73.bff5f5c0.js index 8c8900ff9..d346124ee 100644 --- a/assets/js/73.6e3cac69.js +++ b/assets/js/73.bff5f5c0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{587:function(t,a,e){"use strict";e.r(a);var s=e(29),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("p",[e("a",{attrs:{href:"http://okfn.gr/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Open Knowledge Greece"),e("OutboundLink")],1),t._v(" was one of 2017’s "),e("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),e("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in R programming language. You can read more about this in "),e("a",{attrs:{href:"https://frictionlessdata.io/articles/open-knowledge-greece/",target:"_blank",rel:"noopener noreferrer"}},[t._v("their grantee profile"),e("OutboundLink")],1),t._v(". In this tutorial, "),e("a",{attrs:{href:"https://gr.linkedin.com/in/kleanthis-koupidis-8348b88b",target:"_blank",rel:"noopener noreferrer"}},[t._v("Kleanthis Koupidis"),e("OutboundLink")],1),t._v(", a Data Scientist and Statistician at Open Knowledge Greece, explains how to create Data Packages in R.")]),t._v(" "),e("h2",{attrs:{id:"creating-data-packages-in-r"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-data-packages-in-r"}},[t._v("#")]),t._v(" Creating Data Packages in R")]),t._v(" "),e("p",[t._v("This tutorial will show you how to install the R library for working with Data Packages and Table Schema, load a CSV file, infer its schema, and write a Tabular Data Package.")]),t._v(" "),e("h2",{attrs:{id:"load"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[t._v("#")]),t._v(" Load")]),t._v(" "),e("p",[t._v("For this tutorial, we will need the Data Package R library ("),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage.r"),e("OutboundLink")],1),t._v(")."),e("br"),t._v("\nYou can start using the library by loading "),e("code",[t._v("datapackage.r")]),t._v(".")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" library"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("datapackage.r"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("You can add useful metadata by adding keys to metadata dict attribute. Below, we are adding the required "),e("code",[t._v("name")]),t._v(" key as well as a human-readable "),e("code",[t._v("title")]),t._v(" key. For the keys supported, please consult the full "),e("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package spec"),e("OutboundLink")],1),t._v(". Note, we will be creating the required "),e("code",[t._v("resources")]),t._v(" key further down below.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package.load"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'period-table'")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'title'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Periodic Table'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# commit the changes to Package class")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("commit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## [1] TRUE")]),t._v("\n")])])]),e("h2",{attrs:{id:"infer-a-csv-schema"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#infer-a-csv-schema"}},[t._v("#")]),t._v(" Infer a CSV Schema")]),t._v(" "),e("p",[t._v("We will use periodic-table data from "),e("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/datapackage-r/9eed05d1710fd69a0cb74f7941c7f142563f571b/vignettes/example_data/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("remote path"),e("OutboundLink")],1)]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("atomic.number")]),t._v(" "),e("th",[t._v("symbol")]),t._v(" "),e("th",[t._v("name")]),t._v(" "),e("th",[t._v("atomic.mass")]),t._v(" "),e("th",[t._v("metal.or.nonmetal.")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("1")]),t._v(" "),e("td",[t._v("H")]),t._v(" "),e("td",[t._v("Hydrogen")]),t._v(" "),e("td",[t._v("1.00794")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("2")]),t._v(" "),e("td",[t._v("He")]),t._v(" "),e("td",[t._v("Helium")]),t._v(" "),e("td",[t._v("4.002602")]),t._v(" "),e("td",[t._v("noble gas")])]),t._v(" "),e("tr",[e("td",[t._v("3")]),t._v(" "),e("td",[t._v("Li")]),t._v(" "),e("td",[t._v("Lithium")]),t._v(" "),e("td",[t._v("6.941")]),t._v(" "),e("td",[t._v("alkali metal")])]),t._v(" "),e("tr",[e("td",[t._v("4")]),t._v(" "),e("td",[t._v("Be")]),t._v(" "),e("td",[t._v("Beryllium")]),t._v(" "),e("td",[t._v("9.012182")]),t._v(" "),e("td",[t._v("alkaline earth metal")])]),t._v(" "),e("tr",[e("td",[t._v("5")]),t._v(" "),e("td",[t._v("B")]),t._v(" "),e("td",[t._v("Boron")]),t._v(" "),e("td",[t._v("10.811")]),t._v(" "),e("td",[t._v("metalloid")])]),t._v(" "),e("tr",[e("td",[t._v("6")]),t._v(" "),e("td",[t._v("C")]),t._v(" "),e("td",[t._v("Carbon")]),t._v(" "),e("td",[t._v("12.0107")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("7")]),t._v(" "),e("td",[t._v("N")]),t._v(" "),e("td",[t._v("Nitrogen")]),t._v(" "),e("td",[t._v("14.0067")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("8")]),t._v(" "),e("td",[t._v("O")]),t._v(" "),e("td",[t._v("Oxygen")]),t._v(" "),e("td",[t._v("15.9994")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("9")]),t._v(" "),e("td",[t._v("F")]),t._v(" "),e("td",[t._v("Fluorine")]),t._v(" "),e("td",[t._v("18.9984032")]),t._v(" "),e("td",[t._v("halogen")])]),t._v(" "),e("tr",[e("td",[t._v("10")]),t._v(" "),e("td",[t._v("Ne")]),t._v(" "),e("td",[t._v("Neon")]),t._v(" "),e("td",[t._v("20.1797")]),t._v(" "),e("td",[t._v("noble gas")])])])]),t._v(" "),e("p",[t._v("We can guess our CSV’s "),e("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("schema"),e("OutboundLink")],1),t._v(" by using "),e("code",[t._v("infer")]),t._v(" from the Table Schema library. We pass directly the remote link to the infer function, the result of which is an inferred schema. For example, if the processor detects only integers in a given column, it will assign "),e("code",[t._v("integer")]),t._v(" as a column type.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" filepath "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/data.csv'")]),t._v("\n\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tableschema.r"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("::")]),t._v("infer"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Once we have a schema, we are now ready to add a "),e("code",[t._v("resource")]),t._v(" key to the Data Package which points to the resource path and its newly created schema. Below we define resources with three ways, using json text format with usual assignment operator in R list objects and directly using "),e("code",[t._v("addResource")]),t._v(" function of "),e("code",[t._v("Package")]),t._v(" class:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# define resources using json text")]),t._v("\n resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" helpers.from.json.to.list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n '"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"filepath"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"schema"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("'\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or define resources using list object")]),t._v("\n resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("And now, add resources to the Data Package:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'resources'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resources\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("commit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## [1] TRUE")]),t._v("\n")])])]),e("p",[t._v("Or you can directly add resources using "),e("code",[t._v("addResources")]),t._v(" function of "),e("code",[t._v("Package")]),t._v(" class:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("addResource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Now we are ready to write our "),e("code",[t._v("datapackage.json")]),t._v(" file to the current working directory.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("save"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'example_data'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The "),e("code",[t._v("datapackage.json")]),t._v(" ("),e("a",{attrs:{href:"https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/package.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("download"),e("OutboundLink")],1),t._v(") is inlined below. Note that atomic number has been correctly inferred as an "),e("code",[t._v("integer")]),t._v(" and atomic mass as a "),e("code",[t._v("number")]),t._v(" (float) while every other column is a "),e("code",[t._v("string")]),t._v(".")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v(' jsonlite::prettify(helpers.from.list.to.json(dataPackage$descriptor))\n\n ## {\n ## "profile": "data-package",\n ## "name": "period-table",\n ## "title": "Periodic Table",\n ## "resources": [\n ## {\n ## "name": "data",\n ## "path": "https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/data.csv",\n ## "schema": {\n ## "fields": [\n ## {\n ## "name": "atomic number",\n ## "type": "integer",\n ## "format": "default"\n ## },\n ## {\n ## "name": "symbol",\n ## "type": "string",\n ## "format": "default"\n ## },\n ## {\n ## "name": "name",\n ## "type": "string",\n ## "format": "default"\n ## },\n ## {\n ## "name": "atomic mass",\n ## "type": "number",\n ## "format": "default"\n ## },\n ## {\n ## "name": "metal or nonmetal?",\n ## "type": "string",\n ## "format": "default"\n ## }\n ## ],\n ## "missingValues": [\n ## ""\n ## ]\n ## },\n ## "profile": "data-resource",\n ## "encoding": "utf-8"\n ## }\n ## ]\n ## }\n ##\n')])])]),e("h2",{attrs:{id:"publishing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing"}},[t._v("#")]),t._v(" Publishing")]),t._v(" "),e("p",[t._v("Now that you have created your Data Package, you might want to "),e("RouterLink",{attrs:{to:"/blog/2016/08/29/publish-online/"}},[t._v("publish your data online")]),t._v(" so that you can share it with others.")],1),t._v(" "),e("p",[t._v("Now that you have created a data package in R, "),e("RouterLink",{attrs:{to:"/blog/2018/02/14/using-data-packages-in-r/"}},[t._v("find out how to use data packages in R in this tutorial")]),t._v(".")],1)])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{586:function(t,a,e){"use strict";e.r(a);var s=e(29),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("p",[e("a",{attrs:{href:"http://okfn.gr/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Open Knowledge Greece"),e("OutboundLink")],1),t._v(" was one of 2017’s "),e("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),e("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in R programming language. You can read more about this in "),e("a",{attrs:{href:"https://frictionlessdata.io/articles/open-knowledge-greece/",target:"_blank",rel:"noopener noreferrer"}},[t._v("their grantee profile"),e("OutboundLink")],1),t._v(". In this tutorial, "),e("a",{attrs:{href:"https://gr.linkedin.com/in/kleanthis-koupidis-8348b88b",target:"_blank",rel:"noopener noreferrer"}},[t._v("Kleanthis Koupidis"),e("OutboundLink")],1),t._v(", a Data Scientist and Statistician at Open Knowledge Greece, explains how to create Data Packages in R.")]),t._v(" "),e("h2",{attrs:{id:"creating-data-packages-in-r"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-data-packages-in-r"}},[t._v("#")]),t._v(" Creating Data Packages in R")]),t._v(" "),e("p",[t._v("This tutorial will show you how to install the R library for working with Data Packages and Table Schema, load a CSV file, infer its schema, and write a Tabular Data Package.")]),t._v(" "),e("h2",{attrs:{id:"load"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[t._v("#")]),t._v(" Load")]),t._v(" "),e("p",[t._v("For this tutorial, we will need the Data Package R library ("),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-r",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage.r"),e("OutboundLink")],1),t._v(")."),e("br"),t._v("\nYou can start using the library by loading "),e("code",[t._v("datapackage.r")]),t._v(".")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" library"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("datapackage.r"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("You can add useful metadata by adding keys to metadata dict attribute. Below, we are adding the required "),e("code",[t._v("name")]),t._v(" key as well as a human-readable "),e("code",[t._v("title")]),t._v(" key. For the keys supported, please consult the full "),e("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package spec"),e("OutboundLink")],1),t._v(". Note, we will be creating the required "),e("code",[t._v("resources")]),t._v(" key further down below.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Package.load"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'period-table'")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'title'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Periodic Table'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# commit the changes to Package class")]),t._v("\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("commit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## [1] TRUE")]),t._v("\n")])])]),e("h2",{attrs:{id:"infer-a-csv-schema"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#infer-a-csv-schema"}},[t._v("#")]),t._v(" Infer a CSV Schema")]),t._v(" "),e("p",[t._v("We will use periodic-table data from "),e("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/datapackage-r/9eed05d1710fd69a0cb74f7941c7f142563f571b/vignettes/example_data/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("remote path"),e("OutboundLink")],1)]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("atomic.number")]),t._v(" "),e("th",[t._v("symbol")]),t._v(" "),e("th",[t._v("name")]),t._v(" "),e("th",[t._v("atomic.mass")]),t._v(" "),e("th",[t._v("metal.or.nonmetal.")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("1")]),t._v(" "),e("td",[t._v("H")]),t._v(" "),e("td",[t._v("Hydrogen")]),t._v(" "),e("td",[t._v("1.00794")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("2")]),t._v(" "),e("td",[t._v("He")]),t._v(" "),e("td",[t._v("Helium")]),t._v(" "),e("td",[t._v("4.002602")]),t._v(" "),e("td",[t._v("noble gas")])]),t._v(" "),e("tr",[e("td",[t._v("3")]),t._v(" "),e("td",[t._v("Li")]),t._v(" "),e("td",[t._v("Lithium")]),t._v(" "),e("td",[t._v("6.941")]),t._v(" "),e("td",[t._v("alkali metal")])]),t._v(" "),e("tr",[e("td",[t._v("4")]),t._v(" "),e("td",[t._v("Be")]),t._v(" "),e("td",[t._v("Beryllium")]),t._v(" "),e("td",[t._v("9.012182")]),t._v(" "),e("td",[t._v("alkaline earth metal")])]),t._v(" "),e("tr",[e("td",[t._v("5")]),t._v(" "),e("td",[t._v("B")]),t._v(" "),e("td",[t._v("Boron")]),t._v(" "),e("td",[t._v("10.811")]),t._v(" "),e("td",[t._v("metalloid")])]),t._v(" "),e("tr",[e("td",[t._v("6")]),t._v(" "),e("td",[t._v("C")]),t._v(" "),e("td",[t._v("Carbon")]),t._v(" "),e("td",[t._v("12.0107")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("7")]),t._v(" "),e("td",[t._v("N")]),t._v(" "),e("td",[t._v("Nitrogen")]),t._v(" "),e("td",[t._v("14.0067")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("8")]),t._v(" "),e("td",[t._v("O")]),t._v(" "),e("td",[t._v("Oxygen")]),t._v(" "),e("td",[t._v("15.9994")]),t._v(" "),e("td",[t._v("nonmetal")])]),t._v(" "),e("tr",[e("td",[t._v("9")]),t._v(" "),e("td",[t._v("F")]),t._v(" "),e("td",[t._v("Fluorine")]),t._v(" "),e("td",[t._v("18.9984032")]),t._v(" "),e("td",[t._v("halogen")])]),t._v(" "),e("tr",[e("td",[t._v("10")]),t._v(" "),e("td",[t._v("Ne")]),t._v(" "),e("td",[t._v("Neon")]),t._v(" "),e("td",[t._v("20.1797")]),t._v(" "),e("td",[t._v("noble gas")])])])]),t._v(" "),e("p",[t._v("We can guess our CSV’s "),e("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("schema"),e("OutboundLink")],1),t._v(" by using "),e("code",[t._v("infer")]),t._v(" from the Table Schema library. We pass directly the remote link to the infer function, the result of which is an inferred schema. For example, if the processor detects only integers in a given column, it will assign "),e("code",[t._v("integer")]),t._v(" as a column type.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" filepath "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/data.csv'")]),t._v("\n\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tableschema.r"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("::")]),t._v("infer"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Once we have a schema, we are now ready to add a "),e("code",[t._v("resource")]),t._v(" key to the Data Package which points to the resource path and its newly created schema. Below we define resources with three ways, using json text format with usual assignment operator in R list objects and directly using "),e("code",[t._v("addResource")]),t._v(" function of "),e("code",[t._v("Package")]),t._v(" class:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# define resources using json text")]),t._v("\n resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" helpers.from.json.to.list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n '"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"path"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"filepath"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"schema"')]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"schema"')]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("'\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# or define resources using list object")]),t._v("\n resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("And now, add resources to the Data Package:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("descriptor"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'resources'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resources\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("commit"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("## [1] TRUE")]),t._v("\n")])])]),e("p",[t._v("Or you can directly add resources using "),e("code",[t._v("addResources")]),t._v(" function of "),e("code",[t._v("Package")]),t._v(" class:")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" resources "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("list"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n name "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n path "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" filepath"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n schema "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" schema\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("addResource"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("resources"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Now we are ready to write our "),e("code",[t._v("datapackage.json")]),t._v(" file to the current working directory.")]),t._v(" "),e("div",{staticClass:"language-r extra-class"},[e("pre",{pre:!0,attrs:{class:"language-r"}},[e("code",[t._v(" dataPackage"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("$")]),t._v("save"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'example_data'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("The "),e("code",[t._v("datapackage.json")]),t._v(" ("),e("a",{attrs:{href:"https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/package.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("download"),e("OutboundLink")],1),t._v(") is inlined below. Note that atomic number has been correctly inferred as an "),e("code",[t._v("integer")]),t._v(" and atomic mass as a "),e("code",[t._v("number")]),t._v(" (float) while every other column is a "),e("code",[t._v("string")]),t._v(".")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v(' jsonlite::prettify(helpers.from.list.to.json(dataPackage$descriptor))\n\n ## {\n ## "profile": "data-package",\n ## "name": "period-table",\n ## "title": "Periodic Table",\n ## "resources": [\n ## {\n ## "name": "data",\n ## "path": "https://raw.githubusercontent.com/okgreece/datapackage-r/master/vignettes/exampledata/data.csv",\n ## "schema": {\n ## "fields": [\n ## {\n ## "name": "atomic number",\n ## "type": "integer",\n ## "format": "default"\n ## },\n ## {\n ## "name": "symbol",\n ## "type": "string",\n ## "format": "default"\n ## },\n ## {\n ## "name": "name",\n ## "type": "string",\n ## "format": "default"\n ## },\n ## {\n ## "name": "atomic mass",\n ## "type": "number",\n ## "format": "default"\n ## },\n ## {\n ## "name": "metal or nonmetal?",\n ## "type": "string",\n ## "format": "default"\n ## }\n ## ],\n ## "missingValues": [\n ## ""\n ## ]\n ## },\n ## "profile": "data-resource",\n ## "encoding": "utf-8"\n ## }\n ## ]\n ## }\n ##\n')])])]),e("h2",{attrs:{id:"publishing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing"}},[t._v("#")]),t._v(" Publishing")]),t._v(" "),e("p",[t._v("Now that you have created your Data Package, you might want to "),e("RouterLink",{attrs:{to:"/blog/2016/08/29/publish-online/"}},[t._v("publish your data online")]),t._v(" so that you can share it with others.")],1),t._v(" "),e("p",[t._v("Now that you have created a data package in R, "),e("RouterLink",{attrs:{to:"/blog/2018/02/14/using-data-packages-in-r/"}},[t._v("find out how to use data packages in R in this tutorial")]),t._v(".")],1)])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/75.ec5d7d14.js b/assets/js/75.3d03a31b.js similarity index 99% rename from assets/js/75.ec5d7d14.js rename to assets/js/75.3d03a31b.js index 9ef1385ae..6b5ba51d9 100644 --- a/assets/js/75.ec5d7d14.js +++ b/assets/js/75.3d03a31b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{588:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Daniel Fireman was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in Go programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/11/01/daniel-fireman/"}},[t._v("his grantee profile")]),t._v(". In this post, Fireman will show you how to install and use the "),s("a",{attrs:{href:"http://golang.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Go"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")],1),t._v(" "),s("p",[t._v("Our goal in this tutorial is to load a data package from the web and read its metadata and contents.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("For this tutorial, we will need the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-go"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-go"),s("OutboundLink")],1),t._v(" packages, which provide all the functionality to deal with a Data Package’s metadata and its contents.")]),t._v(" "),s("p",[t._v("We are going to use the "),s("a",{attrs:{href:"https://golang.github.io/dep/",target:"_blank",rel:"noopener noreferrer"}},[t._v("dep tool"),s("OutboundLink")],1),t._v(" to manage the dependencies of our new project:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$GOPATH")]),t._v("/src/newdataproj\n$ dep init\n")])])]),s("h2",{attrs:{id:"the-periodic-table-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-periodic-table-data-package"}},[t._v("#")]),t._v(" The Periodic Table Data Package")]),t._v(" "),s("p",[t._v("A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("p",[t._v("In this tutorial, we are using a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" containing the periodic table. The package descriptor ("),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage.json"),s("OutboundLink")],1),t._v(") and contents ("),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("data.csv"),s("OutboundLink")],1),t._v(") are stored on GitHub. This dataset includes the atomic number, symbol, element name, atomic mass, and the metallicity of the element. Here are the header and the first three rows:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("atomic number")]),t._v(" "),s("th",[t._v("symbol")]),t._v(" "),s("th",[t._v("name")]),t._v(" "),s("th",[t._v("atomic mass")]),t._v(" "),s("th",[t._v("metal or nonmetal?")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("1")]),t._v(" "),s("td",[t._v("H")]),t._v(" "),s("td",[t._v("Hydrogen")]),t._v(" "),s("td",[t._v("1.00794")]),t._v(" "),s("td",[t._v("nonmetal")])]),t._v(" "),s("tr",[s("td",[t._v("2")]),t._v(" "),s("td",[t._v("He")]),t._v(" "),s("td",[t._v("Helium")]),t._v(" "),s("td",[t._v("4.002602")]),t._v(" "),s("td",[t._v("noble gas")])]),t._v(" "),s("tr",[s("td",[t._v("3")]),t._v(" "),s("td",[t._v("Li")]),t._v(" "),s("td",[t._v("Lithium")]),t._v(" "),s("td",[t._v("6.941")]),t._v(" "),s("td",[t._v("alkali metal")])])])]),t._v(" "),s("h2",{attrs:{id:"inspecting-package-metadata"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#inspecting-package-metadata"}},[t._v("#")]),t._v(" Inspecting Package Metadata")]),t._v(" "),s("p",[t._v("Let’s start off by creating the "),s("code",[t._v("main.go")]),t._v(", which loads the data package and inspects some of its metadata.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" main\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt"')]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/datapackage-go/datapackage"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" err "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" err "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("nil")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("panic")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("err"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package loaded successfully."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Before running the code, you need to tell the dep tool to update our project dependencies. Don’t worry; you won’t need to do it again in this tutorial.")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ dep ensure\n$ go run main.go\nPackage loaded successfully.\n")])])]),s("p",[t._v("Now that you have loaded the periodic table Data Package, you have access to its "),s("code",[t._v("title")]),t._v(" and "),s("code",[t._v("name")]),t._v(" fields through the "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Package.Descriptor",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package.Descriptor() function"),s("OutboundLink")],1),t._v(". To do so, let’s change our main function to (omitting error handling for the sake of brevity, but we know it is "),s("em",[t._v("very")]),t._v(" important):")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name:"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Descriptor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Title:"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Descriptor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("And rerun the program:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\nName: period-table\nTitle: Periodic Table\n")])])]),s("p",[t._v("And as you can see, the printed fields match the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("package descriptor"),s("OutboundLink")],1),t._v(". For more information about the Data Package structure, please take a look at the "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("specification"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"quick-look-at-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#quick-look-at-the-data"}},[t._v("#")]),t._v(" Quick Look At the Data")]),t._v(" "),s("p",[t._v("Now that you have loaded your Data Package, it is time to process its contents. The package content consists of one or more resources. You can access "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resources"),s("OutboundLink")],1),t._v(" via the "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Package.GetResource()",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package.GetResource()"),s("OutboundLink")],1),t._v(" method. Let’s print the periodic table "),s("code",[t._v("data")]),t._v(" resource contents.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n res "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" res"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReadAll")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("range")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("atomic number symbol name atomic mass metal or nonmetal?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" H Hydrogen "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.00794")]),t._v(" nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" He Helium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.002602")]),t._v(" noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" Li Lithium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.941")]),t._v(" alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" Be Beryllium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.012182")]),t._v(" alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\n")])])]),s("p",[t._v("The "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource.ReadAll",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource.ReadAll()"),s("OutboundLink")],1),t._v(" method loads the whole table in memory as raw strings and returns it as a Go "),s("code",[t._v("[][]string")]),t._v(". This can be quick useful to take a quick look or perform a visual sanity check at the data.")]),t._v(" "),s("h2",{attrs:{id:"processing-the-data-package-s-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#processing-the-data-package-s-content"}},[t._v("#")]),t._v(" Processing the Data Package’s Content")]),t._v(" "),s("p",[t._v("Even though the string representation can be useful for a quick sanity check, you probably want to use actual language types to process the data. Don’t worry, you won’t need to fight the casting battle yourself. Data Package Go libraries provide a rich set of methods to deal with data loading in a very idiomatic way (very similar to "),s("a",{attrs:{href:"https://golang.org/pkg/encoding/json/",target:"_blank",rel:"noopener noreferrer"}},[t._v("encoding/json"),s("OutboundLink")],1),t._v(").")]),t._v(" "),s("p",[t._v("As an example, let’s change our "),s("code",[t._v("main")]),t._v(" function to use actual types to store the periodic table and print the elements with atomic mass smaller than 10.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" main\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt"')]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/datapackage-go/datapackage"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/tableschema-go/csv"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" element "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("struct")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Number "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"atomic number"`')]),t._v("\n Symbol "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"symbol"`')]),t._v("\n Name "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"name"`')]),t._v("\n Mass "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float64")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"atomic mass"`')]),t._v("\n Metal "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"metal or nonmetal?"`')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("element\n resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Cast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("elements"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" csv"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("LoadHeaders")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("range")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Mass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Printf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%+v\\n"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:1 Symbol:H Name:Hydrogen Mass:1.00794 Metal:nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:2 Symbol:He Name:Helium Mass:4.002602 Metal:noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:3 Symbol:Li Name:Lithium Mass:6.941 Metal:alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:4 Symbol:Be Name:Beryllium Mass:9.012182 Metal:alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("In the example above, all rows in the table are loaded into memory. Then every row is parsed into an "),s("code",[t._v("element")]),t._v(" object and appended to the slice. The "),s("code",[t._v("resource.Cast")]),t._v(" call returns an error if the whole table cannot be successfully parsed.")]),t._v(" "),s("p",[t._v("If you don’t want to load all data in memory at once, you can lazily access each row using "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource.Iter",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource.Iter"),s("OutboundLink")],1),t._v(" and use "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/tableschema-go/schema#Schema.CastRow",target:"_blank",rel:"noopener noreferrer"}},[t._v("Schema.CastRow"),s("OutboundLink")],1),t._v(" to cast each row into an "),s("code",[t._v("element")]),t._v(" object. That would change our main function to:")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("csv"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("LoadHeaders")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n sch"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" e element\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n sch"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("CastRow")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Row")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Mass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Printf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%+v\\n"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:1 Symbol:H Name:Hydrogen Mass:1.00794 Metal:nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:2 Symbol:He Name:Helium Mass:4.002602 Metal:noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:3 Symbol:Li Name:Lithium Mass:6.941 Metal:alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:4 Symbol:Be Name:Beryllium Mass:9.012182 Metal:alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("And our code is ready to deal with the growth of the periodic table in a very memory-efficient way 😃")]),t._v(" "),s("p",[t._v("We welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the datapackage-go repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{589:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Daniel Fireman was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in Go programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/11/01/daniel-fireman/"}},[t._v("his grantee profile")]),t._v(". In this post, Fireman will show you how to install and use the "),s("a",{attrs:{href:"http://golang.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Go"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")],1),t._v(" "),s("p",[t._v("Our goal in this tutorial is to load a data package from the web and read its metadata and contents.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("For this tutorial, we will need the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-go"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-go"),s("OutboundLink")],1),t._v(" packages, which provide all the functionality to deal with a Data Package’s metadata and its contents.")]),t._v(" "),s("p",[t._v("We are going to use the "),s("a",{attrs:{href:"https://golang.github.io/dep/",target:"_blank",rel:"noopener noreferrer"}},[t._v("dep tool"),s("OutboundLink")],1),t._v(" to manage the dependencies of our new project:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$GOPATH")]),t._v("/src/newdataproj\n$ dep init\n")])])]),s("h2",{attrs:{id:"the-periodic-table-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-periodic-table-data-package"}},[t._v("#")]),t._v(" The Periodic Table Data Package")]),t._v(" "),s("p",[t._v("A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("p",[t._v("In this tutorial, we are using a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" containing the periodic table. The package descriptor ("),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage.json"),s("OutboundLink")],1),t._v(") and contents ("),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("data.csv"),s("OutboundLink")],1),t._v(") are stored on GitHub. This dataset includes the atomic number, symbol, element name, atomic mass, and the metallicity of the element. Here are the header and the first three rows:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("atomic number")]),t._v(" "),s("th",[t._v("symbol")]),t._v(" "),s("th",[t._v("name")]),t._v(" "),s("th",[t._v("atomic mass")]),t._v(" "),s("th",[t._v("metal or nonmetal?")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("1")]),t._v(" "),s("td",[t._v("H")]),t._v(" "),s("td",[t._v("Hydrogen")]),t._v(" "),s("td",[t._v("1.00794")]),t._v(" "),s("td",[t._v("nonmetal")])]),t._v(" "),s("tr",[s("td",[t._v("2")]),t._v(" "),s("td",[t._v("He")]),t._v(" "),s("td",[t._v("Helium")]),t._v(" "),s("td",[t._v("4.002602")]),t._v(" "),s("td",[t._v("noble gas")])]),t._v(" "),s("tr",[s("td",[t._v("3")]),t._v(" "),s("td",[t._v("Li")]),t._v(" "),s("td",[t._v("Lithium")]),t._v(" "),s("td",[t._v("6.941")]),t._v(" "),s("td",[t._v("alkali metal")])])])]),t._v(" "),s("h2",{attrs:{id:"inspecting-package-metadata"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#inspecting-package-metadata"}},[t._v("#")]),t._v(" Inspecting Package Metadata")]),t._v(" "),s("p",[t._v("Let’s start off by creating the "),s("code",[t._v("main.go")]),t._v(", which loads the data package and inspects some of its metadata.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" main\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt"')]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/datapackage-go/datapackage"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" err "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" err "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("nil")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("panic")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("err"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package loaded successfully."')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Before running the code, you need to tell the dep tool to update our project dependencies. Don’t worry; you won’t need to do it again in this tutorial.")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ dep ensure\n$ go run main.go\nPackage loaded successfully.\n")])])]),s("p",[t._v("Now that you have loaded the periodic table Data Package, you have access to its "),s("code",[t._v("title")]),t._v(" and "),s("code",[t._v("name")]),t._v(" fields through the "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Package.Descriptor",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package.Descriptor() function"),s("OutboundLink")],1),t._v(". To do so, let’s change our main function to (omitting error handling for the sake of brevity, but we know it is "),s("em",[t._v("very")]),t._v(" important):")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name:"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Descriptor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Title:"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Descriptor")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"title"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("And rerun the program:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\nName: period-table\nTitle: Periodic Table\n")])])]),s("p",[t._v("And as you can see, the printed fields match the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("package descriptor"),s("OutboundLink")],1),t._v(". For more information about the Data Package structure, please take a look at the "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("specification"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"quick-look-at-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#quick-look-at-the-data"}},[t._v("#")]),t._v(" Quick Look At the Data")]),t._v(" "),s("p",[t._v("Now that you have loaded your Data Package, it is time to process its contents. The package content consists of one or more resources. You can access "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resources"),s("OutboundLink")],1),t._v(" via the "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Package.GetResource()",target:"_blank",rel:"noopener noreferrer"}},[t._v("Package.GetResource()"),s("OutboundLink")],1),t._v(" method. Let’s print the periodic table "),s("code",[t._v("data")]),t._v(" resource contents.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n res "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" res"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("ReadAll")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("range")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Println")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("atomic number symbol name atomic mass metal or nonmetal?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" H Hydrogen "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.00794")]),t._v(" nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" He Helium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.002602")]),t._v(" noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" Li Lithium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.941")]),t._v(" alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" Be Beryllium "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.012182")]),t._v(" alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\n")])])]),s("p",[t._v("The "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource.ReadAll",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource.ReadAll()"),s("OutboundLink")],1),t._v(" method loads the whole table in memory as raw strings and returns it as a Go "),s("code",[t._v("[][]string")]),t._v(". This can be quick useful to take a quick look or perform a visual sanity check at the data.")]),t._v(" "),s("h2",{attrs:{id:"processing-the-data-package-s-content"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#processing-the-data-package-s-content"}},[t._v("#")]),t._v(" Processing the Data Package’s Content")]),t._v(" "),s("p",[t._v("Even though the string representation can be useful for a quick sanity check, you probably want to use actual language types to process the data. Don’t worry, you won’t need to fight the casting battle yourself. Data Package Go libraries provide a rich set of methods to deal with data loading in a very idiomatic way (very similar to "),s("a",{attrs:{href:"https://golang.org/pkg/encoding/json/",target:"_blank",rel:"noopener noreferrer"}},[t._v("encoding/json"),s("OutboundLink")],1),t._v(").")]),t._v(" "),s("p",[t._v("As an example, let’s change our "),s("code",[t._v("main")]),t._v(" function to use actual types to store the periodic table and print the elements with atomic mass smaller than 10.")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("package")]),t._v(" main\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fmt"')]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/datapackage-go/datapackage"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/frictionlessdata/tableschema-go/csv"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" element "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("struct")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Number "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("int")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"atomic number"`')]),t._v("\n Symbol "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"symbol"`')]),t._v("\n Name "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"name"`')]),t._v("\n Mass "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float64")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"atomic mass"`')]),t._v("\n Metal "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('`tableheader:"metal or nonmetal?"`')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("element\n resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Cast")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("elements"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" csv"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("LoadHeaders")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("range")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Mass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Printf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%+v\\n"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:1 Symbol:H Name:Hydrogen Mass:1.00794 Metal:nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:2 Symbol:He Name:Helium Mass:4.002602 Metal:noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:3 Symbol:Li Name:Lithium Mass:6.941 Metal:alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:4 Symbol:Be Name:Beryllium Mass:9.012182 Metal:alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("In the example above, all rows in the table are loaded into memory. Then every row is parsed into an "),s("code",[t._v("element")]),t._v(" object and appended to the slice. The "),s("code",[t._v("resource.Cast")]),t._v(" call returns an error if the whole table cannot be successfully parsed.")]),t._v(" "),s("p",[t._v("If you don’t want to load all data in memory at once, you can lazily access each row using "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/datapackage-go/datapackage#Resource.Iter",target:"_blank",rel:"noopener noreferrer"}},[t._v("Resource.Iter"),s("OutboundLink")],1),t._v(" and use "),s("a",{attrs:{href:"https://godoc.org/github.com/frictionlessdata/tableschema-go/schema#Schema.CastRow",target:"_blank",rel:"noopener noreferrer"}},[t._v("Schema.CastRow"),s("OutboundLink")],1),t._v(" to cast each row into an "),s("code",[t._v("element")]),t._v(" object. That would change our main function to:")]),t._v(" "),s("div",{staticClass:"language-go extra-class"},[s("pre",{pre:!0,attrs:{class:"language-go"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("func")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Load")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("csv"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("LoadHeaders")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n sch"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("_")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("GetSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" e element\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n sch"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("CastRow")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Row")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Mass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n fmt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Printf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%+v\\n"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ go run main.go\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:1 Symbol:H Name:Hydrogen Mass:1.00794 Metal:nonmetal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:2 Symbol:He Name:Helium Mass:4.002602 Metal:noble gas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:3 Symbol:Li Name:Lithium Mass:6.941 Metal:alkali metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Number:4 Symbol:Be Name:Beryllium Mass:9.012182 Metal:alkaline earth metal"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("And our code is ready to deal with the growth of the periodic table in a very memory-efficient way 😃")]),t._v(" "),s("p",[t._v("We welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-go/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the datapackage-go repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/76.8fa5c677.js b/assets/js/76.bd9f095a.js similarity index 99% rename from assets/js/76.8fa5c677.js rename to assets/js/76.bd9f095a.js index 07fdd0342..f6fdf7fbd 100644 --- a/assets/js/76.8fa5c677.js +++ b/assets/js/76.bd9f095a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{592:function(e,a,t){"use strict";t.r(a);var n=t(29),i=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Applying licenses, waivers or public domain marks to "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data resources"),t("OutboundLink")],1),e._v(" helps people understand how they can use, modify and share the contents of a data package.")]),e._v(" "),t("p",[e._v("It is recommended to that you apply a license, waiver or public domain mark to a data package using the "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("licenses")]),t("OutboundLink")],1),e._v(" property. The value assigned to the data package "),t("code",[e._v("licenses")]),e._v(" property applies to all the data, files and metadata in the data package unless specified otherwise.")]),e._v(" "),t("p",[e._v("You can optionally apply a license to a data resource. This allows a license that differs from the data package license to be applied to the data resource. If the data resource "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#optional-properties",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("licenses")]),t("OutboundLink")],1),e._v(" property is not specified, it inherits the data package "),t("code",[e._v("licenses")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"specifying-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specifying-a-license"}},[e._v("#")]),e._v(" Specifying a license")]),e._v(" "),t("p",[e._v("The Frictionless Data specification states that a "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[e._v("license"),t("OutboundLink")],1),e._v(" must contain a "),t("code",[e._v("name")]),e._v(" property and/or a "),t("code",[e._v("path")]),e._v(" property, and may contain a "),t("code",[e._v("title")]),e._v(" property.")]),e._v(" "),t("blockquote",[t("ul",[t("li",[t("code",[e._v("name")]),e._v(": The name MUST be an "),t("a",{attrs:{href:"http://licenses.opendefinition.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Definition license ID"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("code",[e._v("path")]),e._v(": A "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#url-or-path",target:"_blank",rel:"noopener noreferrer"}},[e._v("url-or-path"),t("OutboundLink")],1),e._v(" string, that is a fully qualified HTTP address, or a relative POSIX path")]),e._v(" "),t("li",[t("code",[e._v("title")]),e._v(": A human-readable title")])])]),e._v(" "),t("p",[e._v("You can specify the location of a license using a URL or a Path.")]),e._v(" "),t("h3",{attrs:{id:"specify-a-license-using-a-url"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specify-a-license-using-a-url"}},[e._v("#")]),e._v(" Specify a license using a URL")]),e._v(" "),t("p",[e._v("To specify a license using a URL, use the fully qualified HTTP address as the value in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "https://cdla.io/sharing-1-0/",\n "title": "Community Data License Agreement – Sharing, Version 1.0"\n}]\n')])])]),t("h3",{attrs:{id:"specify-a-license-using-a-path"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specify-a-license-using-a-path"}},[e._v("#")]),e._v(" Specify a license using a Path")]),e._v(" "),t("p",[e._v("To specify a license using a path, use a relative POSIX path to the file in the data package as the value in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "LICENSE.pdf"\n}]\n')])])]),t("p",[e._v("In this example, LICENSE.pdf would be in the root of the data package folder, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("folder\n |- datapackage.json\n |- LICENSE.pdf\n |- README.md\n |- data\n |- data.csv\n |- reference-data.csv\n\n")])])]),t("p",[e._v("It is recommended that the licence is provided in "),t("a",{attrs:{href:"http://commonmark.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("markdown"),t("OutboundLink")],1),e._v(" format to simplify its display in data platforms and other software.")]),e._v(" "),t("p",[e._v("The license can be a separate file or included in the "),t("code",[e._v("README.md")]),e._v(" file. If license information is included in the "),t("code",[e._v("README.md")]),e._v(" file, it is recommended that it follows the "),t("RouterLink",{attrs:{to:"/blog/2016/04/20/publish-faq/#readme"}},[e._v("guide for formatting a README file")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"applying-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-a-license"}},[e._v("#")]),e._v(" Applying a license")]),e._v(" "),t("p",[e._v("These scenarios apply to either the data package or a data resource.")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"#apply-an-open-license"}},[e._v("Apply an open license")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-non-open-license"}},[e._v("Apply a non-open license")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-waiver"}},[e._v("Apply a waiver")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-public-domain-mark"}},[e._v("Apply a public domain mark")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#do-not-apply-a-license"}},[e._v("Do not apply a license")])])]),e._v(" "),t("p",[e._v("Other considerations:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#provide-additional-license-information"}},[e._v("Provide additional license information")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#copyright-belongs-to-multiple-parties"}},[e._v("Copyright belongs to multiple parties")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#license-may-become-legally-binding"}},[e._v("License may become legally binding")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#software-may-not-fully-support-the-frictionless-data-specification"}},[e._v("Software may not fully support the Frictionless Data specification")])])]),e._v(" "),t("h3",{attrs:{id:"apply-an-open-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-an-open-license"}},[e._v("#")]),e._v(" Apply an open license")]),e._v(" "),t("p",[e._v("For an "),t("a",{attrs:{href:"http://opendefinition.org/licenses/",target:"_blank",rel:"noopener noreferrer"}},[e._v("open license"),t("OutboundLink")],1),e._v(", use "),t("code",[e._v("name")]),e._v(", "),t("code",[e._v("path")]),e._v(" and "),t("code",[e._v("title")]),e._v(", e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "CC-BY-4.0",\n "path": "https://creativecommons.org/licenses/by/4.0/",\n "title": "Creative Commons Attribution 4.0"\n}]\n')])])]),t("p",[t("code",[e._v("name")]),e._v(" must be an "),t("a",{attrs:{href:"http://licenses.opendefinition.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Definition license ID"),t("OutboundLink")],1),e._v(" however note that some license IDs are placeholders or have been retired and should not be used, e.g. "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-at.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-at"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-open.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-open"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-pd.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-pd"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/notspecified.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("notspecified"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/ukcrown-withrights.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("ukcrown-withrights"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-non-open-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-non-open-license"}},[e._v("#")]),e._v(" Apply a non-open license")]),e._v(" "),t("p",[e._v("To apply an non-open license, use the "),t("code",[e._v("path")]),e._v(" and optionally the "),t("code",[e._v("title")]),e._v(" properties. It is preferred that the license is published at a URL (a fully qualified HTTP address), e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "https://creativecommons.org/licenses/by-nc-nd/4.0/",\n "title": "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)"\n}]\n')])])]),t("p",[e._v("If the license is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify a license using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-waiver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-waiver"}},[e._v("#")]),e._v(" Apply a waiver")]),e._v(" "),t("p",[e._v("You can indicate that copyright has been waived by referencing a waiver at a URL in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "CC0-1.0"\n "path": "https://creativecommons.org/publicdomain/zero/1.0/",\n "title": "CC0 1.0"\n}]\n')])])]),t("p",[e._v("If the waiver is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify a waiver using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-public-domain-mark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-public-domain-mark"}},[e._v("#")]),e._v(" Apply a public domain mark")]),e._v(" "),t("p",[e._v("You can indicate that there is no copyright in the data or that copyright has expired, using the "),t("a",{attrs:{href:"https://creativecommons.org/share-your-work/public-domain/pdm/",target:"_blank",rel:"noopener noreferrer"}},[e._v("public domain mark"),t("OutboundLink")],1),e._v(" or other public domain dedications, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "http://creativecommons.org/publicdomain/mark/1.0/",\n "title": "Public Domain Mark"\n}]\n')])])]),t("p",[e._v("If the public domain dedication is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify the public domain dedication using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"do-not-apply-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-not-apply-a-license"}},[e._v("#")]),e._v(" Do not apply a license")]),e._v(" "),t("p",[e._v("If you have not decided what license to apply but still want to publish the data package, describe the situation in a file in the data package, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "README.md"\n}]\n')])])]),t("h2",{attrs:{id:"other-considerations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-considerations"}},[e._v("#")]),e._v(" Other considerations")]),e._v(" "),t("h3",{attrs:{id:"provide-additional-license-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#provide-additional-license-information"}},[e._v("#")]),e._v(" Provide additional license information")]),e._v(" "),t("p",[e._v("It can be helpful to data consumers to provide additional copyright or attribution information such as:")]),e._v(" "),t("ul",[t("li",[e._v("copyright notice - this allows a data publisher to specify a short copyright notice")]),e._v(" "),t("li",[e._v("copyright statement URL - a URL to a copyright statement")]),e._v(" "),t("li",[e._v("preferred attribution text - the text to be used when attributing the creator(s) of the data")]),e._v(" "),t("li",[e._v("attribution URL - a URL to be used when building an attribution link")])]),e._v(" "),t("p",[e._v("This is explained in the ODI "),t("a",{attrs:{href:"https://theodi.org/guides/publishers-guide-to-the-open-data-rights-statement-vocabulary",target:"_blank",rel:"noopener noreferrer"}},[e._v("Publisher’s Guide to the Open Data Rights Statement Vocabulary"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://theodi.org/guides/odrs-reusers-guide",target:"_blank",rel:"noopener noreferrer"}},[e._v("Re-users Guide to the Open Data Rights Statement Vocabulary"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Some licenses require that data consumers provide the copyright notice in the attribution (e.g. "),t("a",{attrs:{href:"https://creativecommons.org/licenses/by/4.0/legalcode#s3",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC BY 4.0 Section 3"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[e._v("Some data publishers may waive some of their rights under a license, e.g.")]),e._v(" "),t("blockquote",[t("p",[t("a",{attrs:{href:"https://data.gov.au/dataset/noosa-wedding-locations",target:"_blank",rel:"noopener noreferrer"}},[e._v("Noosa Wedding Locations"),t("OutboundLink")],1),e._v(" data by "),t("a",{attrs:{href:"https://www.noosa.qld.gov.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Noosa Shire Council"),t("OutboundLink")],1),e._v(" is licensed under a "),t("a",{attrs:{href:"https://creativecommons.org/licenses/by/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution 4.0"),t("OutboundLink")],1),e._v(" licence."),t("br"),e._v("\nNoosa Shire Council waives the requirements of attribution under this licence, for this data.")])]),e._v(" "),t("p",[e._v("You can include this information, either:")]),e._v(" "),t("ul",[t("li",[e._v("in the file containing license information (e.g. "),t("code",[e._v("README.md")]),e._v(")")]),e._v(" "),t("li",[e._v("as additional metadata properties in the datapackage.json")])]),e._v(" "),t("p",[e._v("The data package specification supports adding "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#descriptor",target:"_blank",rel:"noopener noreferrer"}},[e._v("additional metadata properties"),t("OutboundLink")],1),e._v(" to the datapackage.json, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "name" : "coastal-data-system-near-real-time-wave-data",\n "title" : "Coastal Data System – Near real time wave data",\n "licenses" : [{\n "name": "CC-BY-4.0",\n "path": "https://creativecommons.org/licenses/by/4.0/",\n "title": "Creative Commons Attribution 4.0"\n }],\n "copyrightNotice": "© The State of Queensland 1995–2017",\n "copyrightStatement": "https://www.qld.gov.au/legal/copyright",\n "attributionText": "Science, Information Technology and Innovation, Queensland Government, Coastal Data System – Near real time wave data, licensed under Creative Commons Attribution 4.0 sourced on 26 December 2017",\n "resources": [\n {\n "path": "https://data.qld.gov.au/dataset/coastal-data-system-near-real-time-wave-data",\n ...\n }\n ]\n}\n')])])]),t("h3",{attrs:{id:"copyright-belongs-to-multiple-parties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#copyright-belongs-to-multiple-parties"}},[e._v("#")]),e._v(" Copyright belongs to multiple parties")]),e._v(" "),t("p",[e._v("Sometimes data in a resource may be combined from multiple sources that are licensed in different ways. You can indicate this by placing two or more licenses in the "),t("code",[e._v("licenses")]),e._v(" property. Further explanation should be given in the "),t("code",[e._v("README.md")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "PDDL-1.0",\n "path": "http://opendatacommons.org/licenses/pddl/",\n "title": "Open Data Commons Public Domain Dedication and License v1.0"\n },\n {\n "name": "CC-BY-SA-4.0",\n "path": "https://creativecommons.org/licenses/by-sa/4.0/",\n "title": "Creative Commons Attribution Share-Alike 4.0"\n }]\n')])])]),t("h3",{attrs:{id:"license-may-become-legally-binding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license-may-become-legally-binding"}},[e._v("#")]),e._v(" License may become legally binding")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[e._v("specification"),t("OutboundLink")],1),e._v(" for "),t("code",[e._v("licenses")]),e._v(" states:")]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("This property is not legally binding and does not guarantee the package is licensed under the terms defined in this property.")])])]),e._v(" "),t("p",[e._v("A data package may be uploaded to a data platform and the "),t("code",[e._v("licenses")]),e._v(" applied to the data resources may be publicly displayed. This may make, or give the perception that, the license is legally binding. Please check your specific situation before publishing the data.")]),e._v(" "),t("h3",{attrs:{id:"software-may-not-fully-support-the-frictionless-data-specification"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#software-may-not-fully-support-the-frictionless-data-specification"}},[e._v("#")]),e._v(" Software may not fully support the Frictionless Data specification")]),e._v(" "),t("p",[e._v("Be aware that some data platforms or software may not fully support the Frictionless Data specification. This may result in license information being lost or other issues. Always test your data publication to ensure you communicate the correct license information.")]),e._v(" "),t("p",[e._v("For example, at the time of writing:")]),e._v(" "),t("ul",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN Data Package extension"),t("OutboundLink")],1),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("does not upload the "),t("code",[e._v("README.md")]),e._v(" file in a data package. If you have described licence information in the "),t("code",[e._v("README.md")]),e._v(" file, this will be lost ("),t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager/issues/60",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue #60"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("does not display license information in the datapackage.json file correctly ("),t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager/issues/62",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue #62"),t("OutboundLink")],1),e._v(")")])])]),e._v(" "),t("li",[t("p",[t("RouterLink",{attrs:{to:"/blog/2019/03/01/datacurator/"}},[e._v("Data Curator")]),e._v(" only allows the user to select from a limited set of open licenses to describe the data package and data resource licenses.")],1)])])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{591:function(e,a,t){"use strict";t.r(a);var n=t(29),i=Object(n.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Applying licenses, waivers or public domain marks to "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data packages"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/",target:"_blank",rel:"noopener noreferrer"}},[e._v("data resources"),t("OutboundLink")],1),e._v(" helps people understand how they can use, modify and share the contents of a data package.")]),e._v(" "),t("p",[e._v("It is recommended to that you apply a license, waiver or public domain mark to a data package using the "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("licenses")]),t("OutboundLink")],1),e._v(" property. The value assigned to the data package "),t("code",[e._v("licenses")]),e._v(" property applies to all the data, files and metadata in the data package unless specified otherwise.")]),e._v(" "),t("p",[e._v("You can optionally apply a license to a data resource. This allows a license that differs from the data package license to be applied to the data resource. If the data resource "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#optional-properties",target:"_blank",rel:"noopener noreferrer"}},[t("code",[e._v("licenses")]),t("OutboundLink")],1),e._v(" property is not specified, it inherits the data package "),t("code",[e._v("licenses")]),e._v(".")]),e._v(" "),t("h2",{attrs:{id:"specifying-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specifying-a-license"}},[e._v("#")]),e._v(" Specifying a license")]),e._v(" "),t("p",[e._v("The Frictionless Data specification states that a "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[e._v("license"),t("OutboundLink")],1),e._v(" must contain a "),t("code",[e._v("name")]),e._v(" property and/or a "),t("code",[e._v("path")]),e._v(" property, and may contain a "),t("code",[e._v("title")]),e._v(" property.")]),e._v(" "),t("blockquote",[t("ul",[t("li",[t("code",[e._v("name")]),e._v(": The name MUST be an "),t("a",{attrs:{href:"http://licenses.opendefinition.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Definition license ID"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("code",[e._v("path")]),e._v(": A "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-resource/#url-or-path",target:"_blank",rel:"noopener noreferrer"}},[e._v("url-or-path"),t("OutboundLink")],1),e._v(" string, that is a fully qualified HTTP address, or a relative POSIX path")]),e._v(" "),t("li",[t("code",[e._v("title")]),e._v(": A human-readable title")])])]),e._v(" "),t("p",[e._v("You can specify the location of a license using a URL or a Path.")]),e._v(" "),t("h3",{attrs:{id:"specify-a-license-using-a-url"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specify-a-license-using-a-url"}},[e._v("#")]),e._v(" Specify a license using a URL")]),e._v(" "),t("p",[e._v("To specify a license using a URL, use the fully qualified HTTP address as the value in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "https://cdla.io/sharing-1-0/",\n "title": "Community Data License Agreement – Sharing, Version 1.0"\n}]\n')])])]),t("h3",{attrs:{id:"specify-a-license-using-a-path"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#specify-a-license-using-a-path"}},[e._v("#")]),e._v(" Specify a license using a Path")]),e._v(" "),t("p",[e._v("To specify a license using a path, use a relative POSIX path to the file in the data package as the value in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "LICENSE.pdf"\n}]\n')])])]),t("p",[e._v("In this example, LICENSE.pdf would be in the root of the data package folder, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("folder\n |- datapackage.json\n |- LICENSE.pdf\n |- README.md\n |- data\n |- data.csv\n |- reference-data.csv\n\n")])])]),t("p",[e._v("It is recommended that the licence is provided in "),t("a",{attrs:{href:"http://commonmark.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("markdown"),t("OutboundLink")],1),e._v(" format to simplify its display in data platforms and other software.")]),e._v(" "),t("p",[e._v("The license can be a separate file or included in the "),t("code",[e._v("README.md")]),e._v(" file. If license information is included in the "),t("code",[e._v("README.md")]),e._v(" file, it is recommended that it follows the "),t("RouterLink",{attrs:{to:"/blog/2016/04/20/publish-faq/#readme"}},[e._v("guide for formatting a README file")]),e._v(".")],1),e._v(" "),t("h2",{attrs:{id:"applying-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#applying-a-license"}},[e._v("#")]),e._v(" Applying a license")]),e._v(" "),t("p",[e._v("These scenarios apply to either the data package or a data resource.")]),e._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"#apply-an-open-license"}},[e._v("Apply an open license")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-non-open-license"}},[e._v("Apply a non-open license")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-waiver"}},[e._v("Apply a waiver")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#apply-a-public-domain-mark"}},[e._v("Apply a public domain mark")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#do-not-apply-a-license"}},[e._v("Do not apply a license")])])]),e._v(" "),t("p",[e._v("Other considerations:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"#provide-additional-license-information"}},[e._v("Provide additional license information")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#copyright-belongs-to-multiple-parties"}},[e._v("Copyright belongs to multiple parties")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#license-may-become-legally-binding"}},[e._v("License may become legally binding")])]),e._v(" "),t("li",[t("a",{attrs:{href:"#software-may-not-fully-support-the-frictionless-data-specification"}},[e._v("Software may not fully support the Frictionless Data specification")])])]),e._v(" "),t("h3",{attrs:{id:"apply-an-open-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-an-open-license"}},[e._v("#")]),e._v(" Apply an open license")]),e._v(" "),t("p",[e._v("For an "),t("a",{attrs:{href:"http://opendefinition.org/licenses/",target:"_blank",rel:"noopener noreferrer"}},[e._v("open license"),t("OutboundLink")],1),e._v(", use "),t("code",[e._v("name")]),e._v(", "),t("code",[e._v("path")]),e._v(" and "),t("code",[e._v("title")]),e._v(", e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "CC-BY-4.0",\n "path": "https://creativecommons.org/licenses/by/4.0/",\n "title": "Creative Commons Attribution 4.0"\n}]\n')])])]),t("p",[t("code",[e._v("name")]),e._v(" must be an "),t("a",{attrs:{href:"http://licenses.opendefinition.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Definition license ID"),t("OutboundLink")],1),e._v(" however note that some license IDs are placeholders or have been retired and should not be used, e.g. "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-at.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-at"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-open.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-open"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/other-pd.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("other-pd"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/notspecified.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("notspecified"),t("OutboundLink")],1),e._v(", "),t("a",{attrs:{href:"http://licenses.opendefinition.org/licenses/ukcrown-withrights.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("ukcrown-withrights"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-non-open-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-non-open-license"}},[e._v("#")]),e._v(" Apply a non-open license")]),e._v(" "),t("p",[e._v("To apply an non-open license, use the "),t("code",[e._v("path")]),e._v(" and optionally the "),t("code",[e._v("title")]),e._v(" properties. It is preferred that the license is published at a URL (a fully qualified HTTP address), e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "https://creativecommons.org/licenses/by-nc-nd/4.0/",\n "title": "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)"\n}]\n')])])]),t("p",[e._v("If the license is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify a license using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-waiver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-waiver"}},[e._v("#")]),e._v(" Apply a waiver")]),e._v(" "),t("p",[e._v("You can indicate that copyright has been waived by referencing a waiver at a URL in the "),t("code",[e._v("path")]),e._v(" property, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "CC0-1.0"\n "path": "https://creativecommons.org/publicdomain/zero/1.0/",\n "title": "CC0 1.0"\n}]\n')])])]),t("p",[e._v("If the waiver is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify a waiver using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"apply-a-public-domain-mark"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#apply-a-public-domain-mark"}},[e._v("#")]),e._v(" Apply a public domain mark")]),e._v(" "),t("p",[e._v("You can indicate that there is no copyright in the data or that copyright has expired, using the "),t("a",{attrs:{href:"https://creativecommons.org/share-your-work/public-domain/pdm/",target:"_blank",rel:"noopener noreferrer"}},[e._v("public domain mark"),t("OutboundLink")],1),e._v(" or other public domain dedications, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "http://creativecommons.org/publicdomain/mark/1.0/",\n "title": "Public Domain Mark"\n}]\n')])])]),t("p",[e._v("If the public domain dedication is not available at a URL, you can "),t("a",{attrs:{href:"#specify-a-license-using-a-path"}},[e._v("specify the public domain dedication using a path")]),e._v(".")]),e._v(" "),t("h3",{attrs:{id:"do-not-apply-a-license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#do-not-apply-a-license"}},[e._v("#")]),e._v(" Do not apply a license")]),e._v(" "),t("p",[e._v("If you have not decided what license to apply but still want to publish the data package, describe the situation in a file in the data package, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "path": "README.md"\n}]\n')])])]),t("h2",{attrs:{id:"other-considerations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#other-considerations"}},[e._v("#")]),e._v(" Other considerations")]),e._v(" "),t("h3",{attrs:{id:"provide-additional-license-information"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#provide-additional-license-information"}},[e._v("#")]),e._v(" Provide additional license information")]),e._v(" "),t("p",[e._v("It can be helpful to data consumers to provide additional copyright or attribution information such as:")]),e._v(" "),t("ul",[t("li",[e._v("copyright notice - this allows a data publisher to specify a short copyright notice")]),e._v(" "),t("li",[e._v("copyright statement URL - a URL to a copyright statement")]),e._v(" "),t("li",[e._v("preferred attribution text - the text to be used when attributing the creator(s) of the data")]),e._v(" "),t("li",[e._v("attribution URL - a URL to be used when building an attribution link")])]),e._v(" "),t("p",[e._v("This is explained in the ODI "),t("a",{attrs:{href:"https://theodi.org/guides/publishers-guide-to-the-open-data-rights-statement-vocabulary",target:"_blank",rel:"noopener noreferrer"}},[e._v("Publisher’s Guide to the Open Data Rights Statement Vocabulary"),t("OutboundLink")],1),e._v(" and "),t("a",{attrs:{href:"https://theodi.org/guides/odrs-reusers-guide",target:"_blank",rel:"noopener noreferrer"}},[e._v("Re-users Guide to the Open Data Rights Statement Vocabulary"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Some licenses require that data consumers provide the copyright notice in the attribution (e.g. "),t("a",{attrs:{href:"https://creativecommons.org/licenses/by/4.0/legalcode#s3",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC BY 4.0 Section 3"),t("OutboundLink")],1),e._v(").")]),e._v(" "),t("p",[e._v("Some data publishers may waive some of their rights under a license, e.g.")]),e._v(" "),t("blockquote",[t("p",[t("a",{attrs:{href:"https://data.gov.au/dataset/noosa-wedding-locations",target:"_blank",rel:"noopener noreferrer"}},[e._v("Noosa Wedding Locations"),t("OutboundLink")],1),e._v(" data by "),t("a",{attrs:{href:"https://www.noosa.qld.gov.au",target:"_blank",rel:"noopener noreferrer"}},[e._v("Noosa Shire Council"),t("OutboundLink")],1),e._v(" is licensed under a "),t("a",{attrs:{href:"https://creativecommons.org/licenses/by/4.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution 4.0"),t("OutboundLink")],1),e._v(" licence."),t("br"),e._v("\nNoosa Shire Council waives the requirements of attribution under this licence, for this data.")])]),e._v(" "),t("p",[e._v("You can include this information, either:")]),e._v(" "),t("ul",[t("li",[e._v("in the file containing license information (e.g. "),t("code",[e._v("README.md")]),e._v(")")]),e._v(" "),t("li",[e._v("as additional metadata properties in the datapackage.json")])]),e._v(" "),t("p",[e._v("The data package specification supports adding "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#descriptor",target:"_blank",rel:"noopener noreferrer"}},[e._v("additional metadata properties"),t("OutboundLink")],1),e._v(" to the datapackage.json, e.g.")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "name" : "coastal-data-system-near-real-time-wave-data",\n "title" : "Coastal Data System – Near real time wave data",\n "licenses" : [{\n "name": "CC-BY-4.0",\n "path": "https://creativecommons.org/licenses/by/4.0/",\n "title": "Creative Commons Attribution 4.0"\n }],\n "copyrightNotice": "© The State of Queensland 1995–2017",\n "copyrightStatement": "https://www.qld.gov.au/legal/copyright",\n "attributionText": "Science, Information Technology and Innovation, Queensland Government, Coastal Data System – Near real time wave data, licensed under Creative Commons Attribution 4.0 sourced on 26 December 2017",\n "resources": [\n {\n "path": "https://data.qld.gov.au/dataset/coastal-data-system-near-real-time-wave-data",\n ...\n }\n ]\n}\n')])])]),t("h3",{attrs:{id:"copyright-belongs-to-multiple-parties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#copyright-belongs-to-multiple-parties"}},[e._v("#")]),e._v(" Copyright belongs to multiple parties")]),e._v(" "),t("p",[e._v("Sometimes data in a resource may be combined from multiple sources that are licensed in different ways. You can indicate this by placing two or more licenses in the "),t("code",[e._v("licenses")]),e._v(" property. Further explanation should be given in the "),t("code",[e._v("README.md")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"licenses": [{\n "name": "PDDL-1.0",\n "path": "http://opendatacommons.org/licenses/pddl/",\n "title": "Open Data Commons Public Domain Dedication and License v1.0"\n },\n {\n "name": "CC-BY-SA-4.0",\n "path": "https://creativecommons.org/licenses/by-sa/4.0/",\n "title": "Creative Commons Attribution Share-Alike 4.0"\n }]\n')])])]),t("h3",{attrs:{id:"license-may-become-legally-binding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license-may-become-legally-binding"}},[e._v("#")]),e._v(" License may become legally binding")]),e._v(" "),t("p",[e._v("The "),t("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/#licenses",target:"_blank",rel:"noopener noreferrer"}},[e._v("specification"),t("OutboundLink")],1),e._v(" for "),t("code",[e._v("licenses")]),e._v(" states:")]),e._v(" "),t("blockquote",[t("p",[t("strong",[e._v("This property is not legally binding and does not guarantee the package is licensed under the terms defined in this property.")])])]),e._v(" "),t("p",[e._v("A data package may be uploaded to a data platform and the "),t("code",[e._v("licenses")]),e._v(" applied to the data resources may be publicly displayed. This may make, or give the perception that, the license is legally binding. Please check your specific situation before publishing the data.")]),e._v(" "),t("h3",{attrs:{id:"software-may-not-fully-support-the-frictionless-data-specification"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#software-may-not-fully-support-the-frictionless-data-specification"}},[e._v("#")]),e._v(" Software may not fully support the Frictionless Data specification")]),e._v(" "),t("p",[e._v("Be aware that some data platforms or software may not fully support the Frictionless Data specification. This may result in license information being lost or other issues. Always test your data publication to ensure you communicate the correct license information.")]),e._v(" "),t("p",[e._v("For example, at the time of writing:")]),e._v(" "),t("ul",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN Data Package extension"),t("OutboundLink")],1),e._v(":")]),e._v(" "),t("ul",[t("li",[e._v("does not upload the "),t("code",[e._v("README.md")]),e._v(" file in a data package. If you have described licence information in the "),t("code",[e._v("README.md")]),e._v(" file, this will be lost ("),t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager/issues/60",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue #60"),t("OutboundLink")],1),e._v(")")]),e._v(" "),t("li",[e._v("does not display license information in the datapackage.json file correctly ("),t("a",{attrs:{href:"https://github.com/frictionlessdata/ckanext-datapackager/issues/62",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue #62"),t("OutboundLink")],1),e._v(")")])])]),e._v(" "),t("li",[t("p",[t("RouterLink",{attrs:{to:"/blog/2019/03/01/datacurator/"}},[e._v("Data Curator")]),e._v(" only allows the user to select from a limited set of open licenses to describe the data package and data resource licenses.")],1)])])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/77.1e8f9c2d.js b/assets/js/77.ad0bf117.js similarity index 97% rename from assets/js/77.1e8f9c2d.js rename to assets/js/77.ad0bf117.js index 9ccf8b48d..8bf573ed4 100644 --- a/assets/js/77.1e8f9c2d.js +++ b/assets/js/77.ad0bf117.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{594:function(a,t,e){"use strict";e.r(t);var s=e(29),o=Object(s.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("p",[a._v("This tutorial will show you how to install the JavaScript libraries for working with Data Packages and Table Schema, load a CSV file, infer its schema, and write a Tabular Data Package.")]),a._v(" "),e("h2",{attrs:{id:"setup"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[a._v("#")]),a._v(" Setup")]),a._v(" "),e("p",[a._v("For this tutorial we will need "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-js",target:"_blank",rel:"noopener noreferrer"}},[a._v("datapackage-js"),e("OutboundLink")],1),a._v(" which is a JavaScript library for working with Data Packages.")]),a._v(" "),e("p",[a._v("Using Node Package Manager ("),e("code",[a._v("npm")]),a._v("), install the latest version of "),e("code",[a._v("datapackage-js")]),a._v(" by entering the following into your command line:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[a._v("npm")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" datapackage@latest\n")])])]),e("p",[a._v("Run the "),e("code",[a._v("datapackage --help")]),a._v(" command to find out all options available to you.")]),a._v(" "),e("h2",{attrs:{id:"creating-a-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-package"}},[a._v("#")]),a._v(" Creating a package")]),a._v(" "),e("p",[a._v("The basic building block of a data package is the "),e("code",[a._v("datapackage.json")]),a._v(" file. It contains the schema and metadata of your data collections.")]),a._v(" "),e("p",[a._v("Now that the node package for working with data packages has been installed, create a directory for your project, and use the command "),e("code",[a._v("datapackage infer path/to/file.csv")]),a._v(" to generate a schema for your dataset. To save this file in the directory for editing and sharing, simply append "),e("code",[a._v("> datapackage.json")]),a._v(" to the command above, like so:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("datapackage infer path/to/file.csv "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" datapackage.json\n")])])]),e("p",[a._v("This creates a "),e("code",[a._v("datapackage.json")]),a._v(" file in this directory.")]),a._v(" "),e("h2",{attrs:{id:"publishing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing"}},[a._v("#")]),a._v(" Publishing")]),a._v(" "),e("p",[a._v("Now that you have created your Data Package, you might want to "),e("RouterLink",{attrs:{to:"/blog/2016/08/29/publish-online/"}},[a._v("publish your data online")]),a._v(" so that you can share it with others.")],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{592:function(a,t,e){"use strict";e.r(t);var s=e(29),o=Object(s.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("p",[a._v("This tutorial will show you how to install the JavaScript libraries for working with Data Packages and Table Schema, load a CSV file, infer its schema, and write a Tabular Data Package.")]),a._v(" "),e("h2",{attrs:{id:"setup"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[a._v("#")]),a._v(" Setup")]),a._v(" "),e("p",[a._v("For this tutorial we will need "),e("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-js",target:"_blank",rel:"noopener noreferrer"}},[a._v("datapackage-js"),e("OutboundLink")],1),a._v(" which is a JavaScript library for working with Data Packages.")]),a._v(" "),e("p",[a._v("Using Node Package Manager ("),e("code",[a._v("npm")]),a._v("), install the latest version of "),e("code",[a._v("datapackage-js")]),a._v(" by entering the following into your command line:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[a._v("npm")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" datapackage@latest\n")])])]),e("p",[a._v("Run the "),e("code",[a._v("datapackage --help")]),a._v(" command to find out all options available to you.")]),a._v(" "),e("h2",{attrs:{id:"creating-a-package"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-package"}},[a._v("#")]),a._v(" Creating a package")]),a._v(" "),e("p",[a._v("The basic building block of a data package is the "),e("code",[a._v("datapackage.json")]),a._v(" file. It contains the schema and metadata of your data collections.")]),a._v(" "),e("p",[a._v("Now that the node package for working with data packages has been installed, create a directory for your project, and use the command "),e("code",[a._v("datapackage infer path/to/file.csv")]),a._v(" to generate a schema for your dataset. To save this file in the directory for editing and sharing, simply append "),e("code",[a._v("> datapackage.json")]),a._v(" to the command above, like so:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("datapackage infer path/to/file.csv "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" datapackage.json\n")])])]),e("p",[a._v("This creates a "),e("code",[a._v("datapackage.json")]),a._v(" file in this directory.")]),a._v(" "),e("h2",{attrs:{id:"publishing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#publishing"}},[a._v("#")]),a._v(" Publishing")]),a._v(" "),e("p",[a._v("Now that you have created your Data Package, you might want to "),e("RouterLink",{attrs:{to:"/blog/2016/08/29/publish-online/"}},[a._v("publish your data online")]),a._v(" so that you can share it with others.")],1)])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/78.c51dc60c.js b/assets/js/78.cb9a2564.js similarity index 99% rename from assets/js/78.c51dc60c.js rename to assets/js/78.cb9a2564.js index 3bb3388f8..37369e4f0 100644 --- a/assets/js/78.c51dc60c.js +++ b/assets/js/78.cb9a2564.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{593:function(t,a,s){"use strict";s.r(a);var n=s(29),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("In a "),s("RouterLink",{attrs:{to:"/blog/2018/04/06/joining-data-in-python/"}},[t._v("separate guide")]),t._v(", I walked through joining a tabular dataset with one containing geographic information. In this guide, I will demonstrate an example of joining two tabular datasets.")],1),t._v(" "),s("p",[t._v("There are, of course, various, more robust ways of joining tabular data. The example listed below is intended to demonstrate how the current libraries and specifications work together to perform this common task.")]),t._v(" "),s("h2",{attrs:{id:"data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" Data")]),t._v(" "),s("p",[t._v("In this case, we want to join a dataset containing the "),s("em",[t._v("nominal")]),t._v(" Gross Domestic Product(GDP) per country per year with the Consumer Price Index (CPI) per country per year. By adjusting a given GDP measure by the CPI, a measure of inflation, one can yield the "),s("em",[t._v("real")]),t._v(" GDP, a measure of economic output adjusted for price changes over time. To do that, of course, we need to join these independent datasets on the common values “Country Code” and “Year”.")]),t._v(" "),s("h3",{attrs:{id:"gdp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gdp"}},[t._v("#")]),t._v(" GDP")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Country Name")]),t._v(" "),s("th",[t._v("Country Code")]),t._v(" "),s("th",[t._v("Year")]),t._v(" "),s("th",[t._v("Value")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2004")]),t._v(" "),s("td",[t._v("5285461999.33739")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2005")]),t._v(" "),s("td",[t._v("6275076016.47174")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2006")]),t._v(" "),s("td",[t._v("7057598406.61553")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2007")]),t._v(" "),s("td",[t._v("9843842455.48323")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2008")]),t._v(" "),s("td",[t._v("10190529882.4878")])])])]),t._v(" "),s("h3",{attrs:{id:"cpi"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cpi"}},[t._v("#")]),t._v(" CPI")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Country Name")]),t._v(" "),s("th",[t._v("Country Code")]),t._v(" "),s("th",[t._v("Year")]),t._v(" "),s("th",[t._v("CPI")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2004")]),t._v(" "),s("td",[t._v("63.1318927309")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2005")]),t._v(" "),s("td",[t._v("71.1409742918")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2006")]),t._v(" "),s("td",[t._v("76.3021776777")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2007")]),t._v(" "),s("td",[t._v("82.7748069188")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2008")]),t._v(" "),s("td",[t._v("108.0666000101")])])])]),t._v(" "),s("h2",{attrs:{id:"loading-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#loading-the-data"}},[t._v("#")]),t._v(" Loading the Data")]),t._v(" "),s("p",[t._v("As usual, the first step is to load the Data Packages library "),s("code",[t._v("datapackage")]),t._v(". We also need to import "),s("code",[t._v("DictWriter")]),t._v(" to write our merged rows to a new CSV.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datapackage\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" csv "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" DictWriter\n\ncpi_dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DataPackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/cpi/datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ngdp_dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DataPackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/gross-domestic-product-all/datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("Given that our source data has already been packaged in "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" format, we know that we have a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[s("em",[t._v("schema")]),s("OutboundLink")],1),t._v(" for each CSV which specifies useful information for each column. We’d like to merge and preserve this schema information as we’ll need it for specifying the combined schema in our new Data Package. Note that we’re also adding a new derived column named ‘Real GDP’ and giving it a type of "),s("code",[t._v("number")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("field_info "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("extend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("extend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("append"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Real GDP'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'type'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'number'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("Now that we have this information, we can generate a "),s("code",[t._v("fieldnames")]),t._v(" array containing only the names of the columns to eventually pass to "),s("code",[t._v("DictWriter")]),t._v(" when we’re ready write out our new CSV.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("fieldnames "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" f "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" field_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("h2",{attrs:{id:"joining-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#joining-the-data"}},[t._v("#")]),t._v(" Joining the Data")]),t._v(" "),s("p",[t._v("What follows is a fairly simple example of iterating through each row of each CSV and creating a new "),s("code",[t._v("merged_row")]),t._v(" when ‘Year’ and ‘Country Code’ match on the two datasets. We are also calculating our derived ‘Real GDP’ column based in the information found in the original columns.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'w'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" csvfile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n writer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" DictWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("csvfile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("fieldnames"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("fieldnames"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("writeheader"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" gdp_row "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" gdp_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" cpi_row "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" cpi_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Year'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Year'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("and")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n merged_row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("copy"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("update"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("update"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Real GDP'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Value'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'CPI'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("writerow"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),s("h2",{attrs:{id:"creating-a-new-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-data-package"}},[t._v("#")]),t._v(" Creating a New Data Package")]),t._v(" "),s("p",[t._v("Now that we’ve created our new CSV "),s("code",[t._v("real_gdp.csv")]),t._v(", we can use the Data Package library to package it up with some useful metadata. Note that we are passing the merged "),s("code",[t._v("field_info")]),t._v(" array into our "),s("code",[t._v("schema")]),t._v(" definition. Given that we are generating this Data Package “by hand”, we need to run the "),s("code",[t._v("validate")]),t._v(" method on the new Data Package object to make sure that we are, indeed, creating a valid Data Package. After validating the Data Package metadata, we can either write the Data Package directly or save the whole thing as a zip file using the "),s("code",[t._v("save")]),t._v(" method.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ndp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real-gdp'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'format'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" field_info\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n\nresource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nresource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),t._v("\n\ndp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("validate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'w'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("write"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("to_json"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# dp.save("real_gdp.zip")')]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{594:function(t,a,s){"use strict";s.r(a);var n=s(29),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("In a "),s("RouterLink",{attrs:{to:"/blog/2018/04/06/joining-data-in-python/"}},[t._v("separate guide")]),t._v(", I walked through joining a tabular dataset with one containing geographic information. In this guide, I will demonstrate an example of joining two tabular datasets.")],1),t._v(" "),s("p",[t._v("There are, of course, various, more robust ways of joining tabular data. The example listed below is intended to demonstrate how the current libraries and specifications work together to perform this common task.")]),t._v(" "),s("h2",{attrs:{id:"data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" Data")]),t._v(" "),s("p",[t._v("In this case, we want to join a dataset containing the "),s("em",[t._v("nominal")]),t._v(" Gross Domestic Product(GDP) per country per year with the Consumer Price Index (CPI) per country per year. By adjusting a given GDP measure by the CPI, a measure of inflation, one can yield the "),s("em",[t._v("real")]),t._v(" GDP, a measure of economic output adjusted for price changes over time. To do that, of course, we need to join these independent datasets on the common values “Country Code” and “Year”.")]),t._v(" "),s("h3",{attrs:{id:"gdp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#gdp"}},[t._v("#")]),t._v(" GDP")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Country Name")]),t._v(" "),s("th",[t._v("Country Code")]),t._v(" "),s("th",[t._v("Year")]),t._v(" "),s("th",[t._v("Value")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2004")]),t._v(" "),s("td",[t._v("5285461999.33739")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2005")]),t._v(" "),s("td",[t._v("6275076016.47174")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2006")]),t._v(" "),s("td",[t._v("7057598406.61553")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2007")]),t._v(" "),s("td",[t._v("9843842455.48323")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2008")]),t._v(" "),s("td",[t._v("10190529882.4878")])])])]),t._v(" "),s("h3",{attrs:{id:"cpi"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#cpi"}},[t._v("#")]),t._v(" CPI")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Country Name")]),t._v(" "),s("th",[t._v("Country Code")]),t._v(" "),s("th",[t._v("Year")]),t._v(" "),s("th",[t._v("CPI")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2004")]),t._v(" "),s("td",[t._v("63.1318927309")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2005")]),t._v(" "),s("td",[t._v("71.1409742918")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2006")]),t._v(" "),s("td",[t._v("76.3021776777")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2007")]),t._v(" "),s("td",[t._v("82.7748069188")])]),t._v(" "),s("tr",[s("td",[t._v("Afghanistan")]),t._v(" "),s("td",[t._v("AFG")]),t._v(" "),s("td",[t._v("2008")]),t._v(" "),s("td",[t._v("108.0666000101")])])])]),t._v(" "),s("h2",{attrs:{id:"loading-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#loading-the-data"}},[t._v("#")]),t._v(" Loading the Data")]),t._v(" "),s("p",[t._v("As usual, the first step is to load the Data Packages library "),s("code",[t._v("datapackage")]),t._v(". We also need to import "),s("code",[t._v("DictWriter")]),t._v(" to write our merged rows to a new CSV.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" datapackage\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" csv "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" DictWriter\n\ncpi_dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DataPackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/cpi/datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ngdp_dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DataPackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://raw.githubusercontent.com/frictionlessdata/example-data-packages/master/gross-domestic-product-all/datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("Given that our source data has already been packaged in "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" format, we know that we have a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema",target:"_blank",rel:"noopener noreferrer"}},[s("em",[t._v("schema")]),s("OutboundLink")],1),t._v(" for each CSV which specifies useful information for each column. We’d like to merge and preserve this schema information as we’ll need it for specifying the combined schema in our new Data Package. Note that we’re also adding a new derived column named ‘Real GDP’ and giving it a type of "),s("code",[t._v("number")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("field_info "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("extend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("extend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nfield_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("append"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Real GDP'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'type'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'number'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("Now that we have this information, we can generate a "),s("code",[t._v("fieldnames")]),t._v(" array containing only the names of the columns to eventually pass to "),s("code",[t._v("DictWriter")]),t._v(" when we’re ready write out our new CSV.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("fieldnames "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" f "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" field_info"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("h2",{attrs:{id:"joining-the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#joining-the-data"}},[t._v("#")]),t._v(" Joining the Data")]),t._v(" "),s("p",[t._v("What follows is a fairly simple example of iterating through each row of each CSV and creating a new "),s("code",[t._v("merged_row")]),t._v(" when ‘Year’ and ‘Country Code’ match on the two datasets. We are also calculating our derived ‘Real GDP’ column based in the information found in the original columns.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'w'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" csvfile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n writer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" DictWriter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("csvfile"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("fieldnames"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("fieldnames"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("writeheader"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" gdp_row "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" gdp_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" cpi_row "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" cpi_dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Year'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Year'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("and")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Country Code'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n merged_row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("copy"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("update"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("update"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Real GDP'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdp_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Value'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("float")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cpi_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'CPI'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n writer"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("writerow"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("merged_row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n")])])]),s("h2",{attrs:{id:"creating-a-new-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-new-data-package"}},[t._v("#")]),t._v(" Creating a New Data Package")]),t._v(" "),s("p",[t._v("Now that we’ve created our new CSV "),s("code",[t._v("real_gdp.csv")]),t._v(", we can use the Data Package library to package it up with some useful metadata. Note that we are passing the merged "),s("code",[t._v("field_info")]),t._v(" array into our "),s("code",[t._v("schema")]),t._v(" definition. Given that we are generating this Data Package “by hand”, we need to run the "),s("code",[t._v("validate")]),t._v(" method on the new Data Package object to make sure that we are, indeed, creating a valid Data Package. After validating the Data Package metadata, we can either write the Data Package directly or save the whole thing as a zip file using the "),s("code",[t._v("save")]),t._v(" method.")]),t._v(" "),s("div",{staticClass:"language-python extra-class"},[s("pre",{pre:!0,attrs:{class:"language-python"}},[s("code",[t._v("dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" datapackage"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Package"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\ndp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real-gdp'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'name'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'format'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'csv'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'schema'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'fields'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" field_info\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n\nresource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("resources"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\nresource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("descriptor"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'real_gdp.csv'")]),t._v("\n\ndp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("validate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("open")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'datapackage.json'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'w'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n f"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("write"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("to_json"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# dp.save("real_gdp.zip")')]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/79.df9ef6ef.js b/assets/js/79.641a180c.js similarity index 99% rename from assets/js/79.df9ef6ef.js rename to assets/js/79.641a180c.js index 43fce605e..164d1493c 100644 --- a/assets/js/79.df9ef6ef.js +++ b/assets/js/79.641a180c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{595:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Georges Labrèche was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in Java programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/10/24/georges-labreche/"}},[t._v("his grantee profile")]),t._v(".")],1),t._v(" "),s("p",[t._v("In this post, Labrèche will show you how to install and use the "),s("a",{attrs:{href:"https://www.java.com/en/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Our goal in this tutorial is to load tabular data from a CSV file, infer data types and the table’s schema.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("First things first, you’ll want to grab "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-java"),s("OutboundLink")],1),t._v(" and the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-java"),s("OutboundLink")],1),t._v(" libraries.")]),t._v(" "),s("h2",{attrs:{id:"the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-data"}},[t._v("#")]),t._v(" The Data")]),t._v(" "),s("p",[t._v("For our example, we will use a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" containing the periodic table. You can find the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("data package descriptor"),s("OutboundLink")],1),t._v(" and the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("data"),s("OutboundLink")],1),t._v(" on GitHub.")]),t._v(" "),s("p",[t._v("A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("h2",{attrs:{id:"packaging"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#packaging"}},[t._v("#")]),t._v(" Packaging")]),t._v(" "),s("p",[t._v("Let’s start by fetching and packaging the data:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// fetch the data")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URL")]),t._v(" url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("URL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// package the data")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Package")]),t._v(" dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Package")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("That’s it, you’re all set to start playing with the packaged data. There are parameters you can set such as loading a schema or imposing strict validation so be sure to go through the project’s "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java/blob/master/README.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("README"),s("OutboundLink")],1),t._v(" for more detail.")]),t._v(" "),s("h2",{attrs:{id:"iterating"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iterating"}},[t._v("#")]),t._v(" Iterating")]),t._v(" "),s("p",[t._v("Now that you have a Data Package instance, let’s see what the data looks like. A data package can contain more than one resource so you have to use the "),s("code",[t._v("Package.getResource()")]),t._v(" method to specify which resource you’d like to access.")]),t._v(" "),s("p",[t._v("Let’s iterate over the data:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get a resource named data from the data package")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Resource")]),t._v(" resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Iterator")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" iter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Iterate")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasNext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" atomicNumber "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" symbol "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" atomicMass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" metalOrNonMetal "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),s("p",[t._v("Notice how we’re fetching all values as "),s("code",[t._v("String")]),t._v(". This may not be what you want, particularly for the atomic number and mass. Alternatively, you can trigger data type inference and casting like this:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Third boolean is the cast flag.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Iterator")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" iter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasNext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" atomicNumber "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" symbol "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" atomicMass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" metalOrNonMetal "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),s("p",[t._v("And that’s it, your data is now associated with the appropriate data types!")]),t._v(" "),s("h2",{attrs:{id:"inferring-the-schema"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#inferring-the-schema"}},[t._v("#")]),t._v(" Inferring the Schema")]),t._v(" "),s("p",[t._v("We wouldn’t have had to infer the data types if we had included a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Table Schema"),s("OutboundLink")],1),t._v(" when creating an instance of our Data Package. If a Table Schema is not available, then it’s something that can also be inferred and created with "),s("code",[t._v("tableschema-java")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URL")]),t._v(" url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("URL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Table")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Table")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Schema")]),t._v(" schema "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("inferSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nschema"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("write")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/path/to/write/schema.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("The type inference algorithm tries to cast to available types and each successful type casting increments a popularity score for the successful type cast in question. At the end, the best score so far is returned.")]),t._v(" "),s("p",[t._v("The inference algorithm traverses all of the table’s rows and attempts to cast every single value of the table. When dealing with large tables, you might want to limit the number of rows that the inference algorithm processes:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Only process the first 25 rows for type inference.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Schema")]),t._v(" schema "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("inferSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("Be sure to go through "),s("code",[t._v("tableschema-java")]),t._v("'s "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java/blob/master/README.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("README"),s("OutboundLink")],1),t._v(" as well to learn more about how to operate with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Table Schema"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"contributing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[t._v("#")]),t._v(" Contributing")]),t._v(" "),s("p",[t._v("In case you discovered an issue that you’d like to contribute a fix for, or if you would like to extend functionality:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install jabba and maven2")]),t._v("\n$ "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" tableschema-java\n$ jabba "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.8")]),t._v("\n$ jabba use "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.8")]),t._v("\n$ mvn "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" -DskipTests"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true -Dmaven.javadoc.skip"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true -B -V\n$ mvn "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("test")]),t._v(" -B\n\n")])])]),s("p",[t._v("Make sure that all tests pass, and submit a PR with your contributions once you’re ready.")]),t._v(" "),s("p",[t._v("We also welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the datapackage-java repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{598:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Georges Labrèche was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data libraries in Java programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/10/24/georges-labreche/"}},[t._v("his grantee profile")]),t._v(".")],1),t._v(" "),s("p",[t._v("In this post, Labrèche will show you how to install and use the "),s("a",{attrs:{href:"https://www.java.com/en/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Java"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Our goal in this tutorial is to load tabular data from a CSV file, infer data types and the table’s schema.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("First things first, you’ll want to grab "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-java"),s("OutboundLink")],1),t._v(" and the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java",target:"_blank",rel:"noopener noreferrer"}},[t._v("tableschema-java"),s("OutboundLink")],1),t._v(" libraries.")]),t._v(" "),s("h2",{attrs:{id:"the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-data"}},[t._v("#")]),t._v(" The Data")]),t._v(" "),s("p",[t._v("For our example, we will use a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Package"),s("OutboundLink")],1),t._v(" containing the periodic table. You can find the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("data package descriptor"),s("OutboundLink")],1),t._v(" and the "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv",target:"_blank",rel:"noopener noreferrer"}},[t._v("data"),s("OutboundLink")],1),t._v(" on GitHub.")]),t._v(" "),s("p",[t._v("A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("h2",{attrs:{id:"packaging"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#packaging"}},[t._v("#")]),t._v(" Packaging")]),t._v(" "),s("p",[t._v("Let’s start by fetching and packaging the data:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// fetch the data")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URL")]),t._v(" url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("URL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// package the data")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Package")]),t._v(" dp "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Package")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("That’s it, you’re all set to start playing with the packaged data. There are parameters you can set such as loading a schema or imposing strict validation so be sure to go through the project’s "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java/blob/master/README.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("README"),s("OutboundLink")],1),t._v(" for more detail.")]),t._v(" "),s("h2",{attrs:{id:"iterating"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iterating"}},[t._v("#")]),t._v(" Iterating")]),t._v(" "),s("p",[t._v("Now that you have a Data Package instance, let’s see what the data looks like. A data package can contain more than one resource so you have to use the "),s("code",[t._v("Package.getResource()")]),t._v(" method to specify which resource you’d like to access.")]),t._v(" "),s("p",[t._v("Let’s iterate over the data:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get a resource named data from the data package")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Resource")]),t._v(" resource "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pkg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getResource")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Iterator")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" iter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Iterate")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasNext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" atomicNumber "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" symbol "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" atomicMass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" metalOrNonMetal "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),s("p",[t._v("Notice how we’re fetching all values as "),s("code",[t._v("String")]),t._v(". This may not be what you want, particularly for the atomic number and mass. Alternatively, you can trigger data type inference and casting like this:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Third boolean is the cast flag.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Iterator")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Object")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" iter "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" resource"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("iter")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Iterator")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasNext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" row "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" iter"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("next")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" atomicNumber "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" symbol "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" name "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("float")]),t._v(" atomicMass "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \t"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" metalOrNonMetal "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n")])])]),s("p",[t._v("And that’s it, your data is now associated with the appropriate data types!")]),t._v(" "),s("h2",{attrs:{id:"inferring-the-schema"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#inferring-the-schema"}},[t._v("#")]),t._v(" Inferring the Schema")]),t._v(" "),s("p",[t._v("We wouldn’t have had to infer the data types if we had included a "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Table Schema"),s("OutboundLink")],1),t._v(" when creating an instance of our Data Package. If a Table Schema is not available, then it’s something that can also be inferred and created with "),s("code",[t._v("tableschema-java")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("URL")]),t._v(" url "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("URL")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/data.csv"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Table")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Table")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Schema")]),t._v(" schema "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("inferSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nschema"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("write")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/path/to/write/schema.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("The type inference algorithm tries to cast to available types and each successful type casting increments a popularity score for the successful type cast in question. At the end, the best score so far is returned.")]),t._v(" "),s("p",[t._v("The inference algorithm traverses all of the table’s rows and attempts to cast every single value of the table. When dealing with large tables, you might want to limit the number of rows that the inference algorithm processes:")]),t._v(" "),s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Only process the first 25 rows for type inference.")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Schema")]),t._v(" schema "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("inferSchema")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n")])])]),s("p",[t._v("Be sure to go through "),s("code",[t._v("tableschema-java")]),t._v("'s "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-java/blob/master/README.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("README"),s("OutboundLink")],1),t._v(" as well to learn more about how to operate with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/table-schema/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Table Schema"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"contributing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[t._v("#")]),t._v(" Contributing")]),t._v(" "),s("p",[t._v("In case you discovered an issue that you’d like to contribute a fix for, or if you would like to extend functionality:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# install jabba and maven2")]),t._v("\n$ "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" tableschema-java\n$ jabba "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.8")]),t._v("\n$ jabba use "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.8")]),t._v("\n$ mvn "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" -DskipTests"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true -Dmaven.javadoc.skip"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("true -B -V\n$ mvn "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("test")]),t._v(" -B\n\n")])])]),s("p",[t._v("Make sure that all tests pass, and submit a PR with your contributions once you’re ready.")]),t._v(" "),s("p",[t._v("We also welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-java/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the datapackage-java repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/8.215bd622.js b/assets/js/8.4d18202d.js similarity index 94% rename from assets/js/8.215bd622.js rename to assets/js/8.4d18202d.js index 9f1f3a9c6..7641c9382 100644 --- a/assets/js/8.215bd622.js +++ b/assets/js/8.4d18202d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{494:function(e,t,a){e.exports=a.p+"assets/img/bcodmoLogo.958d74b9.jpg"},495:function(e,t,a){e.exports=a.p+"assets/img/bcodmo1.1e0069cf.png"},496:function(e,t,a){e.exports=a.p+"assets/img/bcodmo2.1e6fde83.png"},497:function(e,t,a){e.exports=a.p+"assets/img/bcodmo3.a2871755.png"},498:function(e,t,a){e.exports=a.p+"assets/img/bcodmo4.74b606a5.png"},499:function(e,t,a){e.exports=a.p+"assets/img/bcodmo5.ab522411.png"},500:function(e,t,a){e.exports=a.p+"assets/img/bcodmo6.c90593b8.png"},620:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("This blog post describes a Frictionless Data Pilot with the Biological and Chemical Oceanography Data Management Office (BCO-DMO). Pilot projects are part of the "),o("a",{attrs:{href:"https://frictionlessdata.io/reproducible-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Reproducible Research project"),o("OutboundLink")],1),e._v(". Written by the BCO-DMO team members Adam Shepherd, Amber York, Danie Kinkade, and development by Conrad Schloer.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(494),alt:"BCO-DMO logo"}})]),e._v(" "),o("p",[e._v("Scientific research is implicitly reliant upon the creation, management, analysis, synthesis, and interpretation of data. When properly stewarded, data hold great potential to demonstrate the reproducibility of scientific results and accelerate scientific discovery. "),o("a",{attrs:{href:"https://www.bco-dmo.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Biological and Chemical Oceanography Data Management Office (BCO-DMO)"),o("OutboundLink")],1),e._v(" is a publicly accessible earth science data repository established by the National Science Foundation "),o("a",{attrs:{href:"https://www.nsf.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("(NSF)"),o("OutboundLink")],1),e._v(" for the curation of biological, chemical, and biogeochemical oceanographic data from research in coastal, marine, and laboratory environments. With the groundswell surrounding the "),o("a",{attrs:{href:"https://doi.org/10.1038/sdata.2016.18",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAIR data principles"),o("OutboundLink")],1),e._v(", BCO-DMO recognized an opportunity to improve its curation services to better support reproducibility of results, while increasing process efficiencies for incoming data submissions. "),o("strong",[e._v("In 2019, BCO-DMO worked with the Frictionless Data team at Open Knowledge Foundation to develop a web application called Laminar for creating Frictionlessdata Data Package Pipelines that help data managers process data efficiently while recording the provenance of their activities to support reproducibility of results.")])]),e._v(" "),o("p",[e._v("The mission of BCO-DMO is to provide investigators with data management services that span the full data lifecycle from data management planning, to data publication, and archiving.")]),e._v(" "),o("p",[e._v("BCO-DMO provides free access to oceanographic data through a web-based catalog with tools and features facilitating assessment of fitness for purpose. The result of this effort is a database containing over "),o("strong",[e._v("9,000 datasets from a variety of oceanographic and limnological measurements")]),e._v(" including those from: in situ sampling, moorings, floats and gliders, sediment traps; laboratory and mesocosm experiments; satellite images; derived parameters and model output; and synthesis products from data integration efforts. The project has worked with over 2,600 data contributors representing over 1,000 funded projects.")]),e._v(" "),o("p",[e._v("As the catalog of data holdings continued to grow in both size and the variety of data types it curates, BCO-DMO needed to retool its data infrastructure with three goals. First, to improve the transportation of data to, from, and within BCO-DMO’s ecosystem. Second, to support reproducibility of research by making all curation activities of the office completely transparent and traceable. Finally, to improve the efficiency and consistency across data management staff. Until recently, data curation activities in the office were largely dependent on the individual capabilities of each data manager. While some of the staff were fluent in Python and other scripting languages, others were dependent on in-house custom developed tools. These in-house tools were extremely useful and flexible, but they were developed for an aging computing paradigm grounded in physical hardware accessing local data resources on disk. While locally stored data is still the convention at BCO-DMO, the distributed nature of the web coupled with the challenges of big data stretched this toolset beyond its original intention.")]),e._v(" "),o("p",[e._v("In 2015, we were introduced to the idea of data containerization and the Frictionless Data project in a "),o("a",{attrs:{href:"https://www.rd-alliance.org/data-packages-bof-p6-bof-session.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Packages BoF"),o("OutboundLink")],1),e._v(" at the "),o("a",{attrs:{href:"https://www.rd-alliance.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Data Alliance"),o("OutboundLink")],1),e._v(" conference in Paris, France. After evaluating the Frictionless Data specifications and tools, BCO-DMO developed a strategy to underpin its new data infrastructure on the ideas behind this project.")]),e._v(" "),o("p",[e._v("While the concept of data packaging is not new, the simplicity and extendibility of the Frictionless Data implementation made it easy to adopt within an existing infrastructure. "),o("strong",[e._v("BCO-DMO identified the Data Package Pipelines (DPP) project in the Frictionless Data toolset as key to achieving its data curation goals.")]),e._v(" DPP implements the philosophy of declarative workflows which trade code in a specific programming language that tells a computer how a task should be completed, for imperative, structured statements that detail what should be done. These structured statements abstract the user writing the statements from the actual code executing them, and are useful for reproducibility over long periods of time where programming languages age, change or algorithms improve. This flexibility was appealing because it meant the intent of the data manager could be translated into many varying programming (and data) languages over time without having to refactor older workflows. In data management, that means that one of the languages a DPP workflow captures is provenance – a common need across oceanographic datasets for reproducibility. DPP Workflows translated into records of provenance explicitly communicates to data submitters and future data users what BCO-DMO had done during the curation phase. Secondly, because workflow steps need to be interpreted by computers into code that carries out the instructions, it helped data management staff converge on a declarative language they could all share. This convergence meant cohesiveness, consistency, and efficiency across the team if we could implement DPP in a way they could all use.")]),e._v(" "),o("p",[o("strong",[e._v("In 2018, BCO-DMO formed a partnership with Open Knowledge Foundation (OKF) to develop a web application that would help any BCO-DMO data manager use the declarative language they had developed in a consistent way.")]),e._v(" Why develop a web application for DPP? As the data management staff evaluated DPP and Frictionless Data, they found that there was a learning curve to setting up the DPP environment and a deep understanding of the Frictionlessdata ‘Data Package’ specification was required. The web application abstracted this required knowledge to achieve two main goals: 1) consistently structured Data Packages (datapackage.json) with all the required metadata employed at BCO-DMO, and 2) efficiencies of time by eliminating typos and syntax errors made by data managers. Thus, the partnership with OKF focused on making the needs of scientific research data a possibility within the Frictionless Data ecosystem of specs and tools.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Pipelines"),o("OutboundLink")],1),e._v(" is implemented in Python and comes with some built-in processors that can be used in a workflow. BCO-DMO took its own declarative language and identified gaps in the built-in processors. For these gaps, BCO-DMO and OKF developed Python implementations for the missing declarations to support the curation of oceanographic data, and the result was a new set of processors made available on "),o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Some notable BCO-DMO processors are:")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsboolean_add_computed_field",target:"_blank",rel:"noopener noreferrer"}},[e._v("boolean_add_computed_field"),o("OutboundLink")],1),e._v("– Computes a new field to add to the data whether a particular row satisfies a certain set of criteria."),o("br"),e._v("\nExample: Where Cruise_ID = ‘AT39-05’ and Station = 6, set Latitude to 22.1645.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsconvert_date",target:"_blank",rel:"noopener noreferrer"}},[e._v("convert_date"),o("OutboundLink")],1),e._v(" – Converts any number of fields containing date information into a single date field with display format and timezone options. Often data information is reported in multiple columns such as "),o("code",[e._v("year")]),e._v(", "),o("code",[e._v("month")]),e._v(", "),o("code",[e._v("day")]),e._v(", "),o("code",[e._v("hours_local_time")]),e._v(", "),o("code",[e._v("minutes_local_time")]),e._v(", "),o("code",[e._v("seconds_local_time")]),e._v(". For spatio-temporal datasets, it’s important to know the UTC date and time of the recorded data to ensure that searches for data with a time range are accurate. Here, these columns are combined to form an ISO 8601-compliant UTC datetime value.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsconvert_to_decimal_degrees",target:"_blank",rel:"noopener noreferrer"}},[e._v("convert_to_decimal_degrees"),o("OutboundLink")],1),e._v(" – Convert a single field containing coordinate information from degrees-minutes-seconds or degrees-decimal_minutes to decimal_degrees. The standard representation at BCO-DMO for spatial data conforms to the decimal degrees specification.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsreorder_fields",target:"_blank",rel:"noopener noreferrer"}},[e._v("reorder_fields"),o("OutboundLink")],1),e._v(" – Changes the order of columns within the data. This is a convention within the oceanographic data community to put certain columns at the beginning of tabular data to help contextualize the following columns. Examples of columns that are typically moved to the beginning are: dates, locations, instrument or vessel identifiers, and depth at collection.")]),e._v(" "),o("p",[e._v("The remaining processors used by BCO-DMO can be found at "),o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/BCODMO/bcodmo_processors"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("How does Laminar work?"),o("br"),e._v("\nIn our collaboration with OKF, BCO-DMO developed use cases based on real-world data submissions. One such example is a recent Arctic Nitrogen Fixation Rates dataset.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(495),alt:"Arctic dataset"}})]),e._v(" "),o("p",[e._v("The original dataset shown above needed the following curation steps to make the data more interoperable and reusable:")]),e._v(" "),o("p",[e._v("Convert lat/lon to decimal degrees"),o("br"),e._v("\nAdd timestamp (UTC) in ISO format"),o("br"),e._v("\n‘Collection Depth’ with value “surface” should be changed to 0"),o("br"),e._v("\nRemove parenthesis and units from column names (field descriptions and units captured in metadata)."),o("br"),e._v("\nRemove spaces from column names"),o("br"),e._v("\nThe web application, named Laminar, built on top of DPP helps Data Managers at BCO-DMO perform these operations in a consistent way. First, Laminar prompts us to name and describe the current pipeline being developed, and assumes that the data manager wants to load some data in to start the pipeline, and prompts for a source location.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(496),alt:"Laminar"}})]),e._v(" "),o("p",[e._v("After providing a name and description of our DPP workflow, we provide a data source to load, and give it the name, ‘nfix’.")]),e._v(" "),o("p",[e._v("In subsequent pipeline steps, we refer to ‘nfix’ as the resource we want to transform. For example, to convert the latitude and longitude into decimal degrees, we add a new step to the pipeline, select the ‘Convert to decimal degrees’ processor, a proxy for our custom processor convert_to_decimal_degrees’, select the ‘nfix’ resource, select a field form that ‘nfix’ data source, and specify the Python regex pattern identifying where the values for the degrees, minutes and seconds can be found in each value of the latitude column.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(497),alt:"processor step"}})]),e._v(" "),o("p",[e._v("Similarly, in step 7 of this pipeline, we want to generate an ISO 8601-compliant UTC datetime value by combining the pre-existing ‘Date’ and ‘Local Time’ columns. This step is depicted below:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(498),alt:"date processing step"}})]),e._v(" "),o("p",[e._v("After the pipeline is completed, the interface displays all steps, and lets the data manager execute the pipeline by clicking the green ‘play’ button at the bottom. This button then generates the pipeline-spec.yaml file, executes the pipeline, and can display the resulting dataset.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(499),alt:"all steps"}})]),e._v(" "),o("p",[o("img",{attrs:{src:a(500),alt:"data"}})]),e._v(" "),o("p",[e._v("The resulting DPP workflow contained 223 lines across this 12-step operation, and for a data manager, the web application reduces the chance of error if this pipelines was being generated by hand. Ultimately, our work with OKF helped us develop processors that follow the DPP conventions.")]),e._v(" "),o("p",[e._v("Our goal for the pilot project with OKF was to have BCO-DMO data managers using the Laminar for processing 80% of the data submissions we receive. The pilot was so successful, that data managers have processed 95% of new data submissions to the repository using the application.")]),e._v(" "),o("p",[e._v("This is exciting from a data management processing perspective because the use of Laminar is more sustainable, and acted to bring the team together to determine best strategies for processing, documentation, etc. This increase in consistency and efficiency is welcomed from an administrative perspective and helps with the training of any new data managers coming to the team.")]),e._v(" "),o("p",[e._v("The OKF team are excellent partners, who were the catalysts to a successful project. The next steps for BCO-DMO are to build on the success of The Frictionlessdata Data Package Pipelines by implementing the Frictionlessdata Goodtables specification for data validation to help us develop submission guidelines for common data types. Special thanks to the OKF team – Lilly Winfree, Evgeny Karev, and Jo Barrett.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{495:function(e,t,a){e.exports=a.p+"assets/img/bcodmoLogo.958d74b9.jpg"},496:function(e,t,a){e.exports=a.p+"assets/img/bcodmo1.1e0069cf.png"},497:function(e,t,a){e.exports=a.p+"assets/img/bcodmo2.1e6fde83.png"},498:function(e,t,a){e.exports=a.p+"assets/img/bcodmo3.a2871755.png"},499:function(e,t,a){e.exports=a.p+"assets/img/bcodmo4.74b606a5.png"},500:function(e,t,a){e.exports=a.p+"assets/img/bcodmo5.ab522411.png"},501:function(e,t,a){e.exports=a.p+"assets/img/bcodmo6.c90593b8.png"},621:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("This blog post describes a Frictionless Data Pilot with the Biological and Chemical Oceanography Data Management Office (BCO-DMO). Pilot projects are part of the "),o("a",{attrs:{href:"https://frictionlessdata.io/reproducible-research/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data for Reproducible Research project"),o("OutboundLink")],1),e._v(". Written by the BCO-DMO team members Adam Shepherd, Amber York, Danie Kinkade, and development by Conrad Schloer.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(495),alt:"BCO-DMO logo"}})]),e._v(" "),o("p",[e._v("Scientific research is implicitly reliant upon the creation, management, analysis, synthesis, and interpretation of data. When properly stewarded, data hold great potential to demonstrate the reproducibility of scientific results and accelerate scientific discovery. "),o("a",{attrs:{href:"https://www.bco-dmo.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("The Biological and Chemical Oceanography Data Management Office (BCO-DMO)"),o("OutboundLink")],1),e._v(" is a publicly accessible earth science data repository established by the National Science Foundation "),o("a",{attrs:{href:"https://www.nsf.gov/",target:"_blank",rel:"noopener noreferrer"}},[e._v("(NSF)"),o("OutboundLink")],1),e._v(" for the curation of biological, chemical, and biogeochemical oceanographic data from research in coastal, marine, and laboratory environments. With the groundswell surrounding the "),o("a",{attrs:{href:"https://doi.org/10.1038/sdata.2016.18",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAIR data principles"),o("OutboundLink")],1),e._v(", BCO-DMO recognized an opportunity to improve its curation services to better support reproducibility of results, while increasing process efficiencies for incoming data submissions. "),o("strong",[e._v("In 2019, BCO-DMO worked with the Frictionless Data team at Open Knowledge Foundation to develop a web application called Laminar for creating Frictionlessdata Data Package Pipelines that help data managers process data efficiently while recording the provenance of their activities to support reproducibility of results.")])]),e._v(" "),o("p",[e._v("The mission of BCO-DMO is to provide investigators with data management services that span the full data lifecycle from data management planning, to data publication, and archiving.")]),e._v(" "),o("p",[e._v("BCO-DMO provides free access to oceanographic data through a web-based catalog with tools and features facilitating assessment of fitness for purpose. The result of this effort is a database containing over "),o("strong",[e._v("9,000 datasets from a variety of oceanographic and limnological measurements")]),e._v(" including those from: in situ sampling, moorings, floats and gliders, sediment traps; laboratory and mesocosm experiments; satellite images; derived parameters and model output; and synthesis products from data integration efforts. The project has worked with over 2,600 data contributors representing over 1,000 funded projects.")]),e._v(" "),o("p",[e._v("As the catalog of data holdings continued to grow in both size and the variety of data types it curates, BCO-DMO needed to retool its data infrastructure with three goals. First, to improve the transportation of data to, from, and within BCO-DMO’s ecosystem. Second, to support reproducibility of research by making all curation activities of the office completely transparent and traceable. Finally, to improve the efficiency and consistency across data management staff. Until recently, data curation activities in the office were largely dependent on the individual capabilities of each data manager. While some of the staff were fluent in Python and other scripting languages, others were dependent on in-house custom developed tools. These in-house tools were extremely useful and flexible, but they were developed for an aging computing paradigm grounded in physical hardware accessing local data resources on disk. While locally stored data is still the convention at BCO-DMO, the distributed nature of the web coupled with the challenges of big data stretched this toolset beyond its original intention.")]),e._v(" "),o("p",[e._v("In 2015, we were introduced to the idea of data containerization and the Frictionless Data project in a "),o("a",{attrs:{href:"https://www.rd-alliance.org/data-packages-bof-p6-bof-session.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Packages BoF"),o("OutboundLink")],1),e._v(" at the "),o("a",{attrs:{href:"https://www.rd-alliance.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research Data Alliance"),o("OutboundLink")],1),e._v(" conference in Paris, France. After evaluating the Frictionless Data specifications and tools, BCO-DMO developed a strategy to underpin its new data infrastructure on the ideas behind this project.")]),e._v(" "),o("p",[e._v("While the concept of data packaging is not new, the simplicity and extendibility of the Frictionless Data implementation made it easy to adopt within an existing infrastructure. "),o("strong",[e._v("BCO-DMO identified the Data Package Pipelines (DPP) project in the Frictionless Data toolset as key to achieving its data curation goals.")]),e._v(" DPP implements the philosophy of declarative workflows which trade code in a specific programming language that tells a computer how a task should be completed, for imperative, structured statements that detail what should be done. These structured statements abstract the user writing the statements from the actual code executing them, and are useful for reproducibility over long periods of time where programming languages age, change or algorithms improve. This flexibility was appealing because it meant the intent of the data manager could be translated into many varying programming (and data) languages over time without having to refactor older workflows. In data management, that means that one of the languages a DPP workflow captures is provenance – a common need across oceanographic datasets for reproducibility. DPP Workflows translated into records of provenance explicitly communicates to data submitters and future data users what BCO-DMO had done during the curation phase. Secondly, because workflow steps need to be interpreted by computers into code that carries out the instructions, it helped data management staff converge on a declarative language they could all share. This convergence meant cohesiveness, consistency, and efficiency across the team if we could implement DPP in a way they could all use.")]),e._v(" "),o("p",[o("strong",[e._v("In 2018, BCO-DMO formed a partnership with Open Knowledge Foundation (OKF) to develop a web application that would help any BCO-DMO data manager use the declarative language they had developed in a consistent way.")]),e._v(" Why develop a web application for DPP? As the data management staff evaluated DPP and Frictionless Data, they found that there was a learning curve to setting up the DPP environment and a deep understanding of the Frictionlessdata ‘Data Package’ specification was required. The web application abstracted this required knowledge to achieve two main goals: 1) consistently structured Data Packages (datapackage.json) with all the required metadata employed at BCO-DMO, and 2) efficiencies of time by eliminating typos and syntax errors made by data managers. Thus, the partnership with OKF focused on making the needs of scientific research data a possibility within the Frictionless Data ecosystem of specs and tools.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-pipelines",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Package Pipelines"),o("OutboundLink")],1),e._v(" is implemented in Python and comes with some built-in processors that can be used in a workflow. BCO-DMO took its own declarative language and identified gaps in the built-in processors. For these gaps, BCO-DMO and OKF developed Python implementations for the missing declarations to support the curation of oceanographic data, and the result was a new set of processors made available on "),o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("Some notable BCO-DMO processors are:")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsboolean_add_computed_field",target:"_blank",rel:"noopener noreferrer"}},[e._v("boolean_add_computed_field"),o("OutboundLink")],1),e._v("– Computes a new field to add to the data whether a particular row satisfies a certain set of criteria."),o("br"),e._v("\nExample: Where Cruise_ID = ‘AT39-05’ and Station = 6, set Latitude to 22.1645.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsconvert_date",target:"_blank",rel:"noopener noreferrer"}},[e._v("convert_date"),o("OutboundLink")],1),e._v(" – Converts any number of fields containing date information into a single date field with display format and timezone options. Often data information is reported in multiple columns such as "),o("code",[e._v("year")]),e._v(", "),o("code",[e._v("month")]),e._v(", "),o("code",[e._v("day")]),e._v(", "),o("code",[e._v("hours_local_time")]),e._v(", "),o("code",[e._v("minutes_local_time")]),e._v(", "),o("code",[e._v("seconds_local_time")]),e._v(". For spatio-temporal datasets, it’s important to know the UTC date and time of the recorded data to ensure that searches for data with a time range are accurate. Here, these columns are combined to form an ISO 8601-compliant UTC datetime value.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsconvert_to_decimal_degrees",target:"_blank",rel:"noopener noreferrer"}},[e._v("convert_to_decimal_degrees"),o("OutboundLink")],1),e._v(" – Convert a single field containing coordinate information from degrees-minutes-seconds or degrees-decimal_minutes to decimal_degrees. The standard representation at BCO-DMO for spatial data conforms to the decimal degrees specification.")]),e._v(" "),o("p",[o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors#bcodmo_pipeline_processorsreorder_fields",target:"_blank",rel:"noopener noreferrer"}},[e._v("reorder_fields"),o("OutboundLink")],1),e._v(" – Changes the order of columns within the data. This is a convention within the oceanographic data community to put certain columns at the beginning of tabular data to help contextualize the following columns. Examples of columns that are typically moved to the beginning are: dates, locations, instrument or vessel identifiers, and depth at collection.")]),e._v(" "),o("p",[e._v("The remaining processors used by BCO-DMO can be found at "),o("a",{attrs:{href:"https://github.com/BCODMO/bcodmo_processors",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/BCODMO/bcodmo_processors"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("How does Laminar work?"),o("br"),e._v("\nIn our collaboration with OKF, BCO-DMO developed use cases based on real-world data submissions. One such example is a recent Arctic Nitrogen Fixation Rates dataset.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(496),alt:"Arctic dataset"}})]),e._v(" "),o("p",[e._v("The original dataset shown above needed the following curation steps to make the data more interoperable and reusable:")]),e._v(" "),o("p",[e._v("Convert lat/lon to decimal degrees"),o("br"),e._v("\nAdd timestamp (UTC) in ISO format"),o("br"),e._v("\n‘Collection Depth’ with value “surface” should be changed to 0"),o("br"),e._v("\nRemove parenthesis and units from column names (field descriptions and units captured in metadata)."),o("br"),e._v("\nRemove spaces from column names"),o("br"),e._v("\nThe web application, named Laminar, built on top of DPP helps Data Managers at BCO-DMO perform these operations in a consistent way. First, Laminar prompts us to name and describe the current pipeline being developed, and assumes that the data manager wants to load some data in to start the pipeline, and prompts for a source location.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(497),alt:"Laminar"}})]),e._v(" "),o("p",[e._v("After providing a name and description of our DPP workflow, we provide a data source to load, and give it the name, ‘nfix’.")]),e._v(" "),o("p",[e._v("In subsequent pipeline steps, we refer to ‘nfix’ as the resource we want to transform. For example, to convert the latitude and longitude into decimal degrees, we add a new step to the pipeline, select the ‘Convert to decimal degrees’ processor, a proxy for our custom processor convert_to_decimal_degrees’, select the ‘nfix’ resource, select a field form that ‘nfix’ data source, and specify the Python regex pattern identifying where the values for the degrees, minutes and seconds can be found in each value of the latitude column.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(498),alt:"processor step"}})]),e._v(" "),o("p",[e._v("Similarly, in step 7 of this pipeline, we want to generate an ISO 8601-compliant UTC datetime value by combining the pre-existing ‘Date’ and ‘Local Time’ columns. This step is depicted below:")]),e._v(" "),o("p",[o("img",{attrs:{src:a(499),alt:"date processing step"}})]),e._v(" "),o("p",[e._v("After the pipeline is completed, the interface displays all steps, and lets the data manager execute the pipeline by clicking the green ‘play’ button at the bottom. This button then generates the pipeline-spec.yaml file, executes the pipeline, and can display the resulting dataset.")]),e._v(" "),o("p",[o("img",{attrs:{src:a(500),alt:"all steps"}})]),e._v(" "),o("p",[o("img",{attrs:{src:a(501),alt:"data"}})]),e._v(" "),o("p",[e._v("The resulting DPP workflow contained 223 lines across this 12-step operation, and for a data manager, the web application reduces the chance of error if this pipelines was being generated by hand. Ultimately, our work with OKF helped us develop processors that follow the DPP conventions.")]),e._v(" "),o("p",[e._v("Our goal for the pilot project with OKF was to have BCO-DMO data managers using the Laminar for processing 80% of the data submissions we receive. The pilot was so successful, that data managers have processed 95% of new data submissions to the repository using the application.")]),e._v(" "),o("p",[e._v("This is exciting from a data management processing perspective because the use of Laminar is more sustainable, and acted to bring the team together to determine best strategies for processing, documentation, etc. This increase in consistency and efficiency is welcomed from an administrative perspective and helps with the training of any new data managers coming to the team.")]),e._v(" "),o("p",[e._v("The OKF team are excellent partners, who were the catalysts to a successful project. The next steps for BCO-DMO are to build on the success of The Frictionlessdata Data Package Pipelines by implementing the Frictionlessdata Goodtables specification for data validation to help us develop submission guidelines for common data types. Special thanks to the OKF team – Lilly Winfree, Evgeny Karev, and Jo Barrett.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/80.b4a05a86.js b/assets/js/80.ec49c7bb.js similarity index 99% rename from assets/js/80.b4a05a86.js rename to assets/js/80.ec49c7bb.js index 5802a5995..a13be1a76 100644 --- a/assets/js/80.b4a05a86.js +++ b/assets/js/80.ec49c7bb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{597:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Matt Thompson was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("data package"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("table schema"),s("OutboundLink")],1),t._v(" libraries in Clojure programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/10/26/matt-thompson/"}},[t._v("his grantee profile")]),t._v(". In this post, Thompson will show you how to set up and use the "),s("a",{attrs:{href:"http://clojure.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Clojure"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")],1),t._v(" "),s("p",[t._v("This tutorial uses a worked example of downloading a data package from a remote location on the web, and using the Frictionless Data tools to read its contents and metadata into Clojure data structures.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("First, we need to set up the project structure using the "),s("a",{attrs:{href:"http://leiningen.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Leiningen"),s("OutboundLink")],1),t._v(" tool. If you don’t have Leiningen set up on your system, follow the link to download and install it. Once it is set up, run the following command from the command line to create the folders and files for a basic Clojure project:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("\nlein new periodic-table\n\n")])])]),s("p",[t._v("This will create the "),s("em",[t._v("periodic-table")]),t._v(" folder. Inside the "),s("em",[t._v("periodic-table/src/periodic-table")]),t._v(" folder should be a file named "),s("em",[t._v("core.clj")]),t._v(". This is the file you need to edit during this tutorial.")]),t._v(" "),s("h2",{attrs:{id:"the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-data"}},[t._v("#")]),t._v(" The Data")]),t._v(" "),s("p",[t._v("For this tutorial, we will use a pre-created data package, the Periodic Table Data Package hosted by the Frictionless Data project. A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("p",[t._v("Our Clojure code will download the data package and process it using the metadata information contained in the"),s("br"),t._v("\npackage. The data package can be found "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("here on GitHub"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The data package contains data about elements in the periodic table, including each element’s name, atomic number, symbol and atomic weight. The table below shows a sample taken from the first three rows of the CSV file:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("atomic number")]),t._v(" "),s("th",[t._v("symbol")]),t._v(" "),s("th",[t._v("name")]),t._v(" "),s("th",[t._v("atomic mass")]),t._v(" "),s("th",[t._v("metal or nonmetal?")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("1")]),t._v(" "),s("td",[t._v("H")]),t._v(" "),s("td",[t._v("Hydrogen")]),t._v(" "),s("td",[t._v("1.00794")]),t._v(" "),s("td",[t._v("nonmetal")])]),t._v(" "),s("tr",[s("td",[t._v("2")]),t._v(" "),s("td",[t._v("He")]),t._v(" "),s("td",[t._v("Helium")]),t._v(" "),s("td",[t._v("4.002602")]),t._v(" "),s("td",[t._v("noble gas")])]),t._v(" "),s("tr",[s("td",[t._v("3")]),t._v(" "),s("td",[t._v("Li")]),t._v(" "),s("td",[t._v("Lithium")]),t._v(" "),s("td",[t._v("6.941")]),t._v(" "),s("td",[t._v("alkali metal")])])])]),t._v(" "),s("h2",{attrs:{id:"loading-the-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#loading-the-data-package"}},[t._v("#")]),t._v(" Loading the Data Package")]),t._v(" "),s("p",[t._v("The first step is to load the data package into a Clojure data structure (a map). The initial step is to require the data package library in our code (which we will give the alias "),s("strong",[t._v("dp")]),t._v("). Then we can use the "),s("strong",[t._v("load")]),t._v(" function to load our data package into our project. Enter the following code into the core.clj file:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("ns")]),t._v(" periodic-table.core\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":require")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.datapackage "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.tableschema "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" ts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("clojure.spec.alpha "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" pkg\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/load")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("This pulls the data in from the remote GitHub location and converts the metadata into a Clojure map. We can access this metadata by using the "),s("code",[t._v("descriptor")]),t._v(" function along with keys such as "),s("code",[t._v(":name")]),t._v(" and "),s("code",[t._v(":title")]),t._v(" to get the relevant information:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("str")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package name:"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/descriptor")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("str")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package title:"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/descriptor")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":title")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The package descriptor contains metadata that describes the contents of the data package. What about accessing the data itself? We can get to it using the "),s("code",[t._v("get-resources")]),t._v(" function:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/get-resources")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("doseq")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("row table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The above code locates the data in the data package, then goes through it line by line and prints the contents.")]),t._v(" "),s("h2",{attrs:{id:"casting-types-with-core-spec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#casting-types-with-core-spec"}},[t._v("#")]),t._v(" Casting Types with core.spec")]),t._v(" "),s("p",[t._v("We can use Clojure’s "),s("a",{attrs:{href:"https://clojure.org/guides/spec",target:"_blank",rel:"noopener noreferrer"}},[t._v("spec"),s("OutboundLink")],1),t._v(" library to define a schema for our data, which can then be used to cast the types of the data in the CSV file.")]),t._v(" "),s("p",[t._v("Below is a spec description of a periodic element type, consisting of an atomic number, atomic symbol, the element’s name, its mass, and whether or not the element is a metal or non-metal:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" int?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" float?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::element")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/keys")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":req")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The above spec can be used to cast values in our tabular data so that they match the specified schema. The example below shows our tabular data values being cast to fit the spec description. Then the "),s("code",[t._v("-main")]),t._v(" function loops through the elements, printing only those with an atomic mass of over 10.")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("ns")]),t._v(" periodic-table.core\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":require")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.datapackage "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.tableschema "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" ts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("clojure.spec.alpha "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" int?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" float?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::element")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/keys")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":req")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" pkg\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/load")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" resources "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/get-resources")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/cast")]),t._v(" resources element"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("defn")]),t._v(" -main "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("doseq")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("e elements"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":mass")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("When run, the program produces the following output:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ lein run\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"H"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Hydrogen"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.00794")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"nonmetal"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"He"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Helium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.002602")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"noble gas"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Li"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Lithium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.941")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"alkali gas"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Be"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Beryllium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.012182")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"alkaline earth metal"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This concludes our simple tutorial for using the Clojure libraries for Frictionless Data.")]),t._v(" "),s("p",[t._v("We welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-clj"),s("OutboundLink")],1),t._v(" repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{596:function(t,a,s){"use strict";s.r(a);var e=s(29),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("Matt Thompson was one of 2017’s "),s("a",{attrs:{href:"https://toolfund.frictionlessdata.io",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Tool Fund"),s("OutboundLink")],1),t._v(" grantees tasked with extending implementation of core Frictionless Data "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("data package"),s("OutboundLink")],1),t._v(" and "),s("a",{attrs:{href:"https://github.com/frictionlessdata/tableschema-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("table schema"),s("OutboundLink")],1),t._v(" libraries in Clojure programming language. You can read more about this in "),s("RouterLink",{attrs:{to:"/blog/2017/10/26/matt-thompson/"}},[t._v("his grantee profile")]),t._v(". In this post, Thompson will show you how to set up and use the "),s("a",{attrs:{href:"http://clojure.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Clojure"),s("OutboundLink")],1),t._v(" libraries for working with "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/tabular-data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Tabular Data Packages"),s("OutboundLink")],1),t._v(".")],1),t._v(" "),s("p",[t._v("This tutorial uses a worked example of downloading a data package from a remote location on the web, and using the Frictionless Data tools to read its contents and metadata into Clojure data structures.")]),t._v(" "),s("h2",{attrs:{id:"setup"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setup"}},[t._v("#")]),t._v(" Setup")]),t._v(" "),s("p",[t._v("First, we need to set up the project structure using the "),s("a",{attrs:{href:"http://leiningen.org",target:"_blank",rel:"noopener noreferrer"}},[t._v("Leiningen"),s("OutboundLink")],1),t._v(" tool. If you don’t have Leiningen set up on your system, follow the link to download and install it. Once it is set up, run the following command from the command line to create the folders and files for a basic Clojure project:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("\nlein new periodic-table\n\n")])])]),s("p",[t._v("This will create the "),s("em",[t._v("periodic-table")]),t._v(" folder. Inside the "),s("em",[t._v("periodic-table/src/periodic-table")]),t._v(" folder should be a file named "),s("em",[t._v("core.clj")]),t._v(". This is the file you need to edit during this tutorial.")]),t._v(" "),s("h2",{attrs:{id:"the-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-data"}},[t._v("#")]),t._v(" The Data")]),t._v(" "),s("p",[t._v("For this tutorial, we will use a pre-created data package, the Periodic Table Data Package hosted by the Frictionless Data project. A "),s("a",{attrs:{href:"https://specs.frictionlessdata.io/data-package/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Data Package"),s("OutboundLink")],1),t._v(" is a simple container format used to describe and package a collection of data. It consists of two parts:")]),t._v(" "),s("ul",[s("li",[t._v("Metadata that describes the structure and contents of the package")]),t._v(" "),s("li",[t._v("Resources such as data files that form the contents of the package")])]),t._v(" "),s("p",[t._v("Our Clojure code will download the data package and process it using the metadata information contained in the"),s("br"),t._v("\npackage. The data package can be found "),s("a",{attrs:{href:"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json",target:"_blank",rel:"noopener noreferrer"}},[t._v("here on GitHub"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("The data package contains data about elements in the periodic table, including each element’s name, atomic number, symbol and atomic weight. The table below shows a sample taken from the first three rows of the CSV file:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("atomic number")]),t._v(" "),s("th",[t._v("symbol")]),t._v(" "),s("th",[t._v("name")]),t._v(" "),s("th",[t._v("atomic mass")]),t._v(" "),s("th",[t._v("metal or nonmetal?")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("1")]),t._v(" "),s("td",[t._v("H")]),t._v(" "),s("td",[t._v("Hydrogen")]),t._v(" "),s("td",[t._v("1.00794")]),t._v(" "),s("td",[t._v("nonmetal")])]),t._v(" "),s("tr",[s("td",[t._v("2")]),t._v(" "),s("td",[t._v("He")]),t._v(" "),s("td",[t._v("Helium")]),t._v(" "),s("td",[t._v("4.002602")]),t._v(" "),s("td",[t._v("noble gas")])]),t._v(" "),s("tr",[s("td",[t._v("3")]),t._v(" "),s("td",[t._v("Li")]),t._v(" "),s("td",[t._v("Lithium")]),t._v(" "),s("td",[t._v("6.941")]),t._v(" "),s("td",[t._v("alkali metal")])])])]),t._v(" "),s("h2",{attrs:{id:"loading-the-data-package"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#loading-the-data-package"}},[t._v("#")]),t._v(" Loading the Data Package")]),t._v(" "),s("p",[t._v("The first step is to load the data package into a Clojure data structure (a map). The initial step is to require the data package library in our code (which we will give the alias "),s("strong",[t._v("dp")]),t._v("). Then we can use the "),s("strong",[t._v("load")]),t._v(" function to load our data package into our project. Enter the following code into the core.clj file:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("ns")]),t._v(" periodic-table.core\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":require")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.datapackage "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.tableschema "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" ts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("clojure.spec.alpha "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" pkg\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/load")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("This pulls the data in from the remote GitHub location and converts the metadata into a Clojure map. We can access this metadata by using the "),s("code",[t._v("descriptor")]),t._v(" function along with keys such as "),s("code",[t._v(":name")]),t._v(" and "),s("code",[t._v(":title")]),t._v(" to get the relevant information:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("str")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package name:"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/descriptor")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("str")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Package title:"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/descriptor")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":title")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The package descriptor contains metadata that describes the contents of the data package. What about accessing the data itself? We can get to it using the "),s("code",[t._v("get-resources")]),t._v(" function:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" table "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/get-resources")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("doseq")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("row table"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" row"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The above code locates the data in the data package, then goes through it line by line and prints the contents.")]),t._v(" "),s("h2",{attrs:{id:"casting-types-with-core-spec"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#casting-types-with-core-spec"}},[t._v("#")]),t._v(" Casting Types with core.spec")]),t._v(" "),s("p",[t._v("We can use Clojure’s "),s("a",{attrs:{href:"https://clojure.org/guides/spec",target:"_blank",rel:"noopener noreferrer"}},[t._v("spec"),s("OutboundLink")],1),t._v(" library to define a schema for our data, which can then be used to cast the types of the data in the CSV file.")]),t._v(" "),s("p",[t._v("Below is a spec description of a periodic element type, consisting of an atomic number, atomic symbol, the element’s name, its mass, and whether or not the element is a metal or non-metal:")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" int?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" float?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::element")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/keys")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":req")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("The above spec can be used to cast values in our tabular data so that they match the specified schema. The example below shows our tabular data values being cast to fit the spec description. Then the "),s("code",[t._v("-main")]),t._v(" function loops through the elements, printing only those with an atomic mass of over 10.")]),t._v(" "),s("div",{staticClass:"language-clojure extra-class"},[s("pre",{pre:!0,attrs:{class:"language-clojure"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("ns")]),t._v(" periodic-table.core\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":require")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.datapackage "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" dp"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("frictionlessdata.tableschema "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" ts"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("clojure.spec.alpha "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":as")]),t._v(" s"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" int?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" float?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),t._v(" string?"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/def")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::element")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("s/keys")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":req")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::number")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::symbol")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::name")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::mass")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v("::metal")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" pkg\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/load")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"https://raw.githubusercontent.com/frictionlessdata/example-data-packages/62d47b454d95a95b6029214b9533de79401e953a/periodic-table/datapackage.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" resources "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/get-resources")]),t._v(" pkg "),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" elements "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("dp/cast")]),t._v(" resources element"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("defn")]),t._v(" -main "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("doseq")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("e elements"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("<")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token symbol"}},[t._v(":mass")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("println")]),t._v(" e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),s("p",[t._v("When run, the program produces the following output:")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("$ lein run\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"H"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Hydrogen"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.00794")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"nonmetal"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"He"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Helium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.002602")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"noble gas"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Li"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Lithium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.941")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"alkali gas"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("::number "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" ::symbol "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Be"')]),t._v(" ::name "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Beryllium"')]),t._v(" ::mass "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.012182")]),t._v(" ::metal "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"alkaline earth metal"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This concludes our simple tutorial for using the Clojure libraries for Frictionless Data.")]),t._v(" "),s("p",[t._v("We welcome your feedback and questions via our "),s("a",{attrs:{href:"http://gitter.im/frictionlessdata/chat",target:"_blank",rel:"noopener noreferrer"}},[t._v("Frictionless Data Gitter chat"),s("OutboundLink")],1),t._v(" or via "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub issues"),s("OutboundLink")],1),t._v(" on the "),s("a",{attrs:{href:"https://github.com/frictionlessdata/datapackage-clj",target:"_blank",rel:"noopener noreferrer"}},[t._v("datapackage-clj"),s("OutboundLink")],1),t._v(" repository.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/81.119cea57.js b/assets/js/81.f80c9b50.js similarity index 99% rename from assets/js/81.119cea57.js rename to assets/js/81.f80c9b50.js index d2c85097b..ec7f87bec 100644 --- a/assets/js/81.119cea57.js +++ b/assets/js/81.f80c9b50.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{598:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("This page provides an overview CSV (Comma Separated Values) format for data.")]),e._v(" "),r("p",[e._v("CSV is a very old, very simple and very common “standard” for (tabular) data."),r("br"),e._v("\nWe say “standard” in quotes because there was never a formal standard for CSV,"),r("br"),e._v("\nthough in 2005 someone did put together a "),r("a",{attrs:{href:"http://tools.ietf.org/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC"),r("OutboundLink")],1),e._v(" for it.")]),e._v(" "),r("p",[e._v("CSV is supported by a "),r("strong",[e._v("huge")]),e._v(" number of tools from spreadsheets like Excel,"),r("br"),e._v("\nOpenOffice and Google Docs to complex databases to almost all programming"),r("br"),e._v("\nlanguages. As such it is probably the most widely supported structured data"),r("br"),e._v("\nformat in the world.")]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"the-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-format"}},[e._v("#")]),e._v(" The Format")]),e._v(" "),r("p",[e._v("Key points are:")]),e._v(" "),r("ul",[r("li",[e._v("CSV is probably the simplest possible structured format for data")]),e._v(" "),r("li",[e._v("CSV strikes a delicate balance, remaining readable by both machines & humans")]),e._v(" "),r("li",[e._v("CSV is a two dimensional structure consisting of rows of data, each row"),r("br"),e._v("\ncontaining multiple cells. Rows are (usually) separated by line terminators"),r("br"),e._v("\nso each row corresponds to one line. Cells within a row are separated by"),r("br"),e._v("\ncommas (hence the C(ommmas) part)\n"),r("ul",[r("li",[e._v("Note that strictly we’re really talking about DSV files in that we can"),r("br"),e._v("\nallow ‘delimiters’ between cells other than a comma. However, many people"),r("br"),e._v("\nand many programs still call such data CSV (since comma is so common as the"),r("br"),e._v("\ndelimiter)")])])]),e._v(" "),r("li",[e._v("CSV is a “text-based” format, i.e. a CSV file "),r("em",[e._v("is")]),e._v(" a text file. This makes it"),r("br"),e._v("\namenable for processing with all kinds of text-oriented tools (from text"),r("br"),e._v("\neditors to "),r("a",{attrs:{href:"https://github.com/rgrp/command-line-data-wrangling",target:"_blank",rel:"noopener noreferrer"}},[e._v("unix tools like sed, grep etc"),r("OutboundLink")],1),e._v(")")])]),e._v(" "),r("h3",{attrs:{id:"what-a-csv-looks-like"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-a-csv-looks-like"}},[e._v("#")]),e._v(" What a CSV looks like")]),e._v(" "),r("p",[e._v("If you open up a CSV file in a text editor it would look something like:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v('A,B,C\n1,2,3\n4,"5,3",6\n')])])]),r("p",[e._v("Here there are 3 rows each of 3 columns. Notice how the second column in the last line is"),r("br"),e._v("\n“quoted” because the content of that value actually contains a “,” character. Without"),r("br"),e._v("\nthe quotes this character would be interpreted as a column separator. To avoid this"),r("br"),e._v("\nconfusion we put quotes around the whole value. The result is that we have 3 rows each"),r("br"),e._v("\nof 3 columns (Note a CSV file does not "),r("em",[e._v("have")]),e._v(" to have"),r("br"),e._v("\nthe same number of columns in each row).")]),e._v(" "),r("h3",{attrs:{id:"dialects-of-csvs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#dialects-of-csvs"}},[e._v("#")]),e._v(" Dialects of CSVs")]),e._v(" "),r("p",[e._v("As mentioned above, CSV files can have quite a bit of variation in"),r("br"),e._v("\nstructure. Key options are:")]),e._v(" "),r("ul",[r("li",[e._v("Field delimiter: rather than comma "),r("code",[e._v(",")]),e._v(" people often use things like "),r("code",[e._v("\\t")]),r("br"),e._v("\n(tab), "),r("code",[e._v(";")]),e._v(" or "),r("code",[e._v("|")])]),e._v(" "),r("li",[e._v("Record terminator / line terminator: is "),r("code",[e._v("\\n")]),e._v(" (unix), "),r("code",[e._v("\\n\\r")]),e._v(" (dos) or something else …")]),e._v(" "),r("li",[e._v("How do you quote records that contain your delimiter")])]),e._v(" "),r("p",[e._v("You can read more in the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/csv-dialect/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Dialect Description Format"),r("OutboundLink")],1),e._v(" which defines"),r("br"),e._v("\na small JSON-oriented structure for specifying what options a CSV uses.")]),e._v(" "),r("h3",{attrs:{id:"what-is-missing-in-csv"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-is-missing-in-csv"}},[e._v("#")]),e._v(" What is Missing in CSV?")]),e._v(" "),r("ul",[r("li",[e._v("CSV lacks any way to specify type information: that is, there is no way to"),r("br"),e._v("\ndistinguish “1” the string from 1 the number. This shortcoming can be"),r("br"),e._v("\naddressed by adding some form of simple schema. For example "),r("RouterLink",{attrs:{to:"/table-schema/"}},[e._v("Table"),r("br"),e._v("\nSchema")]),e._v(" provides a very simple way to describe your schema externally"),r("br"),e._v("\nwhilst "),r("a",{attrs:{href:"http://jenit.github.io/linked-csv/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linked CSV"),r("OutboundLink")],1),e._v(" is an example of doing this “inline” (that"),r("br"),e._v("\nis, in the CSV).")],1),e._v(" "),r("li",[e._v("No support for relationships between different “tables”. This is similar to"),r("br"),e._v("\nthe previous point and again "),r("RouterLink",{attrs:{to:"/table-schema/"}},[e._v("Table Schema")]),e._v(" provides a way to address"),r("br"),e._v("\nthis by providing additional schema information externally.")],1),e._v(" "),r("li",[e._v("CSV is really only for tabular data – it is not so good for data with"),r("br"),e._v("\nnesting or where structure is not especially tabular (though remember most"),r("br"),e._v("\ndata can be put into tabular form if you try hard enough!)")])]),e._v(" "),r("h3",{attrs:{id:"links"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#links"}},[e._v("#")]),e._v(" Links")]),e._v(" "),r("p",[e._v("Specifications and overviews:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://tools.ietf.org/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC specification of CSV"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("[CSV Dialect Description Format][csvddf]")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://en.wikipedia.org/wiki/Comma-separated_values",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV on Wikipedia"),r("OutboundLink")],1)])]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools"}},[e._v("#")]),e._v(" Tools")]),e._v(" "),r("p",[e._v("The great thing about CSV is the huge level of tool support. The following is"),r("br"),e._v("\nnot intended to be comprehensive but is more at the electic end of the spectrum.")]),e._v(" "),r("h3",{attrs:{id:"desktop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[e._v("#")]),e._v(" Desktop")]),e._v(" "),r("p",[e._v("All spreadsheet programs including Excel, OpenOffice, Google Docs"),r("br"),e._v("\nSpreadsheets supporting opening, editing and saving CSVs.")]),e._v(" "),r("h3",{attrs:{id:"view-a-csv-file-in-your-browser"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#view-a-csv-file-in-your-browser"}},[e._v("#")]),e._v(" View a CSV file in your Browser")]),e._v(" "),r("p",[e._v("You can view a CSV file (saving you the hassle of downloading it and opening"),r("br"),e._v("\nit). Options include:")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("You can use datapipes: "),r("a",{attrs:{href:"http://datapipes.okfnlabs.org/csv/html",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://datapipes.okfnlabs.org/csv/html"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Just paste your CSV file and away you go.")])]),e._v(" "),r("li",[r("p",[e._v("Install this "),r("a",{attrs:{href:"https://chrome.google.com/webstore/detail/recline-csv-viewer/ibfcfelnbfhlbpelldnngdcklnndhael",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chrome Browser Extension"),r("OutboundLink")],1),e._v(". This can be used both"),r("br"),e._v("\nfor online files and for files on your local disk (if you open them with your"),r("br"),e._v("\nbrowser!)")])])]),e._v(" "),r("h3",{attrs:{id:"unix-command-line-manipulation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unix-command-line-manipulation"}},[e._v("#")]),e._v(" Unix Command Line Manipulation")]),e._v(" "),r("p",[e._v("See")]),e._v(" "),r("ul",[r("li",[e._v("Using "),r("a",{attrs:{href:"https://github.com/rgrp/command-line-data-wrangling",target:"_blank",rel:"noopener noreferrer"}},[e._v("unix command line tools on CSV"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("The wonderful "),r("a",{attrs:{href:"http://csvkit.readthedocs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csvkit"),r("OutboundLink")],1),e._v(" (python)")])]),e._v(" "),r("h3",{attrs:{id:"power-tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#power-tools"}},[e._v("#")]),e._v(" Power Tools")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://openrefine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenRefine"),r("OutboundLink")],1),e._v(" is a powerful tool for editing and manipulating data and works"),r("br"),e._v("\nvery well with CSV")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://explorer.okfnlabs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Explorer"),r("OutboundLink")],1),e._v(" supports importing CSVs and manipulating and changing"),r("br"),e._v("\nthem using javascript in the browser")])]),e._v(" "),r("h3",{attrs:{id:"libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#libraries"}},[e._v("#")]),e._v(" Libraries")]),e._v(" "),r("p",[e._v("This is heavily biased towards python!")]),e._v(" "),r("h4",{attrs:{id:"python"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[e._v("#")]),e._v(" Python")]),e._v(" "),r("ul",[r("li",[e._v("Built in csv library is good")]),e._v(" "),r("li",[e._v("The wonderful "),r("a",{attrs:{href:"http://csvkit.readthedocs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csvkit"),r("OutboundLink")],1),e._v(" (python)")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://messytables.readthedocs.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("messytables"),r("OutboundLink")],1),e._v(" (python) - convert lots of badly structured data into CSV (or"),r("br"),e._v("\nother formats)")])]),e._v(" "),r("h4",{attrs:{id:"node"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#node"}},[e._v("#")]),e._v(" Node")]),e._v(" "),r("p",[e._v("Nothing in standard lib yet and best option seems to be:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/wdavidw/node-csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/wdavidw/node-csv"),r("OutboundLink")],1)])]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"tips-and-tricks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tips-and-tricks"}},[e._v("#")]),e._v(" Tips and Tricks")]),e._v(" "),r("h3",{attrs:{id:"csvs-and-git"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#csvs-and-git"}},[e._v("#")]),e._v(" CSVs and Git")]),e._v(" "),r("p",[e._v("Get git to handle CSV diffs in a sensible way (very useful if you are "),r("a",{attrs:{href:"http://blog.okfn.org/2013/07/02/git-and-github-for-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("using"),r("br"),e._v("\ngit or another version control system to store data"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Make these changes to config files:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v('# ~/.config/git/attributes\n*.csv diff=csv\n\n# ~/.gitconfig\n[diff "csv"]\n wordRegex = [^,\\n]+[,\\n]|[,]\n')])])]),r("p",[e._v("Then do:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v("git diff --word-diff\n# make it even nicer\ngit diff --word-diff --color-words\n")])])]),r("p",[e._v("Credit for these fixups to "),r("a",{attrs:{href:"http://opendata.stackexchange.com/questions/748/is-there-a-git-for-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("contributors on this question on"),r("br"),e._v("\nStackExchange"),r("OutboundLink")],1),r("br"),e._v("\nand to "),r("a",{attrs:{href:"http://theodi.org/blog/adapting-git-simple-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("James Smith"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{597:function(e,t,r){"use strict";r.r(t);var a=r(29),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("This page provides an overview CSV (Comma Separated Values) format for data.")]),e._v(" "),r("p",[e._v("CSV is a very old, very simple and very common “standard” for (tabular) data."),r("br"),e._v("\nWe say “standard” in quotes because there was never a formal standard for CSV,"),r("br"),e._v("\nthough in 2005 someone did put together a "),r("a",{attrs:{href:"http://tools.ietf.org/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC"),r("OutboundLink")],1),e._v(" for it.")]),e._v(" "),r("p",[e._v("CSV is supported by a "),r("strong",[e._v("huge")]),e._v(" number of tools from spreadsheets like Excel,"),r("br"),e._v("\nOpenOffice and Google Docs to complex databases to almost all programming"),r("br"),e._v("\nlanguages. As such it is probably the most widely supported structured data"),r("br"),e._v("\nformat in the world.")]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"the-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#the-format"}},[e._v("#")]),e._v(" The Format")]),e._v(" "),r("p",[e._v("Key points are:")]),e._v(" "),r("ul",[r("li",[e._v("CSV is probably the simplest possible structured format for data")]),e._v(" "),r("li",[e._v("CSV strikes a delicate balance, remaining readable by both machines & humans")]),e._v(" "),r("li",[e._v("CSV is a two dimensional structure consisting of rows of data, each row"),r("br"),e._v("\ncontaining multiple cells. Rows are (usually) separated by line terminators"),r("br"),e._v("\nso each row corresponds to one line. Cells within a row are separated by"),r("br"),e._v("\ncommas (hence the C(ommmas) part)\n"),r("ul",[r("li",[e._v("Note that strictly we’re really talking about DSV files in that we can"),r("br"),e._v("\nallow ‘delimiters’ between cells other than a comma. However, many people"),r("br"),e._v("\nand many programs still call such data CSV (since comma is so common as the"),r("br"),e._v("\ndelimiter)")])])]),e._v(" "),r("li",[e._v("CSV is a “text-based” format, i.e. a CSV file "),r("em",[e._v("is")]),e._v(" a text file. This makes it"),r("br"),e._v("\namenable for processing with all kinds of text-oriented tools (from text"),r("br"),e._v("\neditors to "),r("a",{attrs:{href:"https://github.com/rgrp/command-line-data-wrangling",target:"_blank",rel:"noopener noreferrer"}},[e._v("unix tools like sed, grep etc"),r("OutboundLink")],1),e._v(")")])]),e._v(" "),r("h3",{attrs:{id:"what-a-csv-looks-like"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-a-csv-looks-like"}},[e._v("#")]),e._v(" What a CSV looks like")]),e._v(" "),r("p",[e._v("If you open up a CSV file in a text editor it would look something like:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v('A,B,C\n1,2,3\n4,"5,3",6\n')])])]),r("p",[e._v("Here there are 3 rows each of 3 columns. Notice how the second column in the last line is"),r("br"),e._v("\n“quoted” because the content of that value actually contains a “,” character. Without"),r("br"),e._v("\nthe quotes this character would be interpreted as a column separator. To avoid this"),r("br"),e._v("\nconfusion we put quotes around the whole value. The result is that we have 3 rows each"),r("br"),e._v("\nof 3 columns (Note a CSV file does not "),r("em",[e._v("have")]),e._v(" to have"),r("br"),e._v("\nthe same number of columns in each row).")]),e._v(" "),r("h3",{attrs:{id:"dialects-of-csvs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#dialects-of-csvs"}},[e._v("#")]),e._v(" Dialects of CSVs")]),e._v(" "),r("p",[e._v("As mentioned above, CSV files can have quite a bit of variation in"),r("br"),e._v("\nstructure. Key options are:")]),e._v(" "),r("ul",[r("li",[e._v("Field delimiter: rather than comma "),r("code",[e._v(",")]),e._v(" people often use things like "),r("code",[e._v("\\t")]),r("br"),e._v("\n(tab), "),r("code",[e._v(";")]),e._v(" or "),r("code",[e._v("|")])]),e._v(" "),r("li",[e._v("Record terminator / line terminator: is "),r("code",[e._v("\\n")]),e._v(" (unix), "),r("code",[e._v("\\n\\r")]),e._v(" (dos) or something else …")]),e._v(" "),r("li",[e._v("How do you quote records that contain your delimiter")])]),e._v(" "),r("p",[e._v("You can read more in the "),r("a",{attrs:{href:"https://specs.frictionlessdata.io/csv-dialect/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Dialect Description Format"),r("OutboundLink")],1),e._v(" which defines"),r("br"),e._v("\na small JSON-oriented structure for specifying what options a CSV uses.")]),e._v(" "),r("h3",{attrs:{id:"what-is-missing-in-csv"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#what-is-missing-in-csv"}},[e._v("#")]),e._v(" What is Missing in CSV?")]),e._v(" "),r("ul",[r("li",[e._v("CSV lacks any way to specify type information: that is, there is no way to"),r("br"),e._v("\ndistinguish “1” the string from 1 the number. This shortcoming can be"),r("br"),e._v("\naddressed by adding some form of simple schema. For example "),r("RouterLink",{attrs:{to:"/table-schema/"}},[e._v("Table"),r("br"),e._v("\nSchema")]),e._v(" provides a very simple way to describe your schema externally"),r("br"),e._v("\nwhilst "),r("a",{attrs:{href:"http://jenit.github.io/linked-csv/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linked CSV"),r("OutboundLink")],1),e._v(" is an example of doing this “inline” (that"),r("br"),e._v("\nis, in the CSV).")],1),e._v(" "),r("li",[e._v("No support for relationships between different “tables”. This is similar to"),r("br"),e._v("\nthe previous point and again "),r("RouterLink",{attrs:{to:"/table-schema/"}},[e._v("Table Schema")]),e._v(" provides a way to address"),r("br"),e._v("\nthis by providing additional schema information externally.")],1),e._v(" "),r("li",[e._v("CSV is really only for tabular data – it is not so good for data with"),r("br"),e._v("\nnesting or where structure is not especially tabular (though remember most"),r("br"),e._v("\ndata can be put into tabular form if you try hard enough!)")])]),e._v(" "),r("h3",{attrs:{id:"links"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#links"}},[e._v("#")]),e._v(" Links")]),e._v(" "),r("p",[e._v("Specifications and overviews:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://tools.ietf.org/html/rfc4180",target:"_blank",rel:"noopener noreferrer"}},[e._v("RFC specification of CSV"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("[CSV Dialect Description Format][csvddf]")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://en.wikipedia.org/wiki/Comma-separated_values",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV on Wikipedia"),r("OutboundLink")],1)])]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tools"}},[e._v("#")]),e._v(" Tools")]),e._v(" "),r("p",[e._v("The great thing about CSV is the huge level of tool support. The following is"),r("br"),e._v("\nnot intended to be comprehensive but is more at the electic end of the spectrum.")]),e._v(" "),r("h3",{attrs:{id:"desktop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#desktop"}},[e._v("#")]),e._v(" Desktop")]),e._v(" "),r("p",[e._v("All spreadsheet programs including Excel, OpenOffice, Google Docs"),r("br"),e._v("\nSpreadsheets supporting opening, editing and saving CSVs.")]),e._v(" "),r("h3",{attrs:{id:"view-a-csv-file-in-your-browser"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#view-a-csv-file-in-your-browser"}},[e._v("#")]),e._v(" View a CSV file in your Browser")]),e._v(" "),r("p",[e._v("You can view a CSV file (saving you the hassle of downloading it and opening"),r("br"),e._v("\nit). Options include:")]),e._v(" "),r("ul",[r("li",[r("p",[e._v("You can use datapipes: "),r("a",{attrs:{href:"http://datapipes.okfnlabs.org/csv/html",target:"_blank",rel:"noopener noreferrer"}},[e._v("http://datapipes.okfnlabs.org/csv/html"),r("OutboundLink")],1)]),e._v(" "),r("p",[e._v("Just paste your CSV file and away you go.")])]),e._v(" "),r("li",[r("p",[e._v("Install this "),r("a",{attrs:{href:"https://chrome.google.com/webstore/detail/recline-csv-viewer/ibfcfelnbfhlbpelldnngdcklnndhael",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chrome Browser Extension"),r("OutboundLink")],1),e._v(". This can be used both"),r("br"),e._v("\nfor online files and for files on your local disk (if you open them with your"),r("br"),e._v("\nbrowser!)")])])]),e._v(" "),r("h3",{attrs:{id:"unix-command-line-manipulation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#unix-command-line-manipulation"}},[e._v("#")]),e._v(" Unix Command Line Manipulation")]),e._v(" "),r("p",[e._v("See")]),e._v(" "),r("ul",[r("li",[e._v("Using "),r("a",{attrs:{href:"https://github.com/rgrp/command-line-data-wrangling",target:"_blank",rel:"noopener noreferrer"}},[e._v("unix command line tools on CSV"),r("OutboundLink")],1)]),e._v(" "),r("li",[e._v("The wonderful "),r("a",{attrs:{href:"http://csvkit.readthedocs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csvkit"),r("OutboundLink")],1),e._v(" (python)")])]),e._v(" "),r("h3",{attrs:{id:"power-tools"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#power-tools"}},[e._v("#")]),e._v(" Power Tools")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"http://openrefine.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenRefine"),r("OutboundLink")],1),e._v(" is a powerful tool for editing and manipulating data and works"),r("br"),e._v("\nvery well with CSV")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://explorer.okfnlabs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Data Explorer"),r("OutboundLink")],1),e._v(" supports importing CSVs and manipulating and changing"),r("br"),e._v("\nthem using javascript in the browser")])]),e._v(" "),r("h3",{attrs:{id:"libraries"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#libraries"}},[e._v("#")]),e._v(" Libraries")]),e._v(" "),r("p",[e._v("This is heavily biased towards python!")]),e._v(" "),r("h4",{attrs:{id:"python"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#python"}},[e._v("#")]),e._v(" Python")]),e._v(" "),r("ul",[r("li",[e._v("Built in csv library is good")]),e._v(" "),r("li",[e._v("The wonderful "),r("a",{attrs:{href:"http://csvkit.readthedocs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("csvkit"),r("OutboundLink")],1),e._v(" (python)")]),e._v(" "),r("li",[r("a",{attrs:{href:"http://messytables.readthedocs.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("messytables"),r("OutboundLink")],1),e._v(" (python) - convert lots of badly structured data into CSV (or"),r("br"),e._v("\nother formats)")])]),e._v(" "),r("h4",{attrs:{id:"node"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#node"}},[e._v("#")]),e._v(" Node")]),e._v(" "),r("p",[e._v("Nothing in standard lib yet and best option seems to be:")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/wdavidw/node-csv",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/wdavidw/node-csv"),r("OutboundLink")],1)])]),e._v(" "),r("hr"),e._v(" "),r("h2",{attrs:{id:"tips-and-tricks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tips-and-tricks"}},[e._v("#")]),e._v(" Tips and Tricks")]),e._v(" "),r("h3",{attrs:{id:"csvs-and-git"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#csvs-and-git"}},[e._v("#")]),e._v(" CSVs and Git")]),e._v(" "),r("p",[e._v("Get git to handle CSV diffs in a sensible way (very useful if you are "),r("a",{attrs:{href:"http://blog.okfn.org/2013/07/02/git-and-github-for-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("using"),r("br"),e._v("\ngit or another version control system to store data"),r("OutboundLink")],1),e._v(").")]),e._v(" "),r("p",[e._v("Make these changes to config files:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v('# ~/.config/git/attributes\n*.csv diff=csv\n\n# ~/.gitconfig\n[diff "csv"]\n wordRegex = [^,\\n]+[,\\n]|[,]\n')])])]),r("p",[e._v("Then do:")]),e._v(" "),r("div",{staticClass:"language- extra-class"},[r("pre",[r("code",[e._v("git diff --word-diff\n# make it even nicer\ngit diff --word-diff --color-words\n")])])]),r("p",[e._v("Credit for these fixups to "),r("a",{attrs:{href:"http://opendata.stackexchange.com/questions/748/is-there-a-git-for-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("contributors on this question on"),r("br"),e._v("\nStackExchange"),r("OutboundLink")],1),r("br"),e._v("\nand to "),r("a",{attrs:{href:"http://theodi.org/blog/adapting-git-simple-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("James Smith"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/86.4af2a063.js b/assets/js/86.8b13068a.js similarity index 99% rename from assets/js/86.4af2a063.js rename to assets/js/86.8b13068a.js index 858cf4caa..99a5d8dab 100644 --- a/assets/js/86.4af2a063.js +++ b/assets/js/86.8b13068a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{609:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This section requires knowledge on how to "),a("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/#write-a-table-schema"}},[e._v("write a Table Schema")]),e._v(" and "),a("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/#add-your-dataset-s-metadata"}},[e._v("attach descriptive metadata")]),e._v(" to your data collection.")],1),e._v(" "),a("p",[e._v("Creating and Sharing Data Packages is important for both data publishers and data users because it provides a common and open specification to describe your dataset’s metadata. This facilitates data reuse, as users don’t need to understand each data publisher’s specific metadata format, and as the specification is machine-readable, it also allows tools to parse the metadata. This enables software to:")]),e._v(" "),a("ul",[a("li",[e._v("Import the data packages into different tools and languages, like Python and R")]),e._v(" "),a("li",[e._v("Validate the data contents according to the schema described in the data package")]),e._v(" "),a("li",[e._v("Convert the data package into other formats, for example loading it into a SQL database for further analysis")])]),e._v(" "),a("p",[e._v("Although these reasons are not unique to publishing data as data packages, here’s why we think data publishers should consider publishing in this format:")]),e._v(" "),a("ul",[a("li",[a("p",[e._v("Archiving data collections using data packages ensure data publishers can update data more efficiently at any time. The associated schema is a guide on existing data fields and acceptable data types for individual tabular data resources and can be easily built upon.")])]),e._v(" "),a("li",[a("p",[e._v("Sharing data with descriptive metadata and its associated schema provides context for your data no matter where it is used, and significantly cuts down on time spent researching data provenance before using acquired data.")])]),e._v(" "),a("li",[a("p",[e._v("Data Packages allow for accountability and enrich the feedback process as data publishers can add metadata with contact information for users to reach out to them and licensing to spell out accepted use of published data.")])])]),e._v(" "),a("p",[e._v("If don’t need your own data portal, there are many platforms where you can publish your data (if you need your own, check "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v("). In the section below, we dive into a few options. Read along and decide what option is most suitable:")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-in-our-community-ckan-instance"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-in-our-community-ckan-instance"}},[e._v("#")]),e._v(" Publish Packaged Data in our community CKAN instance")]),e._v(" "),a("p",[e._v("CKAN is an open source platform for publishing data that makes it easy to discover, use and share data. "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is a public instance of CKAN that allows anyone to publish their data.")]),e._v(" "),a("p",[e._v("Here’s why you should consider creating an organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" and publishing datasets therein:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://datahub.ckan.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is free for all to use! The file upload size limit on the platform is currently 100mb.")]),e._v(" "),a("li",[e._v("The decision on whether to publicly or privately publish datasets rests with data publishers.")]),e._v(" "),a("li",[a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" organizations allow for multiple users to collaborate with varied privileges:")]),e._v(" "),a("li",[a("strong",[e._v("Admin")]),e._v(": Can add/edit and delete datasets, as well as manage organization members.")]),e._v(" "),a("li",[a("strong",[e._v("Editor")]),e._v(": Can add and edit datasets, but not manage organization members.")]),e._v(" "),a("li",[a("strong",[e._v("Member")]),e._v(": Can view the organization’s private datasets, but not add new datasets.")])]),e._v(" "),a("p",[e._v("To publish data on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(":")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Request for a new Organization to be created on the platform for you via "),a("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community page"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nThis is required only to ensure spammers don’t take up space and hog resources on the platform.")]),e._v(" "),a("p",[e._v("The request format is simple and requires:")]),e._v(" "),a("ul",[a("li",[a("p",[a("strong",[e._v("Title")]),e._v(": This will be the name of your Organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" i.e."),a("br"),a("br"),e._v(" "),a("em",[e._v("My New Organization")])])]),e._v(" "),a("li",[a("p",[a("strong",[e._v("Slug")]),e._v(": This is an acronym, word or hyphenated phrase that will be added to the end of the "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" url to uniquely identify your Organization and associate your data collections with it i.e."),a("br"),a("br"),e._v(" "),a("em",[e._v("my-new-organization")])])]),e._v(" "),a("li",[a("p",[a("strong",[e._v("Username")]),e._v(": The username you provide is associated with an email address on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" and allows us to give you admin access to your Organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(".")])])])]),e._v(" "),a("li",[a("p",[e._v("Log In and add new datasets")])])]),e._v(" "),a("p",[e._v("Adding datasets on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is no different from using any other CKAN platform, but "),a("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a good guide by Dan Fowler"),a("OutboundLink")],1),e._v(" for first timers.")]),e._v(" "),a("p",[e._v("3.Publish and share public datasets widely.")]),e._v(" "),a("p",[e._v("On "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(", you can either publish datasets privately, meaning only members of your organization have access to them, or publicly, as open data. "),a("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Find out more"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-on-datahub-io"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-datahub-io"}},[e._v("#")]),e._v(" Publish Packaged Data on "),a("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)]),e._v(" "),a("p",[a("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(" is a platform for finding, sharing and publishing high quality data online.")]),e._v(" "),a("p",[a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" share the same name for historical reasons. "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datahub.ckan.io"),a("OutboundLink")],1),e._v(" used to be the DataHub, but was moved to its current address, and the current DataHub uses new software developed from scratch.")]),e._v(" "),a("ol",[a("li",[e._v("Set up a data publisher / user account on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Join the "),a("a",{attrs:{href:"https://gitter.im/datahubio/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.io community group"),a("OutboundLink")],1),e._v(", introduce yourself and request for an account.")]),e._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[e._v("Publish Datasets on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)])]),e._v(" "),a("p",[a("a",{attrs:{href:"http://datahub.io/docs/getting-started/publishing-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("This post"),a("OutboundLink")],1),e._v(" provides helpful information on publishing datasets on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-on-github"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-github"}},[e._v("#")]),e._v(" Publish Packaged Data on GitHub")]),e._v(" "),a("p",[e._v("GitHub is the largest repository of source code, with "),a("a",{attrs:{href:"https://github.com/blog/2345-celebrating-nine-years-of-github-with-an-anniversary-sale",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 20 million"),a("br"),e._v("\nusers"),a("OutboundLink")],1),e._v(". Although the focus is on hosting source code, any type of file can be hosted. Documents, thesis, images, shapefiles, you can even host an entire static website with "),a("a",{attrs:{href:"https://pages.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Pages"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("By using GitHub, you get all the advantages of using a version control system as Git, where every modification to your files is tracked. You also get an issue ticketing system, wiki pages, milestones tracking, and other useful"),a("br"),e._v("\ncollaboration tools.")]),e._v(" "),a("p",[e._v("** What types of datasets can be hosted on GitHub?**")]),e._v(" "),a("p",[e._v("Although GitHub offers many useful functionalities, not all datasets are a good fit for it. The main limitations are:")]),e._v(" "),a("ul",[a("li",[e._v("Individual files have less than 100 MB")]),e._v(" "),a("li",[e._v("Entire repository have less than 1 GB\n"),a("ul",[a("li",[e._v("The repository size includes not only the current files, but all of their previous versions.")])])])]),e._v(" "),a("p",[e._v("You can store larger files using "),a("a",{attrs:{href:"https://git-lfs.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("git-lfs"),a("OutboundLink")],1),e._v(", but we won’t go in details about it on this post.")]),e._v(" "),a("p",[e._v("It’s also useful if your data files use text-based file formats like CSV or GeoJSON, as then git is able to show you exactly what changed between two versions of the files. However, even if you use binary file formats like XLS, GitHub is still useful.")]),e._v(" "),a("p",[e._v("** Step 1. Organise your dataset folder structure **")]),e._v(" "),a("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),a("li",[a("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),a("li",[a("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),a("li",[a("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),a("p",[e._v("Even though we’ll see an example that has all of these different types of files, this isn’t always the case. For example, datasets that were manually collected might not have any scripts.")]),e._v(" "),a("p",[e._v("This is the final structure:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("data/\n schools.csv\n cities.csv\ndocs/\n screenshot.png\nscripts/\n clean_data.py\nMakefile\ndatapackage.json\nREADME.md\n")])])]),a("ul",[a("li",[a("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there are two: "),a("code",[e._v("data/schools.csv")]),e._v(" and "),a("code",[e._v("data/cities.csv")]),e._v(".")]),e._v(" "),a("li",[a("strong",[e._v("docs/")]),e._v(": Images, sample analysis, and other documentation files regarding the dataset. The main documentation is in "),a("code",[e._v("README.md")]),e._v(", but in this folder you can add any images used in the README, and other writings about the dataset.")]),e._v(" "),a("li",[a("strong",[e._v("scripts/")]),e._v(": All scripts are contained in this folder. There could be scripts to scrape the data, join different files, clean them, etc. Depending on the programming language you use, you might also add requirements files like "),a("code",[e._v("requirements.txt")]),e._v(" for Python, or "),a("code",[e._v("package.json")]),e._v(" for NodeJS.")]),e._v(" "),a("li",[a("strong",[e._v("Makefile")]),e._v(": The scripts are only part of the puzzle, we also need to know how to run them. In which order they should be executed, which one should I run to update the data, and so on. You could document this information textually in the "),a("code",[e._v("README.md")]),e._v(" file, but the "),a("code",[e._v("Makefile")]),e._v(" allows you to have executable documentation. You can think of it as a script to run the scripts. If you have never written a Makefile, read "),a("a",{attrs:{href:"https://bost.ocks.org/mike/make/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Use Make"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[a("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files. See HOW TO CREATE A DATA PACKAGE on instructions on writing this file.")]),e._v(" "),a("li",[a("strong",[a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1)]),e._v(": This is where the dataset is described for humans. We recommend the following sections:\n"),a("ul",[a("li",[a("strong",[e._v("Introduction")]),e._v(": A short description of the dataset, what it contains, the time or geographical area it covers")]),e._v(" "),a("li",[a("strong",[e._v("Data")]),e._v(": What the data structure? Does it use any codes? How do you define missing values (e.g. ‘N/A’ or ‘-1’)")]),e._v(" "),a("li",[a("strong",[e._v("Preparation")]),e._v(": How was the data collected? How do I update the data? Was it modified in any way? If you have a "),a("code",[e._v("Makefile")]),e._v(", this section will mostly document how to run it. Otherwise you can describe how to run the scripts, or how to collect the data manually.")]),e._v(" "),a("li",[a("strong",[e._v("License")]),e._v(": There are two issues here: the license of the data itself, and the license of the package you are creating (including any scripts). Our recommendation is to license the package you created as "),a("a",{attrs:{href:"https://creativecommons.org/publicdomain/zero/1.0/",title:"Creative Commons Public Domain Dedication",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC0"),a("OutboundLink")],1),e._v(", and add any relevant information or disclaimers regarding the source data’s license.")])])])]),e._v(" "),a("p",[e._v("To summarize, these are the folders, files, and their respective contents in this structure:")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("Path")]),e._v(" "),a("th",[e._v("Type")]),e._v(" "),a("th",[e._v("Contents")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("data/")]),e._v(" "),a("td",[e._v("Data")]),e._v(" "),a("td",[e._v("Dataset’s data files.")])]),e._v(" "),a("tr",[a("td",[e._v("docs/")]),e._v(" "),a("td",[e._v("Documentation")]),e._v(" "),a("td",[e._v("Images, analysis, and other documentation files.")])]),e._v(" "),a("tr",[a("td",[e._v("scripts/")]),e._v(" "),a("td",[e._v("Scripts")]),e._v(" "),a("td",[e._v("Scripts used for creating, modifying, or analysing the dataset.")])]),e._v(" "),a("tr",[a("td",[e._v("Makefile")]),e._v(" "),a("td",[e._v("Scripts")]),e._v(" "),a("td",[e._v("Executable documentation on how to run the scripts.")])]),e._v(" "),a("tr",[a("td",[e._v("datapackage.json")]),e._v(" "),a("td",[e._v("Metadata")]),e._v(" "),a("td",[e._v("Data Package descriptor file.")])]),e._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1)]),e._v(" "),a("td",[e._v("Documentation")]),e._v(" "),a("td",[e._v("Textual description of the dataset with description, preparation steps, license, etc.")])])])]),e._v(" "),a("p",[e._v("** Step 2. Upload the dataset to GitHub **")]),e._v(" "),a("ol",[a("li",[e._v("Login (or create) a new account on GitHub")]),e._v(" "),a("li",[e._v("Create "),a("a",{attrs:{href:"https://github.com/new",title:"GitHub New Repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("a new repository"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Write a short description about the dataset")])])]),e._v(" "),a("li",[e._v("On your repository page, click on the “Upload files” link")]),e._v(" "),a("li",[e._v("Upload the files you created in the previous step\n"),a("ul",[a("li",[e._v("If your have files larger than 25 MB, you’ll need to either "),a("a",{attrs:{href:"https://help.github.com/articles/adding-a-file-to-a-repository-using-the-command-line/",title:"Adding a file to a repository using the command line",target:"_blank",rel:"noopener noreferrer"}},[e._v("upload using the command line"),a("OutboundLink")],1),e._v(", or the "),a("a",{attrs:{href:"https://desktop.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Desktop client"),a("OutboundLink")],1),e._v(".")])])])]),e._v(" "),a("p",[e._v("** (Optional) Step 3. Enable automatic tabular data validation **")]),e._v(" "),a("p",[e._v("You can automatically validate your tabular data files using "),a("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),a("OutboundLink")],1),e._v(". This will take only a few minutes, and will ensure you’ll always know when there are errors with your dataset, maintaining its quality. "),a("a",{attrs:{href:"/blog/2018/03/12/automatically-validated-tabular-data"}},[e._v("Read the walkthrough here")]),e._v(".")]),e._v(" "),a("p",[e._v("The sample datasets used in this example, that is, List of schools in Birmingham, UK are available "),a("a",{attrs:{href:"https://github.com/vitorbaptista/birmingham_schools",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{606:function(e,t,a){"use strict";a.r(t);var o=a(29),r=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This section requires knowledge on how to "),a("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/#write-a-table-schema"}},[e._v("write a Table Schema")]),e._v(" and "),a("RouterLink",{attrs:{to:"/blog/2018/03/07/well-packaged-datasets/#add-your-dataset-s-metadata"}},[e._v("attach descriptive metadata")]),e._v(" to your data collection.")],1),e._v(" "),a("p",[e._v("Creating and Sharing Data Packages is important for both data publishers and data users because it provides a common and open specification to describe your dataset’s metadata. This facilitates data reuse, as users don’t need to understand each data publisher’s specific metadata format, and as the specification is machine-readable, it also allows tools to parse the metadata. This enables software to:")]),e._v(" "),a("ul",[a("li",[e._v("Import the data packages into different tools and languages, like Python and R")]),e._v(" "),a("li",[e._v("Validate the data contents according to the schema described in the data package")]),e._v(" "),a("li",[e._v("Convert the data package into other formats, for example loading it into a SQL database for further analysis")])]),e._v(" "),a("p",[e._v("Although these reasons are not unique to publishing data as data packages, here’s why we think data publishers should consider publishing in this format:")]),e._v(" "),a("ul",[a("li",[a("p",[e._v("Archiving data collections using data packages ensure data publishers can update data more efficiently at any time. The associated schema is a guide on existing data fields and acceptable data types for individual tabular data resources and can be easily built upon.")])]),e._v(" "),a("li",[a("p",[e._v("Sharing data with descriptive metadata and its associated schema provides context for your data no matter where it is used, and significantly cuts down on time spent researching data provenance before using acquired data.")])]),e._v(" "),a("li",[a("p",[e._v("Data Packages allow for accountability and enrich the feedback process as data publishers can add metadata with contact information for users to reach out to them and licensing to spell out accepted use of published data.")])])]),e._v(" "),a("p",[e._v("If don’t need your own data portal, there are many platforms where you can publish your data (if you need your own, check "),a("a",{attrs:{href:"https://ckan.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CKAN"),a("OutboundLink")],1),e._v("). In the section below, we dive into a few options. Read along and decide what option is most suitable:")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-in-our-community-ckan-instance"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-in-our-community-ckan-instance"}},[e._v("#")]),e._v(" Publish Packaged Data in our community CKAN instance")]),e._v(" "),a("p",[e._v("CKAN is an open source platform for publishing data that makes it easy to discover, use and share data. "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is a public instance of CKAN that allows anyone to publish their data.")]),e._v(" "),a("p",[e._v("Here’s why you should consider creating an organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" and publishing datasets therein:")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://datahub.ckan.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is free for all to use! The file upload size limit on the platform is currently 100mb.")]),e._v(" "),a("li",[e._v("The decision on whether to publicly or privately publish datasets rests with data publishers.")]),e._v(" "),a("li",[a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" organizations allow for multiple users to collaborate with varied privileges:")]),e._v(" "),a("li",[a("strong",[e._v("Admin")]),e._v(": Can add/edit and delete datasets, as well as manage organization members.")]),e._v(" "),a("li",[a("strong",[e._v("Editor")]),e._v(": Can add and edit datasets, but not manage organization members.")]),e._v(" "),a("li",[a("strong",[e._v("Member")]),e._v(": Can view the organization’s private datasets, but not add new datasets.")])]),e._v(" "),a("p",[e._v("To publish data on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(":")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Request for a new Organization to be created on the platform for you via "),a("a",{attrs:{href:"https://discuss.okfn.org/c/open-knowledge-labs/datahub",target:"_blank",rel:"noopener noreferrer"}},[e._v("our community page"),a("OutboundLink")],1),e._v("."),a("br"),e._v("\nThis is required only to ensure spammers don’t take up space and hog resources on the platform.")]),e._v(" "),a("p",[e._v("The request format is simple and requires:")]),e._v(" "),a("ul",[a("li",[a("p",[a("strong",[e._v("Title")]),e._v(": This will be the name of your Organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" i.e."),a("br"),a("br"),e._v(" "),a("em",[e._v("My New Organization")])])]),e._v(" "),a("li",[a("p",[a("strong",[e._v("Slug")]),e._v(": This is an acronym, word or hyphenated phrase that will be added to the end of the "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" url to uniquely identify your Organization and associate your data collections with it i.e."),a("br"),a("br"),e._v(" "),a("em",[e._v("my-new-organization")])])]),e._v(" "),a("li",[a("p",[a("strong",[e._v("Username")]),e._v(": The username you provide is associated with an email address on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" and allows us to give you admin access to your Organization on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(".")])])])]),e._v(" "),a("li",[a("p",[e._v("Log In and add new datasets")])])]),e._v(" "),a("p",[e._v("Adding datasets on "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" is no different from using any other CKAN platform, but "),a("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("here’s a good guide by Dan Fowler"),a("OutboundLink")],1),e._v(" for first timers.")]),e._v(" "),a("p",[e._v("3.Publish and share public datasets widely.")]),e._v(" "),a("p",[e._v("On "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(", you can either publish datasets privately, meaning only members of your organization have access to them, or publicly, as open data. "),a("a",{attrs:{href:"http://okfnlabs.org/blog/2016/07/25/publish-data-packages-to-datahub-ckan.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Find out more"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-on-datahub-io"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-datahub-io"}},[e._v("#")]),e._v(" Publish Packaged Data on "),a("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)]),e._v(" "),a("p",[a("a",{attrs:{href:"http://DataHub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(" is a platform for finding, sharing and publishing high quality data online.")]),e._v(" "),a("p",[a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.ckan.io"),a("OutboundLink")],1),e._v(" share the same name for historical reasons. "),a("a",{attrs:{href:"http://datahub.ckan.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("Datahub.ckan.io"),a("OutboundLink")],1),e._v(" used to be the DataHub, but was moved to its current address, and the current DataHub uses new software developed from scratch.")]),e._v(" "),a("ol",[a("li",[e._v("Set up a data publisher / user account on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)])]),e._v(" "),a("p",[e._v("Join the "),a("a",{attrs:{href:"https://gitter.im/datahubio/chat",target:"_blank",rel:"noopener noreferrer"}},[e._v("datahub.io community group"),a("OutboundLink")],1),e._v(", introduce yourself and request for an account.")]),e._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[e._v("Publish Datasets on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1)])]),e._v(" "),a("p",[a("a",{attrs:{href:"http://datahub.io/docs/getting-started/publishing-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("This post"),a("OutboundLink")],1),e._v(" provides helpful information on publishing datasets on "),a("a",{attrs:{href:"http://datahub.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("DataHub.io"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("h2",{attrs:{id:"publish-packaged-data-on-github"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publish-packaged-data-on-github"}},[e._v("#")]),e._v(" Publish Packaged Data on GitHub")]),e._v(" "),a("p",[e._v("GitHub is the largest repository of source code, with "),a("a",{attrs:{href:"https://github.com/blog/2345-celebrating-nine-years-of-github-with-an-anniversary-sale",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 20 million"),a("br"),e._v("\nusers"),a("OutboundLink")],1),e._v(". Although the focus is on hosting source code, any type of file can be hosted. Documents, thesis, images, shapefiles, you can even host an entire static website with "),a("a",{attrs:{href:"https://pages.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Pages"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("p",[e._v("By using GitHub, you get all the advantages of using a version control system as Git, where every modification to your files is tracked. You also get an issue ticketing system, wiki pages, milestones tracking, and other useful"),a("br"),e._v("\ncollaboration tools.")]),e._v(" "),a("p",[e._v("** What types of datasets can be hosted on GitHub?**")]),e._v(" "),a("p",[e._v("Although GitHub offers many useful functionalities, not all datasets are a good fit for it. The main limitations are:")]),e._v(" "),a("ul",[a("li",[e._v("Individual files have less than 100 MB")]),e._v(" "),a("li",[e._v("Entire repository have less than 1 GB\n"),a("ul",[a("li",[e._v("The repository size includes not only the current files, but all of their previous versions.")])])])]),e._v(" "),a("p",[e._v("You can store larger files using "),a("a",{attrs:{href:"https://git-lfs.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("git-lfs"),a("OutboundLink")],1),e._v(", but we won’t go in details about it on this post.")]),e._v(" "),a("p",[e._v("It’s also useful if your data files use text-based file formats like CSV or GeoJSON, as then git is able to show you exactly what changed between two versions of the files. However, even if you use binary file formats like XLS, GitHub is still useful.")]),e._v(" "),a("p",[e._v("** Step 1. Organise your dataset folder structure **")]),e._v(" "),a("p",[e._v("The way to structure your dataset depends on your data, and what extra artifacts it contains (e.g. images, scripts, reports, etc.). In this section, we’ll show a complete example with:")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("Data files")]),e._v(": The files with the actual data (e.g. CSV, XLS, GeoJSON, …)")]),e._v(" "),a("li",[a("strong",[e._v("Documentation")]),e._v(": How was the data collected, any caveats, how to update it, etc.")]),e._v(" "),a("li",[a("strong",[e._v("Metadata")]),e._v(": Where the data comes from, what’s in the files, what’s their source and license, etc.")]),e._v(" "),a("li",[a("strong",[e._v("Scripts")]),e._v(": Software scripts that were used to generate, update, or modify the data.")])]),e._v(" "),a("p",[e._v("Even though we’ll see an example that has all of these different types of files, this isn’t always the case. For example, datasets that were manually collected might not have any scripts.")]),e._v(" "),a("p",[e._v("This is the final structure:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("data/\n schools.csv\n cities.csv\ndocs/\n screenshot.png\nscripts/\n clean_data.py\nMakefile\ndatapackage.json\nREADME.md\n")])])]),a("ul",[a("li",[a("strong",[e._v("data/")]),e._v(": All data files are contained in this folder. In our example, there are two: "),a("code",[e._v("data/schools.csv")]),e._v(" and "),a("code",[e._v("data/cities.csv")]),e._v(".")]),e._v(" "),a("li",[a("strong",[e._v("docs/")]),e._v(": Images, sample analysis, and other documentation files regarding the dataset. The main documentation is in "),a("code",[e._v("README.md")]),e._v(", but in this folder you can add any images used in the README, and other writings about the dataset.")]),e._v(" "),a("li",[a("strong",[e._v("scripts/")]),e._v(": All scripts are contained in this folder. There could be scripts to scrape the data, join different files, clean them, etc. Depending on the programming language you use, you might also add requirements files like "),a("code",[e._v("requirements.txt")]),e._v(" for Python, or "),a("code",[e._v("package.json")]),e._v(" for NodeJS.")]),e._v(" "),a("li",[a("strong",[e._v("Makefile")]),e._v(": The scripts are only part of the puzzle, we also need to know how to run them. In which order they should be executed, which one should I run to update the data, and so on. You could document this information textually in the "),a("code",[e._v("README.md")]),e._v(" file, but the "),a("code",[e._v("Makefile")]),e._v(" allows you to have executable documentation. You can think of it as a script to run the scripts. If you have never written a Makefile, read "),a("a",{attrs:{href:"https://bost.ocks.org/mike/make/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Why Use Make"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[a("strong",[e._v("datapackage.json")]),e._v(": This file describes the dataset’s metadata. For example, what is the dataset, where are its files, what they contain, what each column means (for tabular data), what’s the source, license, and authors, and so on. As it’s a machine-readable specification, other software can import and validate your files. See HOW TO CREATE A DATA PACKAGE on instructions on writing this file.")]),e._v(" "),a("li",[a("strong",[a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1)]),e._v(": This is where the dataset is described for humans. We recommend the following sections:\n"),a("ul",[a("li",[a("strong",[e._v("Introduction")]),e._v(": A short description of the dataset, what it contains, the time or geographical area it covers")]),e._v(" "),a("li",[a("strong",[e._v("Data")]),e._v(": What the data structure? Does it use any codes? How do you define missing values (e.g. ‘N/A’ or ‘-1’)")]),e._v(" "),a("li",[a("strong",[e._v("Preparation")]),e._v(": How was the data collected? How do I update the data? Was it modified in any way? If you have a "),a("code",[e._v("Makefile")]),e._v(", this section will mostly document how to run it. Otherwise you can describe how to run the scripts, or how to collect the data manually.")]),e._v(" "),a("li",[a("strong",[e._v("License")]),e._v(": There are two issues here: the license of the data itself, and the license of the package you are creating (including any scripts). Our recommendation is to license the package you created as "),a("a",{attrs:{href:"https://creativecommons.org/publicdomain/zero/1.0/",title:"Creative Commons Public Domain Dedication",target:"_blank",rel:"noopener noreferrer"}},[e._v("CC0"),a("OutboundLink")],1),e._v(", and add any relevant information or disclaimers regarding the source data’s license.")])])])]),e._v(" "),a("p",[e._v("To summarize, these are the folders, files, and their respective contents in this structure:")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("Path")]),e._v(" "),a("th",[e._v("Type")]),e._v(" "),a("th",[e._v("Contents")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("data/")]),e._v(" "),a("td",[e._v("Data")]),e._v(" "),a("td",[e._v("Dataset’s data files.")])]),e._v(" "),a("tr",[a("td",[e._v("docs/")]),e._v(" "),a("td",[e._v("Documentation")]),e._v(" "),a("td",[e._v("Images, analysis, and other documentation files.")])]),e._v(" "),a("tr",[a("td",[e._v("scripts/")]),e._v(" "),a("td",[e._v("Scripts")]),e._v(" "),a("td",[e._v("Scripts used for creating, modifying, or analysing the dataset.")])]),e._v(" "),a("tr",[a("td",[e._v("Makefile")]),e._v(" "),a("td",[e._v("Scripts")]),e._v(" "),a("td",[e._v("Executable documentation on how to run the scripts.")])]),e._v(" "),a("tr",[a("td",[e._v("datapackage.json")]),e._v(" "),a("td",[e._v("Metadata")]),e._v(" "),a("td",[e._v("Data Package descriptor file.")])]),e._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"http://README.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("README.md"),a("OutboundLink")],1)]),e._v(" "),a("td",[e._v("Documentation")]),e._v(" "),a("td",[e._v("Textual description of the dataset with description, preparation steps, license, etc.")])])])]),e._v(" "),a("p",[e._v("** Step 2. Upload the dataset to GitHub **")]),e._v(" "),a("ol",[a("li",[e._v("Login (or create) a new account on GitHub")]),e._v(" "),a("li",[e._v("Create "),a("a",{attrs:{href:"https://github.com/new",title:"GitHub New Repository",target:"_blank",rel:"noopener noreferrer"}},[e._v("a new repository"),a("OutboundLink")],1),e._v(" "),a("ul",[a("li",[e._v("Write a short description about the dataset")])])]),e._v(" "),a("li",[e._v("On your repository page, click on the “Upload files” link")]),e._v(" "),a("li",[e._v("Upload the files you created in the previous step\n"),a("ul",[a("li",[e._v("If your have files larger than 25 MB, you’ll need to either "),a("a",{attrs:{href:"https://help.github.com/articles/adding-a-file-to-a-repository-using-the-command-line/",title:"Adding a file to a repository using the command line",target:"_blank",rel:"noopener noreferrer"}},[e._v("upload using the command line"),a("OutboundLink")],1),e._v(", or the "),a("a",{attrs:{href:"https://desktop.github.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub Desktop client"),a("OutboundLink")],1),e._v(".")])])])]),e._v(" "),a("p",[e._v("** (Optional) Step 3. Enable automatic tabular data validation **")]),e._v(" "),a("p",[e._v("You can automatically validate your tabular data files using "),a("a",{attrs:{href:"https://goodtables.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("goodtables.io"),a("OutboundLink")],1),e._v(". This will take only a few minutes, and will ensure you’ll always know when there are errors with your dataset, maintaining its quality. "),a("a",{attrs:{href:"/blog/2018/03/12/automatically-validated-tabular-data"}},[e._v("Read the walkthrough here")]),e._v(".")]),e._v(" "),a("p",[e._v("The sample datasets used in this example, that is, List of schools in Birmingham, UK are available "),a("a",{attrs:{href:"https://github.com/vitorbaptista/birmingham_schools",target:"_blank",rel:"noopener noreferrer"}},[e._v("in this repository"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/87.00a63b75.js b/assets/js/87.69707213.js similarity index 99% rename from assets/js/87.00a63b75.js rename to assets/js/87.69707213.js index 13d7a2471..dc05894f7 100644 --- a/assets/js/87.00a63b75.js +++ b/assets/js/87.69707213.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{607:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("This tutorial is about how to publish your Data Package online for others to find and use.")]),e._v(" "),t("p",[e._v("It assumes you have already finished packaging up your data as a Data Package (if not, "),t("RouterLink",{attrs:{to:"/blog/2018/07/16/publish-data-as-data-packages/"}},[e._v("check out the instructions here")]),e._v(").")],1),e._v(" "),t("h2",{attrs:{id:"it-s-only-files-online"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#it-s-only-files-online"}},[e._v("#")]),e._v(" It’s Only Files Online")]),e._v(" "),t("p",[e._v("Publishing your Data Package is incredibly simple: you just need to post it online somewhere that others can access.")]),e._v(" "),t("p",[t("strong",[e._v("Note:")]),e._v(" if you just want to to share your Data Package with a few others you can just send it directly, for example via email. Since a Data Package is just some files there are as many ways to do this as there are ways to put files online. Here we will just provide some general tips and illustrate some of the most popular publishing options.")]),e._v(" "),t("p",[t("strong",[e._v("Advertise it")])]),e._v(" "),t("p",[e._v("Once you have published your data package you may want to advertise it to others. One way to advertise the existence of your dataset is to add it to the catalog-list file in the "),t("a",{attrs:{href:"https://github.com/datasets/registry/",target:"_blank",rel:"noopener noreferrer"}},[e._v("registry repo"),t("OutboundLink")],1),e._v(", it will then automagically appear as a community dataset on the "),t("a",{attrs:{href:"http://data.okfn.org/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.okfn.org"),t("OutboundLink")],1),e._v(" site")]),e._v(" "),t("h2",{attrs:{id:"github-bitbucket-etc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#github-bitbucket-etc"}},[e._v("#")]),e._v(" Github, Bitbucket etc")]),e._v(" "),t("p",[e._v("One nice option for the more sophisticated is to manage your Data Package in a git or mercurial repo and push it to github, gitorious, bitbucket or similar.")]),e._v(" "),t("h2",{attrs:{id:"s3-google-storage-etc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#s3-google-storage-etc"}},[e._v("#")]),e._v(" S3, Google Storage etc")]),e._v(" "),t("p",[e._v("Cloud storage like S3 and Google Storage are perfect for storing your Data Packages.")]),e._v(" "),t("h2",{attrs:{id:"google-drive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#google-drive"}},[e._v("#")]),e._v(" Google Drive")]),e._v(" "),t("p",[e._v("The directory structure of a Data Package shared on Google Drive must be flat; that is, the Data Package must not contain any folders.")]),e._v(" "),t("p",[t("strong",[e._v("OK")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shared-folder\n|-- datapackage.json\n|-- README.md\n|-- data.csv\n")])])]),t("p",[t("strong",[e._v("Not OK")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shared-folder\n|-- datapackage.json\n|-- README.md\n|-- data\n |-- data.csv\n")])])]),t("ol",[t("li",[t("p",[e._v("Upload your Data Package folder ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2424368",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Change your folder’s share setting to "),t("strong",[e._v("Public on the web - Anyone on the Internet can find and view")]),e._v(" ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2494886",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Get a shareable link for your folder ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2494822",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Find your folder’s ID in the link")])])]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Example Link:")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("https://drive.google.com/open?id=0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM&authuser=0")])])])]),e._v(" "),t("li",[t("em",[e._v("Example ID:")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM")])])])])]),e._v(" "),t("ol",{attrs:{start:"5"}},[t("li",[e._v("Your "),t("code",[e._v("datapackage.json")]),e._v(" link is "),t("code",[e._v("https://googledrive.com/host/{ID}/datapackage.json")]),e._v("; for example, using the "),t("em",[e._v("Example ID")]),e._v(" from the previous step, the "),t("code",[e._v("datapackage.json")]),e._v(" link is:")])]),e._v(" "),t("ul",[t("li",[t("code",[e._v("https://googledrive.com/host/0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM/datapackage.json")])])]),e._v(" "),t("h2",{attrs:{id:"dropbox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dropbox"}},[e._v("#")]),e._v(" Dropbox")]),e._v(" "),t("p",[e._v("Just upload your files to Dropbox.")]),e._v(" "),t("p",[e._v("You do need to be a bit careful as Dropbox does not always replicate your local file layout in its online URLs. Therefore, make sure you read the "),t("a",{attrs:{href:"#key-tips"}},[e._v("Key Tips")]),e._v(" section below.")]),e._v(" "),t("h2",{attrs:{id:"key-tips"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#key-tips"}},[e._v("#")]),e._v(" Key Tips")]),e._v(" "),t("p",[e._v("However you publish your Data Package there are a few key points to keep in"),t("br"),e._v("\nmind:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("All the files in the Data Package should be accessible online")])]),e._v(" "),t("li",[t("p",[e._v("The structure of your Data Package should be preserved. Specifically the paths between your "),t("code",[e._v("datapackage.json")]),e._v(" and the data files must be preserved. For example, if your Data Package directory looked like this on disk:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("datapackage.json\ndata.csv\nsomedir/other-data.csv\n")])])]),t("p",[e._v("then online it should look like:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("http://your.website.com/mydatapackage/datapackage.json\nhttp://your.website.com/mydatapackage/data.csv\nhttp://your.website.com/mydatapackage/somedir/other-data.csv\n")])])]),t("p",[e._v("This can be a problem with services like e.g. Google Drive where files in a given folder don’t have a web address that relates to that folder. The reason we need to preserve relative paths is that when using the Data Package client software will compute the full path from the location of the "),t("code",[e._v("datapackage.json")]),e._v(" itself plus the relative path for the file give in the "),t("code",[e._v("datapackage.json")]),e._v(" resources section.")])])]),e._v(" "),t("p",[e._v("Recommended reading: Find out how to use Frictionless Data software to improve your data publishing workflow in our new and comprehensive "),t("a",{attrs:{href:"/tag/field-guide"}},[e._v("Frictionless Data Field Guide")]),e._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{608:function(e,a,t){"use strict";t.r(a);var o=t(29),r=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("This tutorial is about how to publish your Data Package online for others to find and use.")]),e._v(" "),t("p",[e._v("It assumes you have already finished packaging up your data as a Data Package (if not, "),t("RouterLink",{attrs:{to:"/blog/2018/07/16/publish-data-as-data-packages/"}},[e._v("check out the instructions here")]),e._v(").")],1),e._v(" "),t("h2",{attrs:{id:"it-s-only-files-online"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#it-s-only-files-online"}},[e._v("#")]),e._v(" It’s Only Files Online")]),e._v(" "),t("p",[e._v("Publishing your Data Package is incredibly simple: you just need to post it online somewhere that others can access.")]),e._v(" "),t("p",[t("strong",[e._v("Note:")]),e._v(" if you just want to to share your Data Package with a few others you can just send it directly, for example via email. Since a Data Package is just some files there are as many ways to do this as there are ways to put files online. Here we will just provide some general tips and illustrate some of the most popular publishing options.")]),e._v(" "),t("p",[t("strong",[e._v("Advertise it")])]),e._v(" "),t("p",[e._v("Once you have published your data package you may want to advertise it to others. One way to advertise the existence of your dataset is to add it to the catalog-list file in the "),t("a",{attrs:{href:"https://github.com/datasets/registry/",target:"_blank",rel:"noopener noreferrer"}},[e._v("registry repo"),t("OutboundLink")],1),e._v(", it will then automagically appear as a community dataset on the "),t("a",{attrs:{href:"http://data.okfn.org/data",target:"_blank",rel:"noopener noreferrer"}},[e._v("data.okfn.org"),t("OutboundLink")],1),e._v(" site")]),e._v(" "),t("h2",{attrs:{id:"github-bitbucket-etc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#github-bitbucket-etc"}},[e._v("#")]),e._v(" Github, Bitbucket etc")]),e._v(" "),t("p",[e._v("One nice option for the more sophisticated is to manage your Data Package in a git or mercurial repo and push it to github, gitorious, bitbucket or similar.")]),e._v(" "),t("h2",{attrs:{id:"s3-google-storage-etc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#s3-google-storage-etc"}},[e._v("#")]),e._v(" S3, Google Storage etc")]),e._v(" "),t("p",[e._v("Cloud storage like S3 and Google Storage are perfect for storing your Data Packages.")]),e._v(" "),t("h2",{attrs:{id:"google-drive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#google-drive"}},[e._v("#")]),e._v(" Google Drive")]),e._v(" "),t("p",[e._v("The directory structure of a Data Package shared on Google Drive must be flat; that is, the Data Package must not contain any folders.")]),e._v(" "),t("p",[t("strong",[e._v("OK")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shared-folder\n|-- datapackage.json\n|-- README.md\n|-- data.csv\n")])])]),t("p",[t("strong",[e._v("Not OK")])]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("shared-folder\n|-- datapackage.json\n|-- README.md\n|-- data\n |-- data.csv\n")])])]),t("ol",[t("li",[t("p",[e._v("Upload your Data Package folder ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2424368",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Change your folder’s share setting to "),t("strong",[e._v("Public on the web - Anyone on the Internet can find and view")]),e._v(" ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2494886",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Get a shareable link for your folder ("),t("a",{attrs:{href:"https://support.google.com/drive/answer/2494822",target:"_blank",rel:"noopener noreferrer"}},[e._v("help"),t("OutboundLink")],1),e._v(")")])]),e._v(" "),t("li",[t("p",[e._v("Find your folder’s ID in the link")])])]),e._v(" "),t("ul",[t("li",[t("em",[e._v("Example Link:")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("https://drive.google.com/open?id=0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM&authuser=0")])])])]),e._v(" "),t("li",[t("em",[e._v("Example ID:")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM")])])])])]),e._v(" "),t("ol",{attrs:{start:"5"}},[t("li",[e._v("Your "),t("code",[e._v("datapackage.json")]),e._v(" link is "),t("code",[e._v("https://googledrive.com/host/{ID}/datapackage.json")]),e._v("; for example, using the "),t("em",[e._v("Example ID")]),e._v(" from the previous step, the "),t("code",[e._v("datapackage.json")]),e._v(" link is:")])]),e._v(" "),t("ul",[t("li",[t("code",[e._v("https://googledrive.com/host/0B-f6D5RM8awSfkdtRWpiTlpxdmhPblJRd2NhdHpHMFZPOFZKcWhpT2NkQlZCUlNWUnFwaHM/datapackage.json")])])]),e._v(" "),t("h2",{attrs:{id:"dropbox"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#dropbox"}},[e._v("#")]),e._v(" Dropbox")]),e._v(" "),t("p",[e._v("Just upload your files to Dropbox.")]),e._v(" "),t("p",[e._v("You do need to be a bit careful as Dropbox does not always replicate your local file layout in its online URLs. Therefore, make sure you read the "),t("a",{attrs:{href:"#key-tips"}},[e._v("Key Tips")]),e._v(" section below.")]),e._v(" "),t("h2",{attrs:{id:"key-tips"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#key-tips"}},[e._v("#")]),e._v(" Key Tips")]),e._v(" "),t("p",[e._v("However you publish your Data Package there are a few key points to keep in"),t("br"),e._v("\nmind:")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("All the files in the Data Package should be accessible online")])]),e._v(" "),t("li",[t("p",[e._v("The structure of your Data Package should be preserved. Specifically the paths between your "),t("code",[e._v("datapackage.json")]),e._v(" and the data files must be preserved. For example, if your Data Package directory looked like this on disk:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("datapackage.json\ndata.csv\nsomedir/other-data.csv\n")])])]),t("p",[e._v("then online it should look like:")]),e._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",[t("code",[e._v("http://your.website.com/mydatapackage/datapackage.json\nhttp://your.website.com/mydatapackage/data.csv\nhttp://your.website.com/mydatapackage/somedir/other-data.csv\n")])])]),t("p",[e._v("This can be a problem with services like e.g. Google Drive where files in a given folder don’t have a web address that relates to that folder. The reason we need to preserve relative paths is that when using the Data Package client software will compute the full path from the location of the "),t("code",[e._v("datapackage.json")]),e._v(" itself plus the relative path for the file give in the "),t("code",[e._v("datapackage.json")]),e._v(" resources section.")])])]),e._v(" "),t("p",[e._v("Recommended reading: Find out how to use Frictionless Data software to improve your data publishing workflow in our new and comprehensive "),t("a",{attrs:{href:"/tag/field-guide"}},[e._v("Frictionless Data Field Guide")]),e._v(".")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/88.993fe8bc.js b/assets/js/88.151550eb.js similarity index 98% rename from assets/js/88.993fe8bc.js rename to assets/js/88.151550eb.js index 94e53240b..8ef3f1e78 100644 --- a/assets/js/88.993fe8bc.js +++ b/assets/js/88.151550eb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{611:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Stephan Max for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("h3",{attrs:{id:"meet-stephan-max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-stephan-max"}},[e._v("#")]),e._v(" Meet Stephan Max")]),e._v(" "),a("p",[e._v("Hi, my name is Stephan Max and I am a computer scientist based in Cologne, Germany. I’ve been in the industry for over 10 years now and worked for all kinds of companies, ranging from own startup (crowd-funded online journalism), over big corporate (IBM), to established African business data startup (Asoko Insight). I am now a filter engineer at eyeo trying to make the web a fair, open, and safe place for everybody.")]),e._v(" "),a("p",[e._v("I love working with kids and teenagers, cooking, and doing music—I just recently started drum lessons!")]),e._v(" "),a("h3",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I’ve been following the work of the Open Knowledge Foundation for a while now and contributed to the German branch as a mentor for the teenage hackathon weekends project “Jugend Hackt” (Youth Hacks). I first heard about the Frictionless Data program when the OKF announced funding by the Sloan Foundation in 2018. After watching Serah Njambi Rono’s talk on Youtube ("),a("a",{attrs:{href:"https://www.youtube.com/watch?v=3Ranx9Jz0Ro",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.youtube.com/watch?v=3Ranx9Jz0Ro"),a("OutboundLink")],1),e._v(") and reading about the Reproducible Research Tool Fund on Twitter, I knew I wanted to contribute.")]),e._v(" "),a("h3",{attrs:{id:"why-did-you-apply-for-a-tool-fund-grant"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-did-you-apply-for-a-tool-fund-grant"}},[e._v("#")]),e._v(" Why did you apply for a Tool Fund grant?")]),e._v(" "),a("p",[e._v("I first heard about the concepts and challenges around Reproducible Research when taking the MOOC “Data Science” from Johns Hopkins University on Coursera. Since I had my fair share of work inside proprietary data formats and tools, I was happy to see that there are people out there making serious efforts to remedy the loss of attribution and data manipulation steps. After browsing through OKF’s Frictionless Data website, I was even happier that there are actual tools, libraries, and standards already available. Applying for the tool fund and contributing my own humble idea was a no-brainer for me.")]),e._v(" "),a("h3",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("My goal is to add a Data Package import/export add-on to Google Sheets. I understand that a lot of data wrangling is still done in Sheets, Excel, and files being swapped around. A lot of information is lost that way. Where did the data initially come from? How was it manipulated, cleaned, or otherwise altered? How can we feed spreadsheets back into a Reproducible Research pipeline? I think Data Packages is a brilliant format to model and preserve exactly that information. While I do not want to lure people away from the tools they are already familiar with, I think we can bridge the gap between Google Sheets and Frictionless Data by making Data Packages a first-class citizen.")]),e._v(" "),a("h3",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-google-sheets-add-on"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-google-sheets-add-on"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data Google Sheets add-on?")]),e._v(" "),a("p",[e._v("I think open source and data is a unique and wonderful opportunity to get access to the “wisdom of the crowd” and ensure that software and information is and remains accessible to everyone. In the first few weeks I will focus on getting a first prototype and sufficient documentation up, so you can all play with the Data Package import/export add-on as soon as possible. After that, I invite you to take a look at our Github repository ("),a("a",{attrs:{href:"https://github.com/frictionlessdata/googlesheets-datapackage-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/googlesheets-datapackage-tools"),a("OutboundLink")],1),e._v("), play around with the tool, and contribute. Raising an issue, opening a pull request, improving the documentation, giving feedback on the user experience—everything counts! I am so stoked to be part of this Frictionless Data journey and can’t wait to see what we will accomplish. Thank you very much in advance!")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{612:function(e,t,a){"use strict";a.r(t);var o=a(29),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features Stephan Max for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("h3",{attrs:{id:"meet-stephan-max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-stephan-max"}},[e._v("#")]),e._v(" Meet Stephan Max")]),e._v(" "),a("p",[e._v("Hi, my name is Stephan Max and I am a computer scientist based in Cologne, Germany. I’ve been in the industry for over 10 years now and worked for all kinds of companies, ranging from own startup (crowd-funded online journalism), over big corporate (IBM), to established African business data startup (Asoko Insight). I am now a filter engineer at eyeo trying to make the web a fair, open, and safe place for everybody.")]),e._v(" "),a("p",[e._v("I love working with kids and teenagers, cooking, and doing music—I just recently started drum lessons!")]),e._v(" "),a("h3",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("I’ve been following the work of the Open Knowledge Foundation for a while now and contributed to the German branch as a mentor for the teenage hackathon weekends project “Jugend Hackt” (Youth Hacks). I first heard about the Frictionless Data program when the OKF announced funding by the Sloan Foundation in 2018. After watching Serah Njambi Rono’s talk on Youtube ("),a("a",{attrs:{href:"https://www.youtube.com/watch?v=3Ranx9Jz0Ro",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.youtube.com/watch?v=3Ranx9Jz0Ro"),a("OutboundLink")],1),e._v(") and reading about the Reproducible Research Tool Fund on Twitter, I knew I wanted to contribute.")]),e._v(" "),a("h3",{attrs:{id:"why-did-you-apply-for-a-tool-fund-grant"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-did-you-apply-for-a-tool-fund-grant"}},[e._v("#")]),e._v(" Why did you apply for a Tool Fund grant?")]),e._v(" "),a("p",[e._v("I first heard about the concepts and challenges around Reproducible Research when taking the MOOC “Data Science” from Johns Hopkins University on Coursera. Since I had my fair share of work inside proprietary data formats and tools, I was happy to see that there are people out there making serious efforts to remedy the loss of attribution and data manipulation steps. After browsing through OKF’s Frictionless Data website, I was even happier that there are actual tools, libraries, and standards already available. Applying for the tool fund and contributing my own humble idea was a no-brainer for me.")]),e._v(" "),a("h3",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("My goal is to add a Data Package import/export add-on to Google Sheets. I understand that a lot of data wrangling is still done in Sheets, Excel, and files being swapped around. A lot of information is lost that way. Where did the data initially come from? How was it manipulated, cleaned, or otherwise altered? How can we feed spreadsheets back into a Reproducible Research pipeline? I think Data Packages is a brilliant format to model and preserve exactly that information. While I do not want to lure people away from the tools they are already familiar with, I think we can bridge the gap between Google Sheets and Frictionless Data by making Data Packages a first-class citizen.")]),e._v(" "),a("h3",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-google-sheets-add-on"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-google-sheets-add-on"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data Google Sheets add-on?")]),e._v(" "),a("p",[e._v("I think open source and data is a unique and wonderful opportunity to get access to the “wisdom of the crowd” and ensure that software and information is and remains accessible to everyone. In the first few weeks I will focus on getting a first prototype and sufficient documentation up, so you can all play with the Data Package import/export add-on as soon as possible. After that, I invite you to take a look at our Github repository ("),a("a",{attrs:{href:"https://github.com/frictionlessdata/googlesheets-datapackage-tools",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/frictionlessdata/googlesheets-datapackage-tools"),a("OutboundLink")],1),e._v("), play around with the tool, and contribute. Raising an issue, opening a pull request, improving the documentation, giving feedback on the user experience—everything counts! I am so stoked to be part of this Frictionless Data journey and can’t wait to see what we will accomplish. Thank you very much in advance!")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/89.e52e45f9.js b/assets/js/89.757a6bde.js similarity index 99% rename from assets/js/89.e52e45f9.js rename to assets/js/89.757a6bde.js index 17aea6506..3e18400c9 100644 --- a/assets/js/89.e52e45f9.js +++ b/assets/js/89.757a6bde.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{612:function(e,a,t){"use strict";t.r(a);var o=t(29),n=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("This grantee profile features Carlos Eduardo Ribas and João Alexandre Peschanski from the Neuroscience Experiments System (NES) for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),t("h2",{attrs:{id:"meet-carlos-joao-and-ridc-neuromat"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#meet-carlos-joao-and-ridc-neuromat"}},[e._v("#")]),e._v(" Meet Carlos, João, and RIDC NeuroMat")]),e._v(" "),t("p",[e._v("João Alexandre Peschanski is the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Faculdade_C%C3%A1sper_L%C3%ADbero",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cásper Líbero "),t("OutboundLink")],1),e._v("Professor of Digital Media and Computational Journalism and the research supervisor of the dissemination team of the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/NeuroMat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research, Innovation and Dissemination Center for Neuromathematics"),t("OutboundLink")],1),e._v(" (RIDC NeuroMat), from the São Paulo Research Foundation. He is also the president of the "),t("a",{attrs:{href:"https://meta.wikimedia.org/wiki/Wikimedia_Community_User_Group_Brasil",target:"_blank",rel:"noopener noreferrer"}},[e._v("Wiki Movimento Brasi"),t("OutboundLink")],1),e._v("l, the Brazilian affiliate of the Wikimedia movement. As an academic, he has worked on open crowdsourcing resources as well as structured narratives and semantic web.")]),e._v(" "),t("p",[e._v("Carlos Eduardo Ribas is the leading software developer at the RIDC NeuroMat. He holds a position at the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/University_of_S%C3%A3o_Paulo",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of São Paulo"),t("OutboundLink")],1),e._v(" as a systems analyst. He is the development team leader of the "),t("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("Neuroscience Experiments System"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("The RIDC NeuroMat is a research center established in 2013 at the University of São Paulo, in Brazil. Among the core missions of NeuroMat are the development of open-source computational tools, keeping an active role under the context of open knowledge, open science and scientific dissemination. The NeuroMat project was recently renewed until July 31, 2024.")]),e._v(" "),t("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data-and-why-did-you-apply-for-a-tool-fund-grant"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data-and-why-did-you-apply-for-a-tool-fund-grant"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data and why did you apply for a Tool Fund grant?")]),e._v(" "),t("p",[e._v("We learned about the Tool Fund from an "),t("a",{attrs:{href:"https://br.okfn.org/2019/02/21/open-knowledge-internacional-anuncia-fundo-para-ferramenta-de-frictionless-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement"),t("OutboundLink")],1),e._v(" in Portuguese that was posted by Open Knowledge Brasil. The Frictionless Data Tool Fund grant is also an opportunity to connect with like-minded professionals and their projects, and eventually building and supporting a community deeply engaged with the development of open science and tools.")]),e._v(" "),t("p",[e._v("Public databases are seen as crucial by many members of the neuroscientific community as a means of moving forward more effectively in understanding the functioning and treatment of brain pathologies. However, only open data are not enough, it should be created in a way that can be easily shared and used. Data and metadata should be readable by researchers and machines and Frictionless Data can certainly help with this.")]),e._v(" "),t("p",[e._v("In our case, NES and the NeuroMat Open Database were developed to establish a standard for data collection in neuroscientific experiments. The standardization of data collection is key for reproducible science. The advantages of the Frictionless Data approach for us is fundamentally to be able to standardize data opening and sharing within the scientific community.")]),e._v(" "),t("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),t("p",[e._v("NES is an open-source tool being developed that aims to assist neuroscience research laboratories in routine procedures for data collection. NES was developed to store a large amount of data in a structured way, allowing researchers to seek and share data and metadata of neuroscience experiments. To the best of our knowledge, there are no open-source software tools which provide a way to record data and metadata involved in all steps of an electrophysiological experiment and also register experimental data and its fundamental provenance information. With the anonymization of sensitive information, the data collected using NES can be publicly available through the "),t("a",{attrs:{href:"https://neuromatdb.numec.prp.usp.br/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NeuroMat Open Database"),t("OutboundLink")],1),e._v(", which allows any researcher to reproduce the experiment or simply use the data in a different study.")]),e._v(" "),t("p",[e._v("The system already has some features ready to use, such as Participant registration, Experiment management, Questionnaire management and Data exportation. Some types of data that NES deals with are tasks, stimuli, instructions, EEG, EMG, TMS and questionnaires. Questionnaires are produced with "),t("a",{attrs:{href:"https://www.limesurvey.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("LimeSurvey"),t("OutboundLink")],1),e._v(" (an open-source software).")]),e._v(" "),t("p",[e._v("We propose to change the NES to rely on the philosophy for Frictionless Data. The data exportation module can be adjusted to reflect the set of specifications for data and metadata interoperability and also to be in the Data Package format, as well as any other feature to be in accordance to the philosophy proposed. A major feature to be developed is a JSON file “descriptor” with initial information related to the experiment. However, as sensitive information may be presented at this stage, public access to such data will be done after the anonymization and submission of the experiment to the NeuroMat Open Database.")]),e._v(" "),t("p",[e._v("To bring NES to the philosophy for Frictionless Data opens up an opportunity for scientists to have access not only to a universe of well-documented and labeled data, but also to understand the process that generated this data.")]),e._v(" "),t("h2",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-and-nes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-and-nes"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data and NES?")]),e._v(" "),t("p",[e._v("The source code is available on "),t("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://nes.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation link"),t("OutboundLink")],1),e._v("). The development has been done on Django framework. The license is Mozilla Public License Version 2.0. NES is an open source project managed using the Git version control system, so contributing is as easy as forking the project and committing your enhancements.")]),e._v(" "),t("p",[e._v("As the RIDC NeuroMat has published "),t("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/content/in-defense-of-public-scientific-data-sharing-a-neuromat-op-ed/",target:"_blank",rel:"noopener noreferrer"}},[e._v("elsewhere"),t("OutboundLink")],1),e._v(", the work on NES is part of a broader agenda for the development of a database that allows public access to neuroscientific data (physiological measures and functional assessments). We hope our engagement with the Frictionless Data community will open up possibilities of sharing and partnering up for moving this agenda forward.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{611:function(e,a,t){"use strict";t.r(a);var o=t(29),n=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("This grantee profile features Carlos Eduardo Ribas and João Alexandre Peschanski from the Neuroscience Experiments System (NES) for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),t("h2",{attrs:{id:"meet-carlos-joao-and-ridc-neuromat"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#meet-carlos-joao-and-ridc-neuromat"}},[e._v("#")]),e._v(" Meet Carlos, João, and RIDC NeuroMat")]),e._v(" "),t("p",[e._v("João Alexandre Peschanski is the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/Faculdade_C%C3%A1sper_L%C3%ADbero",target:"_blank",rel:"noopener noreferrer"}},[e._v("Cásper Líbero "),t("OutboundLink")],1),e._v("Professor of Digital Media and Computational Journalism and the research supervisor of the dissemination team of the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/NeuroMat",target:"_blank",rel:"noopener noreferrer"}},[e._v("Research, Innovation and Dissemination Center for Neuromathematics"),t("OutboundLink")],1),e._v(" (RIDC NeuroMat), from the São Paulo Research Foundation. He is also the president of the "),t("a",{attrs:{href:"https://meta.wikimedia.org/wiki/Wikimedia_Community_User_Group_Brasil",target:"_blank",rel:"noopener noreferrer"}},[e._v("Wiki Movimento Brasi"),t("OutboundLink")],1),e._v("l, the Brazilian affiliate of the Wikimedia movement. As an academic, he has worked on open crowdsourcing resources as well as structured narratives and semantic web.")]),e._v(" "),t("p",[e._v("Carlos Eduardo Ribas is the leading software developer at the RIDC NeuroMat. He holds a position at the "),t("a",{attrs:{href:"https://en.wikipedia.org/wiki/University_of_S%C3%A3o_Paulo",target:"_blank",rel:"noopener noreferrer"}},[e._v("University of São Paulo"),t("OutboundLink")],1),e._v(" as a systems analyst. He is the development team leader of the "),t("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("Neuroscience Experiments System"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("The RIDC NeuroMat is a research center established in 2013 at the University of São Paulo, in Brazil. Among the core missions of NeuroMat are the development of open-source computational tools, keeping an active role under the context of open knowledge, open science and scientific dissemination. The NeuroMat project was recently renewed until July 31, 2024.")]),e._v(" "),t("h2",{attrs:{id:"how-did-you-first-hear-about-frictionless-data-and-why-did-you-apply-for-a-tool-fund-grant"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data-and-why-did-you-apply-for-a-tool-fund-grant"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data and why did you apply for a Tool Fund grant?")]),e._v(" "),t("p",[e._v("We learned about the Tool Fund from an "),t("a",{attrs:{href:"https://br.okfn.org/2019/02/21/open-knowledge-internacional-anuncia-fundo-para-ferramenta-de-frictionless-data/",target:"_blank",rel:"noopener noreferrer"}},[e._v("announcement"),t("OutboundLink")],1),e._v(" in Portuguese that was posted by Open Knowledge Brasil. The Frictionless Data Tool Fund grant is also an opportunity to connect with like-minded professionals and their projects, and eventually building and supporting a community deeply engaged with the development of open science and tools.")]),e._v(" "),t("p",[e._v("Public databases are seen as crucial by many members of the neuroscientific community as a means of moving forward more effectively in understanding the functioning and treatment of brain pathologies. However, only open data are not enough, it should be created in a way that can be easily shared and used. Data and metadata should be readable by researchers and machines and Frictionless Data can certainly help with this.")]),e._v(" "),t("p",[e._v("In our case, NES and the NeuroMat Open Database were developed to establish a standard for data collection in neuroscientific experiments. The standardization of data collection is key for reproducible science. The advantages of the Frictionless Data approach for us is fundamentally to be able to standardize data opening and sharing within the scientific community.")]),e._v(" "),t("h2",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),t("p",[e._v("NES is an open-source tool being developed that aims to assist neuroscience research laboratories in routine procedures for data collection. NES was developed to store a large amount of data in a structured way, allowing researchers to seek and share data and metadata of neuroscience experiments. To the best of our knowledge, there are no open-source software tools which provide a way to record data and metadata involved in all steps of an electrophysiological experiment and also register experimental data and its fundamental provenance information. With the anonymization of sensitive information, the data collected using NES can be publicly available through the "),t("a",{attrs:{href:"https://neuromatdb.numec.prp.usp.br/",target:"_blank",rel:"noopener noreferrer"}},[e._v("NeuroMat Open Database"),t("OutboundLink")],1),e._v(", which allows any researcher to reproduce the experiment or simply use the data in a different study.")]),e._v(" "),t("p",[e._v("The system already has some features ready to use, such as Participant registration, Experiment management, Questionnaire management and Data exportation. Some types of data that NES deals with are tasks, stimuli, instructions, EEG, EMG, TMS and questionnaires. Questionnaires are produced with "),t("a",{attrs:{href:"https://www.limesurvey.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("LimeSurvey"),t("OutboundLink")],1),e._v(" (an open-source software).")]),e._v(" "),t("p",[e._v("We propose to change the NES to rely on the philosophy for Frictionless Data. The data exportation module can be adjusted to reflect the set of specifications for data and metadata interoperability and also to be in the Data Package format, as well as any other feature to be in accordance to the philosophy proposed. A major feature to be developed is a JSON file “descriptor” with initial information related to the experiment. However, as sensitive information may be presented at this stage, public access to such data will be done after the anonymization and submission of the experiment to the NeuroMat Open Database.")]),e._v(" "),t("p",[e._v("To bring NES to the philosophy for Frictionless Data opens up an opportunity for scientists to have access not only to a universe of well-documented and labeled data, but also to understand the process that generated this data.")]),e._v(" "),t("h2",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-and-nes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-and-nes"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data and NES?")]),e._v(" "),t("p",[e._v("The source code is available on "),t("a",{attrs:{href:"https://github.com/neuromat/nes",target:"_blank",rel:"noopener noreferrer"}},[e._v("GitHub"),t("OutboundLink")],1),e._v(" ("),t("a",{attrs:{href:"https://nes.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[e._v("documentation link"),t("OutboundLink")],1),e._v("). The development has been done on Django framework. The license is Mozilla Public License Version 2.0. NES is an open source project managed using the Git version control system, so contributing is as easy as forking the project and committing your enhancements.")]),e._v(" "),t("p",[e._v("As the RIDC NeuroMat has published "),t("a",{attrs:{href:"https://neuromat.numec.prp.usp.br/content/in-defense-of-public-scientific-data-sharing-a-neuromat-op-ed/",target:"_blank",rel:"noopener noreferrer"}},[e._v("elsewhere"),t("OutboundLink")],1),e._v(", the work on NES is part of a broader agenda for the development of a database that allows public access to neuroscientific data (physiological measures and functional assessments). We hope our engagement with the Frictionless Data community will open up possibilities of sharing and partnering up for moving this agenda forward.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/92.04d2ff06.js b/assets/js/92.a2f28577.js similarity index 98% rename from assets/js/92.04d2ff06.js rename to assets/js/92.a2f28577.js index 46032ed1e..c71939665 100644 --- a/assets/js/92.04d2ff06.js +++ b/assets/js/92.a2f28577.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{616:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features André Heughebaert for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("h3",{attrs:{id:"meet-andre-heughebaert"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-andre-heughebaert"}},[e._v("#")]),e._v(" Meet André Heughebaert")]),e._v(" "),a("p",[e._v("With 30+ years experience in Software Development (mostly Database, GIS and webapps), I‘ve seen a wide variety of technologies, programming languages and paradigm changes. My current job is an IT Software Engineer at the "),a("a",{attrs:{href:"https://www.biodiversity.be/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Belgian Biodiversity Platform"),a("OutboundLink")],1),e._v(" and as the Belgian GBIF Node manager. Today, my activities focus on Open Data advocacy and technical support to publication and re-use of Open Data through GBIF Network. This includes intensive use of Darwin Core standards and related Biodiversity tools. Since 2016, I’m the chair of "),a("a",{attrs:{href:"https://www.gbif.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GBIF"),a("OutboundLink")],1),e._v(" Participation Nodes Committee. Before that, I’ve been working in Banking systems, early Digital TV and VoD servers and e-Learning platform. Last but certainly not least, I’m the proud father of four children. I live in Brussels and work for the federal public service.")]),e._v(" "),a("h3",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("Acquainted with CKAN, I discovered Frictionless Data through Twitter and the OKF website. Soon after that, I published my "),a("a",{attrs:{href:"https://datahub.io/andrejjh/junibis_data",target:"_blank",rel:"noopener noreferrer"}},[e._v("first Data Package"),a("OutboundLink")],1),e._v(" on historical movements of troops during the Napoleonic campaign of Belgium in 1815 underlying "),a("a",{attrs:{href:"http://www.junibis.be/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JunIBIS.be"),a("OutboundLink")],1),e._v(", a website launched with a friend for the 200th anniversary of this event.")]),e._v(" "),a("h3",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("The suggested tool will automatically convert Darwin Core Archive into Frictionless Data Packages, offering new perspectives to the GBIF community of data publishers and users. I will especially pay attention to potential incompatibilities between the two standards. Limitations of the "),a("a",{attrs:{href:"https://github.com/gbif/ipt/wiki/DwCAHowToGuide",target:"_blank",rel:"noopener noreferrer"}},[e._v("Darwin Core Star schema"),a("OutboundLink")],1),e._v(" encouraged me to investigate emerging open data standards, and the Frictionless Data Tool Fund grant is an excellent opportunity for me to bridge these two Open Data tools ecosystems.")]),e._v(" "),a("h3",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-darwin-core-archive-and-gbif"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-darwin-core-archive-and-gbif"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data, Darwin Core Archive and GBIF?")]),e._v(" "),a("p",[e._v("I do hope the Frictionless and GBIF communities will help me with issuing/tracking and solving incompatibilities, and also to build up new synergies. You can engage with Andre’s Tool Fund at the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/FrictionlessDarwinCore",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless DarwinCore repository"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{618:function(e,t,a){"use strict";a.r(t);var r=a(29),o=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("p",[e._v("This grantee profile features André Heughebaert for our series of Frictionless Data Tool Fund posts, written to shine a light on Frictionless Data’s Tool Fund grantees, their work and to let our technical community know how they can get involved.")]),e._v(" "),a("h3",{attrs:{id:"meet-andre-heughebaert"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#meet-andre-heughebaert"}},[e._v("#")]),e._v(" Meet André Heughebaert")]),e._v(" "),a("p",[e._v("With 30+ years experience in Software Development (mostly Database, GIS and webapps), I‘ve seen a wide variety of technologies, programming languages and paradigm changes. My current job is an IT Software Engineer at the "),a("a",{attrs:{href:"https://www.biodiversity.be/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Belgian Biodiversity Platform"),a("OutboundLink")],1),e._v(" and as the Belgian GBIF Node manager. Today, my activities focus on Open Data advocacy and technical support to publication and re-use of Open Data through GBIF Network. This includes intensive use of Darwin Core standards and related Biodiversity tools. Since 2016, I’m the chair of "),a("a",{attrs:{href:"https://www.gbif.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("GBIF"),a("OutboundLink")],1),e._v(" Participation Nodes Committee. Before that, I’ve been working in Banking systems, early Digital TV and VoD servers and e-Learning platform. Last but certainly not least, I’m the proud father of four children. I live in Brussels and work for the federal public service.")]),e._v(" "),a("h3",{attrs:{id:"how-did-you-first-hear-about-frictionless-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-did-you-first-hear-about-frictionless-data"}},[e._v("#")]),e._v(" How did you first hear about Frictionless Data?")]),e._v(" "),a("p",[e._v("Acquainted with CKAN, I discovered Frictionless Data through Twitter and the OKF website. Soon after that, I published my "),a("a",{attrs:{href:"https://datahub.io/andrejjh/junibis_data",target:"_blank",rel:"noopener noreferrer"}},[e._v("first Data Package"),a("OutboundLink")],1),e._v(" on historical movements of troops during the Napoleonic campaign of Belgium in 1815 underlying "),a("a",{attrs:{href:"http://www.junibis.be/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JunIBIS.be"),a("OutboundLink")],1),e._v(", a website launched with a friend for the 200th anniversary of this event.")]),e._v(" "),a("h3",{attrs:{id:"what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#what-specific-issues-are-you-looking-to-address-with-the-tool-fund"}},[e._v("#")]),e._v(" What specific issues are you looking to address with the Tool Fund?")]),e._v(" "),a("p",[e._v("The suggested tool will automatically convert Darwin Core Archive into Frictionless Data Packages, offering new perspectives to the GBIF community of data publishers and users. I will especially pay attention to potential incompatibilities between the two standards. Limitations of the "),a("a",{attrs:{href:"https://github.com/gbif/ipt/wiki/DwCAHowToGuide",target:"_blank",rel:"noopener noreferrer"}},[e._v("Darwin Core Star schema"),a("OutboundLink")],1),e._v(" encouraged me to investigate emerging open data standards, and the Frictionless Data Tool Fund grant is an excellent opportunity for me to bridge these two Open Data tools ecosystems.")]),e._v(" "),a("h3",{attrs:{id:"how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-darwin-core-archive-and-gbif"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-can-the-open-data-open-source-community-engage-with-the-work-you-are-doing-around-frictionless-data-darwin-core-archive-and-gbif"}},[e._v("#")]),e._v(" How can the open data, open source, community engage with the work you are doing around Frictionless Data, Darwin Core Archive and GBIF?")]),e._v(" "),a("p",[e._v("I do hope the Frictionless and GBIF communities will help me with issuing/tracking and solving incompatibilities, and also to build up new synergies. You can engage with Andre’s Tool Fund at the "),a("a",{attrs:{href:"https://github.com/frictionlessdata/FrictionlessDarwinCore",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless DarwinCore repository"),a("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/93.f0fa6979.js b/assets/js/93.73197f75.js similarity index 99% rename from assets/js/93.f0fa6979.js rename to assets/js/93.73197f75.js index 5dce72cc2..5393f987e 100644 --- a/assets/js/93.f0fa6979.js +++ b/assets/js/93.73197f75.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{617:function(e,t,n){"use strict";n.r(t);var i=n(29),s=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("p",[e._v("The theme of this year’s "),n("a",{attrs:{href:"http://www.openaccessweek.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Access Week"),n("OutboundLink")],1),e._v(" is “Open for Whom”, which inspired us to reflect on what Open Access means, why it is important, and especially how the people are (positively and negatively) affected by openness in science. Below you will find short thoughts from our four Fellows:")]),e._v(" "),n("h3",{attrs:{id:"sele"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sele"}},[e._v("#")]),e._v(" Sele")]),e._v(" "),n("p",[e._v("The privilege of science. We speak from the opening of the production of knowledge, however many times we do not analyze what it really means how privileged this access is. Open Access to whom? Could we also add the “by whom”? What do we produce, what do we share, who enables this? This week leaves me more doubts and reflections, because it is not enough to think about who we deposit the knowledge to, we have to analyze our place from where we stand when we share it.")]),e._v(" "),n("h3",{attrs:{id:"monica"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#monica"}},[e._v("#")]),e._v(" Monica")]),e._v(" "),n("p",[e._v("Open science touts the tantalizing prospect of making science accessible to anyone, anywhere in the world. Yet simply making data and code freely available doesn’t make science easier to access for everyone, everywhere. To me this year’s Open Access Week theme is challenging the open science community to think about how we rebuild the inequitable system we are dismantling. How do we make science both physically reachable and comprensible, while not putting the burden of transforming the system on marginalized groups? These are, perhaps, the most important questions for the open science community and we must address them before we can hope of making real progressive change to the way knowledge is created and shared.")]),e._v(" "),n("h3",{attrs:{id:"ouso"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#ouso"}},[e._v("#")]),e._v(" Ouso")]),e._v(" "),n("p",[e._v("Open Access Week is an important event for open access awareness. It is to highlight advances in the realms of modern scientific research practices and communication. But, I wish one thing for you this week, that Open Access (OA) should bother you. Is your scientific practise in line with it? The week’s theme question - “Open for whom?” eagerly arrested my attention; what is its meaning from my perspective? I would love to pick your mind on it too, but I’ll stick to mine for this bit. Foremost, let me clarify, in its classical meaning OA is unrestricted access to literature, yet here I will mean unrestricted access to all products of research, more or less synonymous to Open Science. My personal summary of it is #NROA – No Restrictions, Only Attribution. However, I must remind us of the need to remain ethical which, I think, is an aspect of the “for whom?”. This question insinuates that certain risks are associated with openness, signalling a red light, and inevitably invoking fear. The fears are chiefly fuelled by ignorance on the many protective options available with openness. In most of my interactions regarding openness, the elephant in the room is security. Of the common triad of Open Science, Open- access (literature), source, and data, the latter is most affected with regards to security. Some people profit from data without consent, at the expense of the public. Also, mainly from the aspect of the former two, some researchers have feared the hijacking of their in-development ideas from open spaces, missing out on well-deserved recognition/attribution. This has led only to preferential access to closed research groups. Openness is very welcoming, attracting with it people/entities with good and bad intentions indiscriminately, but mitigations have been put or are in the process of being put in place. Such include data protection "),n("a",{attrs:{href:"https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3381593",target:"_blank",rel:"noopener noreferrer"}},[e._v("laws"),n("OutboundLink")],1),e._v(", "),n("a",{attrs:{href:"https://www.who.int/ethics/research/en/",target:"_blank",rel:"noopener noreferrer"}},[e._v("policies"),n("OutboundLink")],1),e._v(" for anonymisation and confidentiality in research, portals for "),n("a",{attrs:{href:"https://cos.io/prereg/",target:"_blank",rel:"noopener noreferrer"}},[e._v("preregistration"),n("OutboundLink")],1),e._v(" of research ideas and design, and micro-publishers like "),n("a",{attrs:{href:"https://www.flashpub.io/about",target:"_blank",rel:"noopener noreferrer"}},[e._v("flushPub"),n("OutboundLink")],1),e._v(" for quick sharing of knowledge.")]),e._v(" "),n("h3",{attrs:{id:"lily"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#lily"}},[e._v("#")]),e._v(" Lily")]),e._v(" "),n("p",[e._v("A question I ask other scientists as part of my research is: “Who or what do you consider to be the beneficiaries of your research?”. The answers range from ‘the broader academic community’, to ‘local communities’, to ‘everyone’. I then ask a follow-up question, “How successful do you think you have been in reaching this audience?”. Interestingly, scientists who answer that their beneficiaries are other academics are more likely to consider themselves successful in reaching their target audience, citing scientific publications leading to their success. Scientists trying to reach broader audiences often feel that they are unsuccessful in having their work affect the general public or local residents near their study site. They mention limited funding, not having enough time, and feeling awkward stepping outside their comfort zone as things hindering them. However, in my opinion, they are brave in sharing these sentiments. Wanting to reach a broader audience and recognizing one’s limitations is an important step in the spirit of Open Access Week. Sele mentioned that we can consider not only ‘open for whom’ but ‘open by whom’. By explicitly considering these questions early on, in an inclusive, iterative and transparent manner, researchers, practitioners, and communities can build a more equitable and streamlined pipeline from research to impact.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{616:function(e,t,n){"use strict";n.r(t);var i=n(29),s=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("p",[e._v("The theme of this year’s "),n("a",{attrs:{href:"http://www.openaccessweek.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Access Week"),n("OutboundLink")],1),e._v(" is “Open for Whom”, which inspired us to reflect on what Open Access means, why it is important, and especially how the people are (positively and negatively) affected by openness in science. Below you will find short thoughts from our four Fellows:")]),e._v(" "),n("h3",{attrs:{id:"sele"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sele"}},[e._v("#")]),e._v(" Sele")]),e._v(" "),n("p",[e._v("The privilege of science. We speak from the opening of the production of knowledge, however many times we do not analyze what it really means how privileged this access is. Open Access to whom? Could we also add the “by whom”? What do we produce, what do we share, who enables this? This week leaves me more doubts and reflections, because it is not enough to think about who we deposit the knowledge to, we have to analyze our place from where we stand when we share it.")]),e._v(" "),n("h3",{attrs:{id:"monica"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#monica"}},[e._v("#")]),e._v(" Monica")]),e._v(" "),n("p",[e._v("Open science touts the tantalizing prospect of making science accessible to anyone, anywhere in the world. Yet simply making data and code freely available doesn’t make science easier to access for everyone, everywhere. To me this year’s Open Access Week theme is challenging the open science community to think about how we rebuild the inequitable system we are dismantling. How do we make science both physically reachable and comprensible, while not putting the burden of transforming the system on marginalized groups? These are, perhaps, the most important questions for the open science community and we must address them before we can hope of making real progressive change to the way knowledge is created and shared.")]),e._v(" "),n("h3",{attrs:{id:"ouso"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#ouso"}},[e._v("#")]),e._v(" Ouso")]),e._v(" "),n("p",[e._v("Open Access Week is an important event for open access awareness. It is to highlight advances in the realms of modern scientific research practices and communication. But, I wish one thing for you this week, that Open Access (OA) should bother you. Is your scientific practise in line with it? The week’s theme question - “Open for whom?” eagerly arrested my attention; what is its meaning from my perspective? I would love to pick your mind on it too, but I’ll stick to mine for this bit. Foremost, let me clarify, in its classical meaning OA is unrestricted access to literature, yet here I will mean unrestricted access to all products of research, more or less synonymous to Open Science. My personal summary of it is #NROA – No Restrictions, Only Attribution. However, I must remind us of the need to remain ethical which, I think, is an aspect of the “for whom?”. This question insinuates that certain risks are associated with openness, signalling a red light, and inevitably invoking fear. The fears are chiefly fuelled by ignorance on the many protective options available with openness. In most of my interactions regarding openness, the elephant in the room is security. Of the common triad of Open Science, Open- access (literature), source, and data, the latter is most affected with regards to security. Some people profit from data without consent, at the expense of the public. Also, mainly from the aspect of the former two, some researchers have feared the hijacking of their in-development ideas from open spaces, missing out on well-deserved recognition/attribution. This has led only to preferential access to closed research groups. Openness is very welcoming, attracting with it people/entities with good and bad intentions indiscriminately, but mitigations have been put or are in the process of being put in place. Such include data protection "),n("a",{attrs:{href:"https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3381593",target:"_blank",rel:"noopener noreferrer"}},[e._v("laws"),n("OutboundLink")],1),e._v(", "),n("a",{attrs:{href:"https://www.who.int/ethics/research/en/",target:"_blank",rel:"noopener noreferrer"}},[e._v("policies"),n("OutboundLink")],1),e._v(" for anonymisation and confidentiality in research, portals for "),n("a",{attrs:{href:"https://cos.io/prereg/",target:"_blank",rel:"noopener noreferrer"}},[e._v("preregistration"),n("OutboundLink")],1),e._v(" of research ideas and design, and micro-publishers like "),n("a",{attrs:{href:"https://www.flashpub.io/about",target:"_blank",rel:"noopener noreferrer"}},[e._v("flushPub"),n("OutboundLink")],1),e._v(" for quick sharing of knowledge.")]),e._v(" "),n("h3",{attrs:{id:"lily"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#lily"}},[e._v("#")]),e._v(" Lily")]),e._v(" "),n("p",[e._v("A question I ask other scientists as part of my research is: “Who or what do you consider to be the beneficiaries of your research?”. The answers range from ‘the broader academic community’, to ‘local communities’, to ‘everyone’. I then ask a follow-up question, “How successful do you think you have been in reaching this audience?”. Interestingly, scientists who answer that their beneficiaries are other academics are more likely to consider themselves successful in reaching their target audience, citing scientific publications leading to their success. Scientists trying to reach broader audiences often feel that they are unsuccessful in having their work affect the general public or local residents near their study site. They mention limited funding, not having enough time, and feeling awkward stepping outside their comfort zone as things hindering them. However, in my opinion, they are brave in sharing these sentiments. Wanting to reach a broader audience and recognizing one’s limitations is an important step in the spirit of Open Access Week. Sele mentioned that we can consider not only ‘open for whom’ but ‘open by whom’. By explicitly considering these questions early on, in an inclusive, iterative and transparent manner, researchers, practitioners, and communities can build a more equitable and streamlined pipeline from research to impact.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/97.6b145136.js b/assets/js/97.38257cb2.js similarity index 98% rename from assets/js/97.6b145136.js rename to assets/js/97.38257cb2.js index 3f43f2da6..fcea55081 100644 --- a/assets/js/97.6b145136.js +++ b/assets/js/97.38257cb2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{627:function(e,t,o){"use strict";o.r(t);var r=o(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("The first edition of "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Community Hangout"),o("OutboundLink")],1),e._v(" held on 20 April 2020 and it was a huge success and a great time spent with members of the community."),o("br"),e._v("\nWe had over 16 guests join the event - the highlight from this event was community interaction. We had several people ask questions regarding things they needed clarity on about Frictionless Data and people shared what they are currently working on.")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/DueOBc532B8",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("The event started with members of the community doing introductions across the room so we get to know each other better. People were also interested in knowing:")]),e._v(" "),o("ul",[o("li",[e._v("how frictionless data is different from Pandas")]),e._v(" "),o("li",[e._v("how are we moving towards the Open Science direction")])]),e._v(" "),o("p",[e._v("Another topic that surfaced was how people are using Frictionless Data. A great example here is Johan Richer’s use case. "),o("a",{attrs:{href:"https://twitter.com/JohanRicher",target:"_blank",rel:"noopener noreferrer"}},[e._v("Johan Richer"),o("OutboundLink")],1),e._v(", who works with the Open Data France team, shared a proposal for building a community led project called "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/23/table-schema-catalog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema Catalog"),o("OutboundLink")],1),e._v(". This project will serve as a single source of truth and a collection of table schemas from different organizations making all table schemas discoverable and usable. Here’s a great opportunity for the community to show some support! Johan is looking for collaborators, so if this project sounds interesting to you, go find more details on the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/5",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Forum"),o("OutboundLink")],1),e._v(" and get yourself involved.")]),e._v(" "),o("p",[e._v("Finally, we rounded up the hangout with Lilly from the "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(" team. She shared information about the upcoming "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Conf"),o("OutboundLink")],1),e._v(" on May 13-14 2020 and "),o("a",{attrs:{href:"https://blog.okfn.org/2020/03/02/announcing-the-2020-frictionless-data-tool-fund/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Tool Fund"),o("OutboundLink")],1),e._v(" which, by the way is still open for applications until May 17 2020.")]),e._v(" "),o("p",[e._v("The event went pretty well thanks to everyone that showed up - I think it’s a great start to cultivating community growth on Frictionless Data. We’ve scheduled another hangout on May 21, 2020. "),o("strong",[e._v("Early registration is on")]),e._v(" "),o("a",{attrs:{href:"https://us02web.zoom.us/meeting/register/tZMsf-qrrjopHtGZwMyM7tCmp_YyPlNms6wK",target:"_blank",rel:"noopener noreferrer"}},[e._v("go register now"),o("OutboundLink")],1),e._v(" so you don’t miss out. We are also opening up spots for people in the community to share what they are working on and anything related to Frictionless Data that’ll benefit the entire community. If this sounds appealing to you - reach out to us on "),o("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" and we’ll set it up.")]),e._v(" "),o("p",[e._v("For more updates on the project, join our online community on "),o("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" and follow "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("@frictionlessd8a"),o("OutboundLink")],1),e._v(" on twitter!")]),e._v(" "),o("p",[e._v("Thank you and look forward to seeing you at our next event!")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{626:function(e,t,o){"use strict";o.r(t);var r=o(29),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[e._v("The first edition of "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Community Hangout"),o("OutboundLink")],1),e._v(" held on 20 April 2020 and it was a huge success and a great time spent with members of the community."),o("br"),e._v("\nWe had over 16 guests join the event - the highlight from this event was community interaction. We had several people ask questions regarding things they needed clarity on about Frictionless Data and people shared what they are currently working on.")]),e._v(" "),o("iframe",{attrs:{width:"560",height:"315",src:"https://www.youtube.com/embed/DueOBc532B8",frameborder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""}}),e._v(" "),o("p",[e._v("The event started with members of the community doing introductions across the room so we get to know each other better. People were also interested in knowing:")]),e._v(" "),o("ul",[o("li",[e._v("how frictionless data is different from Pandas")]),e._v(" "),o("li",[e._v("how are we moving towards the Open Science direction")])]),e._v(" "),o("p",[e._v("Another topic that surfaced was how people are using Frictionless Data. A great example here is Johan Richer’s use case. "),o("a",{attrs:{href:"https://twitter.com/JohanRicher",target:"_blank",rel:"noopener noreferrer"}},[e._v("Johan Richer"),o("OutboundLink")],1),e._v(", who works with the Open Data France team, shared a proposal for building a community led project called "),o("a",{attrs:{href:"https://frictionlessdata.io/blog/2020/04/23/table-schema-catalog",target:"_blank",rel:"noopener noreferrer"}},[e._v("Table Schema Catalog"),o("OutboundLink")],1),e._v(". This project will serve as a single source of truth and a collection of table schemas from different organizations making all table schemas discoverable and usable. Here’s a great opportunity for the community to show some support! Johan is looking for collaborators, so if this project sounds interesting to you, go find more details on the "),o("a",{attrs:{href:"https://github.com/frictionlessdata/forum/issues/5",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Forum"),o("OutboundLink")],1),e._v(" and get yourself involved.")]),e._v(" "),o("p",[e._v("Finally, we rounded up the hangout with Lilly from the "),o("a",{attrs:{href:"https://okfn.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Open Knowledge Foundation"),o("OutboundLink")],1),e._v(" team. She shared information about the upcoming "),o("a",{attrs:{href:"https://csvconf.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("CSV Conf"),o("OutboundLink")],1),e._v(" on May 13-14 2020 and "),o("a",{attrs:{href:"https://blog.okfn.org/2020/03/02/announcing-the-2020-frictionless-data-tool-fund/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Frictionless Data Tool Fund"),o("OutboundLink")],1),e._v(" which, by the way is still open for applications until May 17 2020.")]),e._v(" "),o("p",[e._v("The event went pretty well thanks to everyone that showed up - I think it’s a great start to cultivating community growth on Frictionless Data. We’ve scheduled another hangout on May 21, 2020. "),o("strong",[e._v("Early registration is on")]),e._v(" "),o("a",{attrs:{href:"https://us02web.zoom.us/meeting/register/tZMsf-qrrjopHtGZwMyM7tCmp_YyPlNms6wK",target:"_blank",rel:"noopener noreferrer"}},[e._v("go register now"),o("OutboundLink")],1),e._v(" so you don’t miss out. We are also opening up spots for people in the community to share what they are working on and anything related to Frictionless Data that’ll benefit the entire community. If this sounds appealing to you - reach out to us on "),o("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" and we’ll set it up.")]),e._v(" "),o("p",[e._v("For more updates on the project, join our online community on "),o("a",{attrs:{href:"https://discordapp.com/invite/Sewv6av",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discord"),o("OutboundLink")],1),e._v(" and follow "),o("a",{attrs:{href:"https://twitter.com/frictionlessd8a",target:"_blank",rel:"noopener noreferrer"}},[e._v("@frictionlessd8a"),o("OutboundLink")],1),e._v(" on twitter!")]),e._v(" "),o("p",[e._v("Thank you and look forward to seeing you at our next event!")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.177713a1.js b/assets/js/app.fbe67fe3.js similarity index 56% rename from assets/js/app.177713a1.js rename to assets/js/app.fbe67fe3.js index 29c481d9d..45f59d191 100644 --- a/assets/js/app.177713a1.js +++ b/assets/js/app.fbe67fe3.js @@ -1,8 +1,8 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var a,i,l=e[0],c=e[1],s=e[2],g=0,u=[];g=0&&Math.floor(e)===e&&isFinite(t)}function m(t){return r(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function d(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===s?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function f(t,e){for(var o=Object.create(null),a=t.split(","),n=0;n-1)return t.splice(o,1)}}var v=Object.prototype.hasOwnProperty;function w(t,e){return v.call(t,e)}function k(t){var e=Object.create(null);return function(o){return e[o]||(e[o]=t(o))}}var P=/-(\w)/g,D=k((function(t){return t.replace(P,(function(t,e){return e?e.toUpperCase():""}))})),F=k((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),x=/\B([A-Z])/g,A=k((function(t){return t.replace(x,"-$1").toLowerCase()}));var C=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function o(o){var a=arguments.length;return a?a>1?t.apply(e,arguments):t.call(e,o):t.call(e)}return o._length=t.length,o};function T(t,e){e=e||0;for(var o=t.length-e,a=new Array(o);o--;)a[o]=t[o+e];return a}function E(t,e){for(var o in e)t[o]=e[o];return t}function _(t){for(var e={},o=0;o0,Y=K&&K.indexOf("edge/")>0,Q=(K&&K.indexOf("android"),K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===Z),X=(K&&/chrome\/\d+/.test(K),K&&/phantomjs/.test(K),K&&K.match(/firefox\/(\d+)/)),tt={}.watch,et=!1;if(V)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var at=function(){return void 0===G&&(G=!V&&!J&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),G},nt=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function rt(t){return"function"==typeof t&&/native code/.test(t.toString())}var it,lt="undefined"!=typeof Symbol&&rt(Symbol)&&"undefined"!=typeof Reflect&&rt(Reflect.ownKeys);it="undefined"!=typeof Set&&rt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=S,st=0,pt=function(){this.id=st++,this.subs=[]};pt.prototype.addSub=function(t){this.subs.push(t)},pt.prototype.removeSub=function(t){b(this.subs,t)},pt.prototype.depend=function(){pt.target&&pt.target.addDep(this)},pt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,o=t.length;e-1)if(r&&!w(n,"default"))i=!1;else if(""===i||i===A(t)){var c=Wt(String,n.type);(c<0||l0&&(pe((c=t(c,(o||"")+"_"+a))[0])&&pe(p)&&(g[s]=yt(p.text+c[0].text),c.shift()),g.push.apply(g,c)):l(c)?pe(p)?g[s]=yt(p.text+c):""!==c&&g.push(yt(c)):pe(c)&&pe(p)?g[s]=yt(p.text+c.text):(i(e._isVList)&&r(c.tag)&&n(c.key)&&r(o)&&(c.key="__vlist"+o+"_"+a+"__"),g.push(c)));return g}(t):void 0}function pe(t){return r(t)&&r(t.text)&&!1===t.isComment}function ge(t,e){if(t){for(var o=Object.create(null),a=lt?Reflect.ownKeys(t):Object.keys(t),n=0;n0,i=t?!!t.$stable:!r,l=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(i&&o&&o!==a&&l===o.$key&&!r&&!o.$hasNormal)return o;for(var c in n={},t)t[c]&&"$"!==c[0]&&(n[c]=he(e,c,t[c]))}else n={};for(var s in e)s in n||(n[s]=fe(e,s));return t&&Object.isExtensible(t)&&(t._normalized=n),W(n,"$stable",i),W(n,"$key",l),W(n,"$hasNormal",r),n}function he(t,e,o){var a=function(){var t=arguments.length?o.apply(null,arguments):o({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:se(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return o.proxy&&Object.defineProperty(t,e,{get:a,enumerable:!0,configurable:!0}),a}function fe(t,e){return function(){return t[e]}}function ye(t,e){var o,a,n,i,l;if(Array.isArray(t)||"string"==typeof t)for(o=new Array(t.length),a=0,n=t.length;adocument.createEvent("Event").timeStamp&&(lo=function(){return co.now()})}function so(){var t,e;for(io=lo(),no=!0,to.sort((function(t,e){return t.id-e.id})),ro=0;roro&&to[o].id>t.id;)o--;to.splice(o+1,0,t)}else to.push(t);ao||(ao=!0,ee(so))}}(this)},go.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ht(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},go.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},go.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},go.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||b(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var uo={enumerable:!0,configurable:!0,get:S,set:S};function mo(t,e,o){uo.get=function(){return this[e][o]},uo.set=function(t){this[e][o]=t},Object.defineProperty(t,o,uo)}function ho(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var o=t.$options.propsData||{},a=t._props={},n=t.$options._propKeys=[];t.$parent&&Dt(!1);var r=function(r){n.push(r);var i=Ut(r,e,o,t);At(a,r,i),r in t||mo(t,"_props",r)};for(var i in e)r(i);Dt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var o in e)t[o]="function"!=typeof e[o]?S:C(e[o],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;p(e=t._data="function"==typeof e?function(t,e){ut();try{return t.call(e,e)}catch(t){return Ht(t,e,"data()"),{}}finally{mt()}}(e,t):e||{})||(e={});var o=Object.keys(e),a=t.$options.props,n=(t.$options.methods,o.length);for(;n--;){var r=o[n];0,a&&w(a,r)||(i=void 0,36!==(i=(r+"").charCodeAt(0))&&95!==i&&mo(t,"_data",r))}var i;xt(e,!0)}(t):xt(t._data={},!0),e.computed&&function(t,e){var o=t._computedWatchers=Object.create(null),a=at();for(var n in e){var r=e[n],i="function"==typeof r?r:r.get;0,a||(o[n]=new go(t,i||S,S,fo)),n in t||yo(t,n,r)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var o in e){var a=e[o];if(Array.isArray(a))for(var n=0;n-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!g(t)&&t.test(e)}function Co(t,e){var o=t.cache,a=t.keys,n=t._vnode;for(var r in o){var i=o[r];if(i){var l=xo(i.componentOptions);l&&!e(l)&&To(o,r,a,n)}}}function To(t,e,o,a){var n=t[e];!n||a&&n.tag===a.tag||n.componentInstance.$destroy(),t[e]=null,b(o,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=ko++,e._isVue=!0,t&&t._isComponent?function(t,e){var o=t.$options=Object.create(t.constructor.options),a=e._parentVnode;o.parent=e.parent,o._parentVnode=a;var n=a.componentOptions;o.propsData=n.propsData,o._parentListeners=n.listeners,o._renderChildren=n.children,o._componentTag=n.tag,e.render&&(o.render=e.render,o.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Lt(Po(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,o=e.parent;if(o&&!e.abstract){for(;o.$options.abstract&&o.$parent;)o=o.$parent;o.$children.push(t)}t.$parent=o,t.$root=o?o.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ke(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,o=t.$vnode=e._parentVnode,n=o&&o.context;t.$slots=ue(e._renderChildren,n),t.$scopedSlots=a,t._c=function(e,o,a,n){return $e(t,e,o,a,n,!1)},t.$createElement=function(e,o,a,n){return $e(t,e,o,a,n,!0)};var r=o&&o.data;At(t,"$attrs",r&&r.attrs||a,null,!0),At(t,"$listeners",e._parentListeners||a,null,!0)}(e),Xe(e,"beforeCreate"),function(t){var e=ge(t.$options.inject,t);e&&(Dt(!1),Object.keys(e).forEach((function(o){At(t,o,e[o])})),Dt(!0))}(e),ho(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),Xe(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Do),function(t){var e={get:function(){return this._data}},o={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",o),t.prototype.$set=Ct,t.prototype.$delete=Tt,t.prototype.$watch=function(t,e,o){if(p(e))return wo(this,t,e,o);(o=o||{}).user=!0;var a=new go(this,t,e,o);if(o.immediate)try{e.call(this,a.value)}catch(t){Ht(t,this,'callback for immediate watcher "'+a.expression+'"')}return function(){a.teardown()}}}(Do),function(t){var e=/^hook:/;t.prototype.$on=function(t,o){var a=this;if(Array.isArray(t))for(var n=0,r=t.length;n1?T(o):o;for(var a=T(arguments,1),n='event handler for "'+t+'"',r=0,i=o.length;rparseInt(this.max)&&To(i,l[0],l,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return $}};Object.defineProperty(t,"config",e),t.util={warn:ct,extend:E,mergeOptions:Lt,defineReactive:At},t.set=Ct,t.delete=Tt,t.nextTick=ee,t.observable=function(t){return xt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,E(t.options.components,_o),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var o=T(arguments,1);return o.unshift(this),"function"==typeof t.install?t.install.apply(t,o):"function"==typeof t&&t.apply(null,o),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Lt(this.options,t),this}}(t),Fo(t),function(t){I.forEach((function(e){t[e]=function(t,o){return o?("component"===e&&p(o)&&(o.name=o.name||t,o=this.options._base.extend(o)),"directive"===e&&"function"==typeof o&&(o={bind:o,update:o}),this.options[e+"s"][t]=o,o):this.options[e+"s"][t]}}))}(t)}(Do),Object.defineProperty(Do.prototype,"$isServer",{get:at}),Object.defineProperty(Do.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Do,"FunctionalRenderContext",{value:je}),Do.version="2.6.12";var So=f("style,class"),jo=f("input,textarea,option,select,progress"),Mo=f("contenteditable,draggable,spellcheck"),Oo=f("events,caret,typing,plaintext-only"),Ro=f("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Lo="http://www.w3.org/1999/xlink",Io=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Uo=function(t){return Io(t)?t.slice(6,t.length):""},$o=function(t){return null==t||!1===t};function No(t){for(var e=t.data,o=t,a=t;r(a.componentInstance);)(a=a.componentInstance._vnode)&&a.data&&(e=Wo(a.data,e));for(;r(o=o.parent);)o&&o.data&&(e=Wo(e,o.data));return function(t,e){if(r(t)||r(e))return Ho(t,Go(e));return""}(e.staticClass,e.class)}function Wo(t,e){return{staticClass:Ho(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Ho(t,e){return t?e?t+" "+e:t:e||""}function Go(t){return Array.isArray(t)?function(t){for(var e,o="",a=0,n=t.length;a-1?ua(t,e,o):Ro(e)?$o(o)?t.removeAttribute(e):(o="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,o)):Mo(e)?t.setAttribute(e,function(t,e){return $o(e)||"false"===e?"false":"contenteditable"===t&&Oo(e)?e:"true"}(e,o)):Io(e)?$o(o)?t.removeAttributeNS(Lo,Uo(e)):t.setAttributeNS(Lo,e,o):ua(t,e,o)}function ua(t,e,o){if($o(o))t.removeAttribute(e);else{if(z&&!q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==o&&!t.__ieph){var a=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",a)};t.addEventListener("input",a),t.__ieph=!0}t.setAttribute(e,o)}}var ma={create:pa,update:pa};function da(t,e){var o=e.elm,a=e.data,i=t.data;if(!(n(a.staticClass)&&n(a.class)&&(n(i)||n(i.staticClass)&&n(i.class)))){var l=No(e),c=o._transitionClasses;r(c)&&(l=Ho(l,Go(c))),l!==o._prevClass&&(o.setAttribute("class",l),o._prevClass=l)}}var ha,fa={create:da,update:da};function ya(t,e,o){var a=ha;return function n(){var r=e.apply(null,arguments);null!==r&&wa(t,n,o,a)}}var ba=Zt&&!(X&&Number(X[1])<=53);function va(t,e,o,a){if(ba){var n=io,r=e;e=r._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=n||t.timeStamp<=0||t.target.ownerDocument!==document)return r.apply(this,arguments)}}ha.addEventListener(t,e,et?{capture:o,passive:a}:o)}function wa(t,e,o,a){(a||ha).removeEventListener(t,e._wrapper||e,o)}function ka(t,e){if(!n(t.data.on)||!n(e.data.on)){var o=e.data.on||{},a=t.data.on||{};ha=e.elm,function(t){if(r(t.__r)){var e=z?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}r(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(o),ie(o,a,va,wa,ya,e.context),ha=void 0}}var Pa,Da={create:ka,update:ka};function Fa(t,e){if(!n(t.data.domProps)||!n(e.data.domProps)){var o,a,i=e.elm,l=t.data.domProps||{},c=e.data.domProps||{};for(o in r(c.__ob__)&&(c=e.data.domProps=E({},c)),l)o in c||(i[o]="");for(o in c){if(a=c[o],"textContent"===o||"innerHTML"===o){if(e.children&&(e.children.length=0),a===l[o])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===o&&"PROGRESS"!==i.tagName){i._value=a;var s=n(a)?"":String(a);xa(i,s)&&(i.value=s)}else if("innerHTML"===o&&Jo(i.tagName)&&n(i.innerHTML)){(Pa=Pa||document.createElement("div")).innerHTML=""+a+"";for(var p=Pa.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;p.firstChild;)i.appendChild(p.firstChild)}else if(a!==l[o])try{i[o]=a}catch(t){}}}}function xa(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var o=!0;try{o=document.activeElement!==t}catch(t){}return o&&t.value!==e}(t,e)||function(t,e){var o=t.value,a=t._vModifiers;if(r(a)){if(a.number)return h(o)!==h(e);if(a.trim)return o.trim()!==e.trim()}return o!==e}(t,e))}var Aa={create:Fa,update:Fa},Ca=k((function(t){var e={},o=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var a=t.split(o);a.length>1&&(e[a[0].trim()]=a[1].trim())}})),e}));function Ta(t){var e=Ea(t.style);return t.staticStyle?E(t.staticStyle,e):e}function Ea(t){return Array.isArray(t)?_(t):"string"==typeof t?Ca(t):t}var _a,Sa=/^--/,ja=/\s*!important$/,Ma=function(t,e,o){if(Sa.test(e))t.style.setProperty(e,o);else if(ja.test(o))t.style.setProperty(A(e),o.replace(ja,""),"important");else{var a=Ra(e);if(Array.isArray(o))for(var n=0,r=o.length;n-1?e.split(Ua).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var o=" "+(t.getAttribute("class")||"")+" ";o.indexOf(" "+e+" ")<0&&t.setAttribute("class",(o+e).trim())}}function Na(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Ua).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var o=" "+(t.getAttribute("class")||"")+" ",a=" "+e+" ";o.indexOf(a)>=0;)o=o.replace(a," ");(o=o.trim())?t.setAttribute("class",o):t.removeAttribute("class")}}function Wa(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&E(e,Ha(t.name||"v")),E(e,t),e}return"string"==typeof t?Ha(t):void 0}}var Ha=k((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Ga=V&&!q,Ba="transition",Va="transitionend",Ja="animation",Za="animationend";Ga&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ba="WebkitTransition",Va="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ja="WebkitAnimation",Za="webkitAnimationEnd"));var Ka=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function za(t){Ka((function(){Ka(t)}))}function qa(t,e){var o=t._transitionClasses||(t._transitionClasses=[]);o.indexOf(e)<0&&(o.push(e),$a(t,e))}function Ya(t,e){t._transitionClasses&&b(t._transitionClasses,e),Na(t,e)}function Qa(t,e,o){var a=tn(t,e),n=a.type,r=a.timeout,i=a.propCount;if(!n)return o();var l="transition"===n?Va:Za,c=0,s=function(){t.removeEventListener(l,p),o()},p=function(e){e.target===t&&++c>=i&&s()};setTimeout((function(){c0&&(o="transition",p=i,g=r.length):"animation"===e?s>0&&(o="animation",p=s,g=c.length):g=(o=(p=Math.max(i,s))>0?i>s?"transition":"animation":null)?"transition"===o?r.length:c.length:0,{type:o,timeout:p,propCount:g,hasTransform:"transition"===o&&Xa.test(a[Ba+"Property"])}}function en(t,e){for(;t.length1}function cn(t,e){!0!==e.data.show&&an(e)}var sn=function(t){var e,o,a={},c=t.modules,s=t.nodeOps;for(e=0;ed?v(t,n(o[y+1])?null:o[y+1].elm,o,m,y,a):m>y&&k(e,u,d)}(u,f,y,o,p):r(y)?(r(t.text)&&s.setTextContent(u,""),v(u,null,y,0,y.length-1,o)):r(f)?k(f,0,f.length-1):r(t.text)&&s.setTextContent(u,""):t.text!==e.text&&s.setTextContent(u,e.text),r(d)&&r(m=d.hook)&&r(m=m.postpatch)&&m(t,e)}}}function x(t,e,o){if(i(o)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var a=0;a-1,i.selected!==r&&(i.selected=r);else if(O(dn(i),a))return void(t.selectedIndex!==l&&(t.selectedIndex=l));n||(t.selectedIndex=-1)}}function mn(t,e){return e.every((function(e){return!O(e,t)}))}function dn(t){return"_value"in t?t._value:t.value}function hn(t){t.target.composing=!0}function fn(t){t.target.composing&&(t.target.composing=!1,yn(t.target,"input"))}function yn(t,e){var o=document.createEvent("HTMLEvents");o.initEvent(e,!0,!0),t.dispatchEvent(o)}function bn(t){return!t.componentInstance||t.data&&t.data.transition?t:bn(t.componentInstance._vnode)}var vn={model:pn,show:{bind:function(t,e,o){var a=e.value,n=(o=bn(o)).data&&o.data.transition,r=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;a&&n?(o.data.show=!0,an(o,(function(){t.style.display=r}))):t.style.display=a?r:"none"},update:function(t,e,o){var a=e.value;!a!=!e.oldValue&&((o=bn(o)).data&&o.data.transition?(o.data.show=!0,a?an(o,(function(){t.style.display=t.__vOriginalDisplay})):nn(o,(function(){t.style.display="none"}))):t.style.display=a?t.__vOriginalDisplay:"none")},unbind:function(t,e,o,a,n){n||(t.style.display=t.__vOriginalDisplay)}}},wn={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function kn(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?kn(Be(e.children)):t}function Pn(t){var e={},o=t.$options;for(var a in o.propsData)e[a]=t[a];var n=o._parentListeners;for(var r in n)e[D(r)]=n[r];return e}function Dn(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Fn=function(t){return t.tag||Ge(t)},xn=function(t){return"show"===t.name},An={name:"transition",props:wn,abstract:!0,render:function(t){var e=this,o=this.$slots.default;if(o&&(o=o.filter(Fn)).length){0;var a=this.mode;0;var n=o[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return n;var r=kn(n);if(!r)return n;if(this._leaving)return Dn(t,n);var i="__transition-"+this._uid+"-";r.key=null==r.key?r.isComment?i+"comment":i+r.tag:l(r.key)?0===String(r.key).indexOf(i)?r.key:i+r.key:r.key;var c=(r.data||(r.data={})).transition=Pn(this),s=this._vnode,p=kn(s);if(r.data.directives&&r.data.directives.some(xn)&&(r.data.show=!0),p&&p.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(r,p)&&!Ge(p)&&(!p.componentInstance||!p.componentInstance._vnode.isComment)){var g=p.data.transition=E({},c);if("out-in"===a)return this._leaving=!0,le(g,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Dn(t,n);if("in-out"===a){if(Ge(r))return s;var u,m=function(){u()};le(c,"afterEnter",m),le(c,"enterCancelled",m),le(g,"delayLeave",(function(t){u=t}))}}return n}}},Cn=E({tag:String,moveClass:String},wn);function Tn(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function En(t){t.data.newPos=t.elm.getBoundingClientRect()}function _n(t){var e=t.data.pos,o=t.data.newPos,a=e.left-o.left,n=e.top-o.top;if(a||n){t.data.moved=!0;var r=t.elm.style;r.transform=r.WebkitTransform="translate("+a+"px,"+n+"px)",r.transitionDuration="0s"}}delete Cn.mode;var Sn={Transition:An,TransitionGroup:{props:Cn,beforeMount:function(){var t=this,e=this._update;this._update=function(o,a){var n=qe(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,n(),e.call(t,o,a)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",o=Object.create(null),a=this.prevChildren=this.children,n=this.$slots.default||[],r=this.children=[],i=Pn(this),l=0;l-1?Ko[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Ko[t]=/HTMLUnknownElement/.test(e.toString())},E(Do.options.directives,vn),E(Do.options.components,Sn),Do.prototype.__patch__=V?sn:S,Do.prototype.$mount=function(t,e){return function(t,e,o){var a;return t.$el=e,t.$options.render||(t.$options.render=ft),Xe(t,"beforeMount"),a=function(){t._update(t._render(),o)},new go(t,a,S,{before:function(){t._isMounted&&!t._isDestroyed&&Xe(t,"beforeUpdate")}},!0),o=!1,null==t.$vnode&&(t._isMounted=!0,Xe(t,"mounted")),t}(this,t=t&&V?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},V&&setTimeout((function(){$.devtools&&nt&&nt.emit("init",Do)}),0),e.a=Do},function(t,e,o){var a=o(3),n=o(26).f,r=o(14),i=o(16),l=o(82),c=o(116),s=o(79);t.exports=function(t,e){var o,p,g,u,m,d=t.target,h=t.global,f=t.stat;if(o=h?a:f?a[d]||l(d,{}):(a[d]||{}).prototype)for(p in e){if(u=e[p],g=t.noTargetGet?(m=n(o,p))&&m.value:o[p],!s(h?p:d+(f?".":"#")+p,t.forced)&&void 0!==g){if(typeof u==typeof g)continue;c(u,g)}(t.sham||g&&g.sham)&&r(u,"sham",!0),i(o,p,u,t)}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var o=function(t){return t&&t.Math==Math&&t};t.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof global&&global)||function(){return this}()||Function("return this")()},function(t,e,o){var a=o(3),n=o(53),r=o(9),i=o(54),l=o(84),c=o(112),s=n("wks"),p=a.Symbol,g=c?p:p&&p.withoutSetter||i;t.exports=function(t){return r(s,t)&&(l||"string"==typeof s[t])||(l&&r(p,t)?s[t]=p[t]:s[t]=g("Symbol."+t)),s[t]}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,o){var a=o(5);t.exports=function(t){if(!a(t))throw TypeError(String(t)+" is not an object");return t}},function(t,e,o){var a=o(2);t.exports=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,e,o){var a=o(7),n=o(110),r=o(6),i=o(39),l=Object.defineProperty;e.f=a?l:function(t,e,o){if(r(t),e=i(e,!0),r(o),n)try{return l(t,e,o)}catch(t){}if("get"in o||"set"in o)throw TypeError("Accessors not supported");return"value"in o&&(t[e]=o.value),t}},function(t,e,o){var a=o(10),n={}.hasOwnProperty;t.exports=function(t,e){return n.call(a(t),e)}},function(t,e,o){var a=o(24);t.exports=function(t){return Object(a(t))}},function(t,e,o){var a=o(92),n=o(16),r=o(207);a||n(Object.prototype,"toString",r,{unsafe:!0})},function(t,e,o){"use strict";function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}o.d(e,"a",(function(){return a}))},function(t,e,o){"use strict";var a=o(131).charAt,n=o(35),r=o(115),i=n.set,l=n.getterFor("String Iterator");r(String,"String",(function(t){i(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=l(this),o=e.string,n=e.index;return n>=o.length?{value:void 0,done:!0}:(t=a(o,n),e.index+=t.length,{value:t,done:!1})}))},function(t,e,o){var a=o(7),n=o(8),r=o(40);t.exports=a?function(t,e,o){return n.f(t,e,r(1,o))}:function(t,e,o){return t[e]=o,t}},function(t,e,o){var a=o(56),n=Math.min;t.exports=function(t){return t>0?n(a(t),9007199254740991):0}},function(t,e,o){var a=o(3),n=o(14),r=o(9),i=o(82),l=o(88),c=o(35),s=c.get,p=c.enforce,g=String(String).split("String");(t.exports=function(t,e,o,l){var c,s=!!l&&!!l.unsafe,u=!!l&&!!l.enumerable,m=!!l&&!!l.noTargetGet;"function"==typeof o&&("string"!=typeof e||r(o,"name")||n(o,"name",e),(c=p(o)).source||(c.source=g.join("string"==typeof e?e:""))),t!==a?(s?!m&&t[e]&&(u=!0):delete t[e],u?t[e]=o:n(t,e,o)):u?t[e]=o:i(e,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&s(this).source||l(this)}))},function(t,e,o){var a=o(3),n=o(132),r=o(109),i=o(14),l=o(4),c=l("iterator"),s=l("toStringTag"),p=r.values;for(var g in n){var u=a[g],m=u&&u.prototype;if(m){if(m[c]!==p)try{i(m,c,p)}catch(t){m[c]=p}if(m[s]||i(m,s,g),n[g])for(var d in r)if(m[d]!==r[d])try{i(m,d,r[d])}catch(t){m[d]=r[d]}}}},function(t,e){var o=Array.isArray;t.exports=o},function(t,e,o){var a=o(38),n=o(24);t.exports=function(t){return a(n(t))}},function(t,e,o){var a=o(143),n="object"==typeof self&&self&&self.Object===Object&&self,r=a||n||Function("return this")();t.exports=r},function(t,e,o){"use strict";o.d(e,"a",(function(){return n}));o(162);function a(t,e){for(var o=0;o1?arguments[1]:void 0)}})},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,o){var a,n=o(6),r=o(191),i=o(87),l=o(42),c=o(114),s=o(83),p=o(57),g=p("IE_PROTO"),u=function(){},m=function(t){return" + diff --git a/blog/2016/04/30/publish-geo/index.html b/blog/2016/04/30/publish-geo/index.html index 1db7ea69d..f4df86d8c 100644 --- a/blog/2016/04/30/publish-geo/index.html +++ b/blog/2016/04/30/publish-geo/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/07/21/creating-tabular-data-packages-in-python/index.html b/blog/2016/07/21/creating-tabular-data-packages-in-python/index.html index 5ea229637..ec130e8b9 100644 --- a/blog/2016/07/21/creating-tabular-data-packages-in-python/index.html +++ b/blog/2016/07/21/creating-tabular-data-packages-in-python/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/07/21/publish-any/index.html b/blog/2016/07/21/publish-any/index.html index a2361c597..b58306708 100644 --- a/blog/2016/07/21/publish-any/index.html +++ b/blog/2016/07/21/publish-any/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/07/21/publish-tabular/index.html b/blog/2016/07/21/publish-tabular/index.html index 8503c23e6..99588b843 100644 --- a/blog/2016/07/21/publish-tabular/index.html +++ b/blog/2016/07/21/publish-tabular/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/08/29/publish-online/index.html b/blog/2016/08/29/publish-online/index.html index dedbe5360..8c0892dba 100644 --- a/blog/2016/08/29/publish-online/index.html +++ b/blog/2016/08/29/publish-online/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2016/08/29/using-data-packages-in-python/index.html b/blog/2016/08/29/using-data-packages-in-python/index.html index 7c5709489..b245c9baf 100644 --- a/blog/2016/08/29/using-data-packages-in-python/index.html +++ b/blog/2016/08/29/using-data-packages-in-python/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/08/30/publish/index.html b/blog/2016/08/30/publish/index.html index b70be5d84..5f5fdb2a2 100644 --- a/blog/2016/08/30/publish/index.html +++ b/blog/2016/08/30/publish/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2016/11/15/dataship/index.html b/blog/2016/11/15/dataship/index.html index 4c51f23d0..f532aca4d 100644 --- a/blog/2016/11/15/dataship/index.html +++ b/blog/2016/11/15/dataship/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2016/11/15/open-power-system-data/index.html b/blog/2016/11/15/open-power-system-data/index.html index 63e3a6b48..34b335c90 100644 --- a/blog/2016/11/15/open-power-system-data/index.html +++ b/blog/2016/11/15/open-power-system-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2016/11/15/tesera/index.html b/blog/2016/11/15/tesera/index.html index ae97e164a..a290147a0 100644 --- a/blog/2016/11/15/tesera/index.html +++ b/blog/2016/11/15/tesera/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/03/28/john-snow-labs/index.html b/blog/2017/03/28/john-snow-labs/index.html index a31c65d70..247fc930c 100644 --- a/blog/2017/03/28/john-snow-labs/index.html +++ b/blog/2017/03/28/john-snow-labs/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/03/31/data-package-views-proposal/index.html b/blog/2017/03/31/data-package-views-proposal/index.html index f90f2349c..e4b47e4c6 100644 --- a/blog/2017/03/31/data-package-views-proposal/index.html +++ b/blog/2017/03/31/data-package-views-proposal/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/04/11/dataworld/index.html b/blog/2017/04/11/dataworld/index.html index 7e43ff768..b24b5bb92 100644 --- a/blog/2017/04/11/dataworld/index.html +++ b/blog/2017/04/11/dataworld/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/05/23/cmso/index.html b/blog/2017/05/23/cmso/index.html index d4ada1fcf..be8cc6436 100644 --- a/blog/2017/05/23/cmso/index.html +++ b/blog/2017/05/23/cmso/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/05/24/the-data-retriever/index.html b/blog/2017/05/24/the-data-retriever/index.html index 3517e5c78..229f99e61 100644 --- a/blog/2017/05/24/the-data-retriever/index.html +++ b/blog/2017/05/24/the-data-retriever/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/06/26/pacific-northwest-national-laboratory-active-data-biology/index.html b/blog/2017/06/26/pacific-northwest-national-laboratory-active-data-biology/index.html index 6da5c41e2..1a6635d09 100644 --- a/blog/2017/06/26/pacific-northwest-national-laboratory-active-data-biology/index.html +++ b/blog/2017/06/26/pacific-northwest-national-laboratory-active-data-biology/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/08/09/collections-as-data/index.html b/blog/2017/08/09/collections-as-data/index.html index bd001184e..96571a7f6 100644 --- a/blog/2017/08/09/collections-as-data/index.html +++ b/blog/2017/08/09/collections-as-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/08/09/tutorial-template/index.html b/blog/2017/08/09/tutorial-template/index.html index 51ff15d8c..df9e1f327 100644 --- a/blog/2017/08/09/tutorial-template/index.html +++ b/blog/2017/08/09/tutorial-template/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2017/08/15/causa-natura-pescando-datos/index.html b/blog/2017/08/15/causa-natura-pescando-datos/index.html index cb11562f8..40a99bec7 100644 --- a/blog/2017/08/15/causa-natura-pescando-datos/index.html +++ b/blog/2017/08/15/causa-natura-pescando-datos/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/08/15/center-for-data-science-and-public-policy-workforce-data-initiative/index.html b/blog/2017/08/15/center-for-data-science-and-public-policy-workforce-data-initiative/index.html index 3ba5b95ed..fd95bcc02 100644 --- a/blog/2017/08/15/center-for-data-science-and-public-policy-workforce-data-initiative/index.html +++ b/blog/2017/08/15/center-for-data-science-and-public-policy-workforce-data-initiative/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/08/15/university-of-cambridge/index.html b/blog/2017/08/15/university-of-cambridge/index.html index 32676555b..3194b70b4 100644 --- a/blog/2017/08/15/university-of-cambridge/index.html +++ b/blog/2017/08/15/university-of-cambridge/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/09/28/zegami/index.html b/blog/2017/09/28/zegami/index.html index cc1673fed..ea3e2b707 100644 --- a/blog/2017/09/28/zegami/index.html +++ b/blog/2017/09/28/zegami/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/10/24/elife/index.html b/blog/2017/10/24/elife/index.html index f8a613184..1d008b52e 100644 --- a/blog/2017/10/24/elife/index.html +++ b/blog/2017/10/24/elife/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/10/24/georges-labreche/index.html b/blog/2017/10/24/georges-labreche/index.html index 27d37ced7..3a33834a1 100644 --- a/blog/2017/10/24/georges-labreche/index.html +++ b/blog/2017/10/24/georges-labreche/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2017/10/26/matt-thompson/index.html b/blog/2017/10/26/matt-thompson/index.html index 0217b1622..5376c0f5f 100644 --- a/blog/2017/10/26/matt-thompson/index.html +++ b/blog/2017/10/26/matt-thompson/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2017/10/27/open-knowledge-greece/index.html b/blog/2017/10/27/open-knowledge-greece/index.html index 1257f4199..9c0459786 100644 --- a/blog/2017/10/27/open-knowledge-greece/index.html +++ b/blog/2017/10/27/open-knowledge-greece/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2017/11/01/daniel-fireman/index.html b/blog/2017/11/01/daniel-fireman/index.html index a586fdcb9..2f1027c62 100644 --- a/blog/2017/11/01/daniel-fireman/index.html +++ b/blog/2017/11/01/daniel-fireman/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2017/12/04/openml/index.html b/blog/2017/12/04/openml/index.html index 5b26ffc08..2b42369b5 100644 --- a/blog/2017/12/04/openml/index.html +++ b/blog/2017/12/04/openml/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/12/12/ukds/index.html b/blog/2017/12/12/ukds/index.html index 1c071bf34..77dc21bb9 100644 --- a/blog/2017/12/12/ukds/index.html +++ b/blog/2017/12/12/ukds/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/12/15/university-of-pittsburgh/index.html b/blog/2017/12/15/university-of-pittsburgh/index.html index 2f25d8de4..2ffef022a 100644 --- a/blog/2017/12/15/university-of-pittsburgh/index.html +++ b/blog/2017/12/15/university-of-pittsburgh/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2017/12/19/dm4t/index.html b/blog/2017/12/19/dm4t/index.html index d19cdcaaa..fabf76f96 100644 --- a/blog/2017/12/19/dm4t/index.html +++ b/blog/2017/12/19/dm4t/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/02/14/creating-tabular-data-packages-in-r/index.html b/blog/2018/02/14/creating-tabular-data-packages-in-r/index.html index 9e68081a0..7dd530465 100644 --- a/blog/2018/02/14/creating-tabular-data-packages-in-r/index.html +++ b/blog/2018/02/14/creating-tabular-data-packages-in-r/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/02/14/using-data-packages-in-r/index.html b/blog/2018/02/14/using-data-packages-in-r/index.html index 5e6520084..d6418baed 100644 --- a/blog/2018/02/14/using-data-packages-in-r/index.html +++ b/blog/2018/02/14/using-data-packages-in-r/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/02/16/using-data-packages-in-go/index.html b/blog/2018/02/16/using-data-packages-in-go/index.html index 99a0cbd03..7c4ee932a 100644 --- a/blog/2018/02/16/using-data-packages-in-go/index.html +++ b/blog/2018/02/16/using-data-packages-in-go/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/03/07/well-packaged-datasets/index.html b/blog/2018/03/07/well-packaged-datasets/index.html index 829789edd..6c5524b6f 100644 --- a/blog/2018/03/07/well-packaged-datasets/index.html +++ b/blog/2018/03/07/well-packaged-datasets/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/03/12/automatically-validated-tabular-data/index.html b/blog/2018/03/12/automatically-validated-tabular-data/index.html index 148a295ff..c501fb8e3 100644 --- a/blog/2018/03/12/automatically-validated-tabular-data/index.html +++ b/blog/2018/03/12/automatically-validated-tabular-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/03/12/data-publication-workflow-example/index.html b/blog/2018/03/12/data-publication-workflow-example/index.html index 1ef24a22a..52d1b73f7 100644 --- a/blog/2018/03/12/data-publication-workflow-example/index.html +++ b/blog/2018/03/12/data-publication-workflow-example/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/03/27/applying-licenses/index.html b/blog/2018/03/27/applying-licenses/index.html index d42ea69ea..09fb694bc 100644 --- a/blog/2018/03/27/applying-licenses/index.html +++ b/blog/2018/03/27/applying-licenses/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/04/04/creating-tabular-data-packages-in-javascript/index.html b/blog/2018/04/04/creating-tabular-data-packages-in-javascript/index.html index cbf429b05..58e6f6be6 100644 --- a/blog/2018/04/04/creating-tabular-data-packages-in-javascript/index.html +++ b/blog/2018/04/04/creating-tabular-data-packages-in-javascript/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/04/05/joining-tabular-data-in-python/index.html b/blog/2018/04/05/joining-tabular-data-in-python/index.html index 8549f4888..2cbdf8ae4 100644 --- a/blog/2018/04/05/joining-tabular-data-in-python/index.html +++ b/blog/2018/04/05/joining-tabular-data-in-python/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/04/06/joining-data-in-python/index.html b/blog/2018/04/06/joining-data-in-python/index.html index de9637954..46e68c9b3 100644 --- a/blog/2018/04/06/joining-data-in-python/index.html +++ b/blog/2018/04/06/joining-data-in-python/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/04/28/using-data-packages-in-java/index.html b/blog/2018/04/28/using-data-packages-in-java/index.html index b2d1efe53..78e86d993 100644 --- a/blog/2018/04/28/using-data-packages-in-java/index.html +++ b/blog/2018/04/28/using-data-packages-in-java/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/05/07/using-data-packages-in-clojure/index.html b/blog/2018/05/07/using-data-packages-in-clojure/index.html index 2478edbc4..b24152ffe 100644 --- a/blog/2018/05/07/using-data-packages-in-clojure/index.html +++ b/blog/2018/05/07/using-data-packages-in-clojure/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2018/07/09/csv/index.html b/blog/2018/07/09/csv/index.html index 913a7cd06..da4353aec 100644 --- a/blog/2018/07/09/csv/index.html +++ b/blog/2018/07/09/csv/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/07/09/developer-guide/index.html b/blog/2018/07/09/developer-guide/index.html index 48d2520d8..bfbb1646a 100644 --- a/blog/2018/07/09/developer-guide/index.html +++ b/blog/2018/07/09/developer-guide/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/07/09/validating-data/index.html b/blog/2018/07/09/validating-data/index.html index 13fc55115..200e5f8a4 100644 --- a/blog/2018/07/09/validating-data/index.html +++ b/blog/2018/07/09/validating-data/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/07/16/oleg-lavrovsky/index.html b/blog/2018/07/16/oleg-lavrovsky/index.html index 49500e6c4..abc210134 100644 --- a/blog/2018/07/16/oleg-lavrovsky/index.html +++ b/blog/2018/07/16/oleg-lavrovsky/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2018/07/16/ori-hoch/index.html b/blog/2018/07/16/ori-hoch/index.html index 8977433b8..070a9abb5 100644 --- a/blog/2018/07/16/ori-hoch/index.html +++ b/blog/2018/07/16/ori-hoch/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2018/07/16/point-location-data/index.html b/blog/2018/07/16/point-location-data/index.html index 80b187203..7f8b2cf63 100644 --- a/blog/2018/07/16/point-location-data/index.html +++ b/blog/2018/07/16/point-location-data/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/2018/07/16/publish-data-as-data-packages/index.html b/blog/2018/07/16/publish-data-as-data-packages/index.html index 334eff27c..36a69fd59 100644 --- a/blog/2018/07/16/publish-data-as-data-packages/index.html +++ b/blog/2018/07/16/publish-data-as-data-packages/index.html @@ -30,8 +30,8 @@ - - + + - + diff --git a/blog/2018/07/16/validated-tabular-data/index.html b/blog/2018/07/16/validated-tabular-data/index.html index f33db9014..8b0a09f25 100644 --- a/blog/2018/07/16/validated-tabular-data/index.html +++ b/blog/2018/07/16/validated-tabular-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/07/16/visible-findable-shareable-data/index.html b/blog/2018/07/16/visible-findable-shareable-data/index.html index e5e2a8bd8..914973c0d 100644 --- a/blog/2018/07/16/visible-findable-shareable-data/index.html +++ b/blog/2018/07/16/visible-findable-shareable-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2018/07/20/nimblelearn/index.html b/blog/2018/07/20/nimblelearn/index.html index 3ba50e9df..4242d2ed3 100644 --- a/blog/2018/07/20/nimblelearn/index.html +++ b/blog/2018/07/20/nimblelearn/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2019/03/01/datacurator/index.html b/blog/2019/03/01/datacurator/index.html index c281fb0d0..e36df42f8 100644 --- a/blog/2019/03/01/datacurator/index.html +++ b/blog/2019/03/01/datacurator/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2019/05/20/used-and-useful-data/index.html b/blog/2019/05/20/used-and-useful-data/index.html index 626cce0e9..10a72772b 100644 --- a/blog/2019/05/20/used-and-useful-data/index.html +++ b/blog/2019/05/20/used-and-useful-data/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2019/07/02/stephan-max/index.html b/blog/2019/07/02/stephan-max/index.html index 5b6cf98e8..7913b03f6 100644 --- a/blog/2019/07/02/stephan-max/index.html +++ b/blog/2019/07/02/stephan-max/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2019/07/03/nes/index.html b/blog/2019/07/03/nes/index.html index 139397665..452be0ddc 100644 --- a/blog/2019/07/03/nes/index.html +++ b/blog/2019/07/03/nes/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2019/07/09/open-referral/index.html b/blog/2019/07/09/open-referral/index.html index 3faf5c8f3..bde6e8f11 100644 --- a/blog/2019/07/09/open-referral/index.html +++ b/blog/2019/07/09/open-referral/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2019/07/22/nimblelearn-dpc/index.html b/blog/2019/07/22/nimblelearn-dpc/index.html index d09fbf721..04b6eddbd 100644 --- a/blog/2019/07/22/nimblelearn-dpc/index.html +++ b/blog/2019/07/22/nimblelearn-dpc/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2019/08/29/welcome-frictionless-fellows/index.html b/blog/2019/08/29/welcome-frictionless-fellows/index.html index 1e77ca59b..deea2680b 100644 --- a/blog/2019/08/29/welcome-frictionless-fellows/index.html +++ b/blog/2019/08/29/welcome-frictionless-fellows/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2019/09/12/andre-heughebaert/index.html b/blog/2019/09/12/andre-heughebaert/index.html index ab5ab90d5..fa1373f61 100644 --- a/blog/2019/09/12/andre-heughebaert/index.html +++ b/blog/2019/09/12/andre-heughebaert/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2019/10/21/fellows-reflect-on-open-access-week/index.html b/blog/2019/10/21/fellows-reflect-on-open-access-week/index.html index 1b199c171..359ac3f97 100644 --- a/blog/2019/10/21/fellows-reflect-on-open-access-week/index.html +++ b/blog/2019/10/21/fellows-reflect-on-open-access-week/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/01/22/frictionless-darwincore/index.html b/blog/2020/01/22/frictionless-darwincore/index.html index 989bce6d8..2a7db379a 100644 --- a/blog/2020/01/22/frictionless-darwincore/index.html +++ b/blog/2020/01/22/frictionless-darwincore/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/01/22/open-referral-tool/index.html b/blog/2020/01/22/open-referral-tool/index.html index 88969d630..69185689d 100644 --- a/blog/2020/01/22/open-referral-tool/index.html +++ b/blog/2020/01/22/open-referral-tool/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/01/23/nes-tool/index.html b/blog/2020/01/23/nes-tool/index.html index 290ab3bae..c98804a17 100644 --- a/blog/2020/01/23/nes-tool/index.html +++ b/blog/2020/01/23/nes-tool/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/index.html b/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/index.html index e9b192c59..d4b09abb8 100644 --- a/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/index.html +++ b/blog/2020/02/10/frictionless-data-pipelines-for-open-ocean/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/03/18/frictionless-data-pilot-study/index.html b/blog/2020/03/18/frictionless-data-pilot-study/index.html index 04de63c6a..7d3fa1833 100644 --- a/blog/2020/03/18/frictionless-data-pilot-study/index.html +++ b/blog/2020/03/18/frictionless-data-pilot-study/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/03/20/joining-the-frictionless-data-team/index.html b/blog/2020/03/20/joining-the-frictionless-data-team/index.html index be997046b..77a45c789 100644 --- a/blog/2020/03/20/joining-the-frictionless-data-team/index.html +++ b/blog/2020/03/20/joining-the-frictionless-data-team/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/index.html b/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/index.html index 06c89cc48..d612cdf8b 100644 --- a/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/index.html +++ b/blog/2020/04/16/annoucing-frictionless-data-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/04/23/table-schema-catalog/index.html b/blog/2020/04/23/table-schema-catalog/index.html index b3914c4c6..72f6f0c79 100644 --- a/blog/2020/04/23/table-schema-catalog/index.html +++ b/blog/2020/04/23/table-schema-catalog/index.html @@ -33,8 +33,8 @@ - - + +
- + diff --git a/blog/2020/04/28/recap-post-frictionless-data-hangout-april-2020/index.html b/blog/2020/04/28/recap-post-frictionless-data-hangout-april-2020/index.html index 4a8659985..097020dbd 100644 --- a/blog/2020/04/28/recap-post-frictionless-data-hangout-april-2020/index.html +++ b/blog/2020/04/28/recap-post-frictionless-data-hangout-april-2020/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/04/30/frictionless-data-workshop/index.html b/blog/2020/04/30/frictionless-data-workshop/index.html index aecae9dbe..ae45fecb7 100644 --- a/blog/2020/04/30/frictionless-data-workshop/index.html +++ b/blog/2020/04/30/frictionless-data-workshop/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/05/01/announcing-new-website/index.html b/blog/2020/05/01/announcing-new-website/index.html index eb13b2068..68c771c7f 100644 --- a/blog/2020/05/01/announcing-new-website/index.html +++ b/blog/2020/05/01/announcing-new-website/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/05/20/frictionless-data-may-hangout/index.html b/blog/2020/05/20/frictionless-data-may-hangout/index.html index 2549ec712..1294eddfd 100644 --- a/blog/2020/05/20/frictionless-data-may-hangout/index.html +++ b/blog/2020/05/20/frictionless-data-may-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/05/22/etalab-case-study-schemas-data-gouv-fr/index.html b/blog/2020/05/22/etalab-case-study-schemas-data-gouv-fr/index.html index 2fa3bf658..8f85633ef 100644 --- a/blog/2020/05/22/etalab-case-study-schemas-data-gouv-fr/index.html +++ b/blog/2020/05/22/etalab-case-study-schemas-data-gouv-fr/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/06/05/june-virtual-hangout/index.html b/blog/2020/06/05/june-virtual-hangout/index.html index e604b6ec3..9babf3433 100644 --- a/blog/2020/06/05/june-virtual-hangout/index.html +++ b/blog/2020/06/05/june-virtual-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/06/26/csvconf-frictionless-recap/index.html b/blog/2020/06/26/csvconf-frictionless-recap/index.html index 2ec09680d..04dba2704 100644 --- a/blog/2020/06/26/csvconf-frictionless-recap/index.html +++ b/blog/2020/06/26/csvconf-frictionless-recap/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/07/10/tool-fund-intermine/index.html b/blog/2020/07/10/tool-fund-intermine/index.html index 4e36fa9a4..10d3a6ee8 100644 --- a/blog/2020/07/10/tool-fund-intermine/index.html +++ b/blog/2020/07/10/tool-fund-intermine/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/07/16/tool-fund-polar-institute/index.html b/blog/2020/07/16/tool-fund-polar-institute/index.html index 6ce9e45bb..27bae2962 100644 --- a/blog/2020/07/16/tool-fund-polar-institute/index.html +++ b/blog/2020/07/16/tool-fund-polar-institute/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/07/21/data-matrices-pilot/index.html b/blog/2020/07/21/data-matrices-pilot/index.html index 3dfc87156..3343fcf71 100644 --- a/blog/2020/07/21/data-matrices-pilot/index.html +++ b/blog/2020/07/21/data-matrices-pilot/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/08/03/tool-fund-cambridge-neuro/index.html b/blog/2020/08/03/tool-fund-cambridge-neuro/index.html index e0c029baa..d73775969 100644 --- a/blog/2020/08/03/tool-fund-cambridge-neuro/index.html +++ b/blog/2020/08/03/tool-fund-cambridge-neuro/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/08/17/frictionless-wheat/index.html b/blog/2020/08/17/frictionless-wheat/index.html index 35beb98d3..f12a0f0f8 100644 --- a/blog/2020/08/17/frictionless-wheat/index.html +++ b/blog/2020/08/17/frictionless-wheat/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/08/27/august-virtual-hangout/index.html b/blog/2020/08/27/august-virtual-hangout/index.html index 0cf899a98..e237a6f78 100644 --- a/blog/2020/08/27/august-virtual-hangout/index.html +++ b/blog/2020/08/27/august-virtual-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/09/01/hello-fellows-cohort2/index.html b/blog/2020/09/01/hello-fellows-cohort2/index.html index bc5689b5c..1ff6a777c 100644 --- a/blog/2020/09/01/hello-fellows-cohort2/index.html +++ b/blog/2020/09/01/hello-fellows-cohort2/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/09/16/goodtables-bcodmo/index.html b/blog/2020/09/16/goodtables-bcodmo/index.html index dd3a994ae..8f83c8716 100644 --- a/blog/2020/09/16/goodtables-bcodmo/index.html +++ b/blog/2020/09/16/goodtables-bcodmo/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/09/17/tool-fund-metrics/index.html b/blog/2020/09/17/tool-fund-metrics/index.html index 5ef82d7a5..80be68a10 100644 --- a/blog/2020/09/17/tool-fund-metrics/index.html +++ b/blog/2020/09/17/tool-fund-metrics/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/10/08/frictionless-framework/index.html b/blog/2020/10/08/frictionless-framework/index.html index 8aa2f3637..dfe42186b 100644 --- a/blog/2020/10/08/frictionless-framework/index.html +++ b/blog/2020/10/08/frictionless-framework/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/10/19/fellows-reflect-on-open-access-week/index.html b/blog/2020/10/19/fellows-reflect-on-open-access-week/index.html index 7abf9777a..bfb77ccb4 100644 --- a/blog/2020/10/19/fellows-reflect-on-open-access-week/index.html +++ b/blog/2020/10/19/fellows-reflect-on-open-access-week/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/10/28/october-virtual-hangout/index.html b/blog/2020/10/28/october-virtual-hangout/index.html index e644ea841..a86ae5c25 100644 --- a/blog/2020/10/28/october-virtual-hangout/index.html +++ b/blog/2020/10/28/october-virtual-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/11/18/dryad-pilot/index.html b/blog/2020/11/18/dryad-pilot/index.html index 9430ca324..fbe62b32e 100644 --- a/blog/2020/11/18/dryad-pilot/index.html +++ b/blog/2020/11/18/dryad-pilot/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/11/19/november-virtual-hangout/index.html b/blog/2020/11/19/november-virtual-hangout/index.html index 527c54e59..18d89a4f5 100644 --- a/blog/2020/11/19/november-virtual-hangout/index.html +++ b/blog/2020/11/19/november-virtual-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2020/11/26/fellows-packaging/index.html b/blog/2020/11/26/fellows-packaging/index.html index 1f8ef50a6..b7ab0a5b5 100644 --- a/blog/2020/11/26/fellows-packaging/index.html +++ b/blog/2020/11/26/fellows-packaging/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2020/12/17/december-virtual-hangout/index.html b/blog/2020/12/17/december-virtual-hangout/index.html index f6a422739..eb472a7a7 100644 --- a/blog/2020/12/17/december-virtual-hangout/index.html +++ b/blog/2020/12/17/december-virtual-hangout/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2021/01/13/partnering-with-odi/index.html b/blog/2021/01/13/partnering-with-odi/index.html index b500643ed..9f879718e 100644 --- a/blog/2021/01/13/partnering-with-odi/index.html +++ b/blog/2021/01/13/partnering-with-odi/index.html @@ -35,8 +35,8 @@ - - + +
- + diff --git a/blog/2021/01/18/schema-collaboration/index.html b/blog/2021/01/18/schema-collaboration/index.html index a337e5a3e..0e2d47d05 100644 --- a/blog/2021/01/18/schema-collaboration/index.html +++ b/blog/2021/01/18/schema-collaboration/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/01/26/sara-petti/index.html b/blog/2021/01/26/sara-petti/index.html index 6cc0a508a..747a16a13 100644 --- a/blog/2021/01/26/sara-petti/index.html +++ b/blog/2021/01/26/sara-petti/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/01/30/fellows-validation/index.html b/blog/2021/01/30/fellows-validation/index.html index d4671b048..34ae8807a 100644 --- a/blog/2021/01/30/fellows-validation/index.html +++ b/blog/2021/01/30/fellows-validation/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/02/03/january-virtual-hangout/index.html b/blog/2021/02/03/january-virtual-hangout/index.html index 7b74fd359..33137e86f 100644 --- a/blog/2021/02/03/january-virtual-hangout/index.html +++ b/blog/2021/02/03/january-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/02/04/tableschema-to-template/index.html b/blog/2021/02/04/tableschema-to-template/index.html index 1d2101857..48193a128 100644 --- a/blog/2021/02/04/tableschema-to-template/index.html +++ b/blog/2021/02/04/tableschema-to-template/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/02/26/halfway-odi/index.html b/blog/2021/02/26/halfway-odi/index.html index 79a4a9e2d..67b257dda 100644 --- a/blog/2021/02/26/halfway-odi/index.html +++ b/blog/2021/02/26/halfway-odi/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/03/01/february-virtual-hangout/index.html b/blog/2021/03/01/february-virtual-hangout/index.html index 6e7db22f7..4e3b5b08d 100644 --- a/blog/2021/03/01/february-virtual-hangout/index.html +++ b/blog/2021/03/01/february-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/03/05/frictionless-data-for-wheat/index.html b/blog/2021/03/05/frictionless-data-for-wheat/index.html index 0aac3b047..ee64e63dd 100644 --- a/blog/2021/03/05/frictionless-data-for-wheat/index.html +++ b/blog/2021/03/05/frictionless-data-for-wheat/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/03/10/fellows-reproducing/index.html b/blog/2021/03/10/fellows-reproducing/index.html index 408e31af0..82bc7a46b 100644 --- a/blog/2021/03/10/fellows-reproducing/index.html +++ b/blog/2021/03/10/fellows-reproducing/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/03/29/february-virtual-hangout/index.html b/blog/2021/03/29/february-virtual-hangout/index.html index 9d77f8c9b..317316d5e 100644 --- a/blog/2021/03/29/february-virtual-hangout/index.html +++ b/blog/2021/03/29/february-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/04/13/data-package-for-intermine/index.html b/blog/2021/04/13/data-package-for-intermine/index.html index 819d65967..b9e63637f 100644 --- a/blog/2021/04/13/data-package-for-intermine/index.html +++ b/blog/2021/04/13/data-package-for-intermine/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/04/14/new-data-documentation-portal/index.html b/blog/2021/04/14/new-data-documentation-portal/index.html index 9485e09fe..5858c6944 100644 --- a/blog/2021/04/14/new-data-documentation-portal/index.html +++ b/blog/2021/04/14/new-data-documentation-portal/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/05/03/april-virtual-hangout/index.html b/blog/2021/05/03/april-virtual-hangout/index.html index 211c6c173..baf93b81b 100644 --- a/blog/2021/05/03/april-virtual-hangout/index.html +++ b/blog/2021/05/03/april-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/06/01/may-virtual-hangout/index.html b/blog/2021/06/01/may-virtual-hangout/index.html index e1a5bf4a6..e3a3ec7d6 100644 --- a/blog/2021/06/01/may-virtual-hangout/index.html +++ b/blog/2021/06/01/may-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/06/16/new-changes-to-the-website/index.html b/blog/2021/06/16/new-changes-to-the-website/index.html index 4f22a78f3..6a3877b27 100644 --- a/blog/2021/06/16/new-changes-to-the-website/index.html +++ b/blog/2021/06/16/new-changes-to-the-website/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/06/22/livemark/index.html b/blog/2021/06/22/livemark/index.html index ca29c3783..a2a9f77f0 100644 --- a/blog/2021/06/22/livemark/index.html +++ b/blog/2021/06/22/livemark/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/06/25/june-virtual-hangout/index.html b/blog/2021/06/25/june-virtual-hangout/index.html index b4dfa93fd..a70695aed 100644 --- a/blog/2021/06/25/june-virtual-hangout/index.html +++ b/blog/2021/06/25/june-virtual-hangout/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/06/28/frictionless-specs-european-commission/index.html b/blog/2021/06/28/frictionless-specs-european-commission/index.html index 8fbe34d5d..f1e8c2167 100644 --- a/blog/2021/06/28/frictionless-specs-european-commission/index.html +++ b/blog/2021/06/28/frictionless-specs-european-commission/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/07/02/farewell-fellows/index.html b/blog/2021/07/02/farewell-fellows/index.html index f845818f8..cb08f1678 100644 --- a/blog/2021/07/02/farewell-fellows/index.html +++ b/blog/2021/07/02/farewell-fellows/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/07/12/open-data-blend/index.html b/blog/2021/07/12/open-data-blend/index.html index 24fb72817..a395c6ab1 100644 --- a/blog/2021/07/12/open-data-blend/index.html +++ b/blog/2021/07/12/open-data-blend/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/07/21/frictionless-repository/index.html b/blog/2021/07/21/frictionless-repository/index.html index 09c35c265..c237c968d 100644 --- a/blog/2021/07/21/frictionless-repository/index.html +++ b/blog/2021/07/21/frictionless-repository/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/08/02/apply-fellows/index.html b/blog/2021/08/02/apply-fellows/index.html index 3ac07ea05..9ac8df1fc 100644 --- a/blog/2021/08/02/apply-fellows/index.html +++ b/blog/2021/08/02/apply-fellows/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/08/06/recap-community-calls/index.html b/blog/2021/08/06/recap-community-calls/index.html index c20d36435..c38e9aa47 100644 --- a/blog/2021/08/06/recap-community-calls/index.html +++ b/blog/2021/08/06/recap-community-calls/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/08/09/dryad-pilot/index.html b/blog/2021/08/09/dryad-pilot/index.html index 3d1bd3b74..ba03e3502 100644 --- a/blog/2021/08/09/dryad-pilot/index.html +++ b/blog/2021/08/09/dryad-pilot/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/08/16/august-12-call/index.html b/blog/2021/08/16/august-12-call/index.html index b430af45f..926a5062c 100644 --- a/blog/2021/08/16/august-12-call/index.html +++ b/blog/2021/08/16/august-12-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/08/31/august-26-community-call/index.html b/blog/2021/08/31/august-26-community-call/index.html index a33c176e7..7ee53094a 100644 --- a/blog/2021/08/31/august-26-community-call/index.html +++ b/blog/2021/08/31/august-26-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/09/30/hackathon-preview/index.html b/blog/2021/09/30/hackathon-preview/index.html index 70644d5b0..d2b6c596b 100644 --- a/blog/2021/09/30/hackathon-preview/index.html +++ b/blog/2021/09/30/hackathon-preview/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/10/06/september-community-call/index.html b/blog/2021/10/06/september-community-call/index.html index d8d4c1dcf..8755f05dc 100644 --- a/blog/2021/10/06/september-community-call/index.html +++ b/blog/2021/10/06/september-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/10/13/hackathon-wrap/index.html b/blog/2021/10/13/hackathon-wrap/index.html index 97fca7853..b2280027c 100644 --- a/blog/2021/10/13/hackathon-wrap/index.html +++ b/blog/2021/10/13/hackathon-wrap/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/11/03/october-community-call/index.html b/blog/2021/11/03/october-community-call/index.html index 49e6f7393..f7c242008 100644 --- a/blog/2021/11/03/october-community-call/index.html +++ b/blog/2021/11/03/october-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/11/23/november-community-call/index.html b/blog/2021/11/23/november-community-call/index.html index 20013d4e4..41536034d 100644 --- a/blog/2021/11/23/november-community-call/index.html +++ b/blog/2021/11/23/november-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/12/07/_3rd-cohort-fellows/index.html b/blog/2021/12/07/_3rd-cohort-fellows/index.html index cacc8aad2..0108482ac 100644 --- a/blog/2021/12/07/_3rd-cohort-fellows/index.html +++ b/blog/2021/12/07/_3rd-cohort-fellows/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2021/12/17/december-community-call/index.html b/blog/2021/12/17/december-community-call/index.html index e8b4adc85..d605c9f96 100644 --- a/blog/2021/12/17/december-community-call/index.html +++ b/blog/2021/12/17/december-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/01/12/frictionless-dp-for-nih-cfde-project/index.html b/blog/2022/01/12/frictionless-dp-for-nih-cfde-project/index.html index dfc9bfc40..c8f17a19a 100644 --- a/blog/2022/01/12/frictionless-dp-for-nih-cfde-project/index.html +++ b/blog/2022/01/12/frictionless-dp-for-nih-cfde-project/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/01/18/frictionless-planet/index.html b/blog/2022/01/18/frictionless-planet/index.html index 914af765b..5df72a634 100644 --- a/blog/2022/01/18/frictionless-planet/index.html +++ b/blog/2022/01/18/frictionless-planet/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/02/02/january-community-call/index.html b/blog/2022/02/02/january-community-call/index.html index 40f55bbec..0ed23be35 100644 --- a/blog/2022/02/02/january-community-call/index.html +++ b/blog/2022/02/02/january-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/02/07/libraries-hacked/index.html b/blog/2022/02/07/libraries-hacked/index.html index 11065940f..5acd2f2ce 100644 --- a/blog/2022/02/07/libraries-hacked/index.html +++ b/blog/2022/02/07/libraries-hacked/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/02/10/nasa-earth-mission-science/index.html b/blog/2022/02/10/nasa-earth-mission-science/index.html index e3d850d26..79c90815f 100644 --- a/blog/2022/02/10/nasa-earth-mission-science/index.html +++ b/blog/2022/02/10/nasa-earth-mission-science/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/03/03/community-call-february/index.html b/blog/2022/03/03/community-call-february/index.html index aeadba28a..d260be3ee 100644 --- a/blog/2022/03/03/community-call-february/index.html +++ b/blog/2022/03/03/community-call-february/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/03/05/fellows-datapackage/index.html b/blog/2022/03/05/fellows-datapackage/index.html index 43b9a71e3..e457ea175 100644 --- a/blog/2022/03/05/fellows-datapackage/index.html +++ b/blog/2022/03/05/fellows-datapackage/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/03/09/save-our-planet/index.html b/blog/2022/03/09/save-our-planet/index.html index 7c2869303..bdd5868e7 100644 --- a/blog/2022/03/09/save-our-planet/index.html +++ b/blog/2022/03/09/save-our-planet/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/04/13/march-community-call/index.html b/blog/2022/04/13/march-community-call/index.html index 4f50bd440..6708f3ab8 100644 --- a/blog/2022/04/13/march-community-call/index.html +++ b/blog/2022/04/13/march-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/05/05/april-community-call/index.html b/blog/2022/05/05/april-community-call/index.html index 8754295f2..1afdff1c1 100644 --- a/blog/2022/05/05/april-community-call/index.html +++ b/blog/2022/05/05/april-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/05/15/fellows-reproducing-datapackages/index.html b/blog/2022/05/15/fellows-reproducing-datapackages/index.html index 893ef324e..9e37eaffb 100644 --- a/blog/2022/05/15/fellows-reproducing-datapackages/index.html +++ b/blog/2022/05/15/fellows-reproducing-datapackages/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/05/24/tu-delft-training/index.html b/blog/2022/05/24/tu-delft-training/index.html index 311cedb35..17a40ba5e 100644 --- a/blog/2022/05/24/tu-delft-training/index.html +++ b/blog/2022/05/24/tu-delft-training/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/06/01/deploy-solutions/index.html b/blog/2022/06/01/deploy-solutions/index.html index 708497366..430d8566c 100644 --- a/blog/2022/06/01/deploy-solutions/index.html +++ b/blog/2022/06/01/deploy-solutions/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/07/04/june-community-call/index.html b/blog/2022/07/04/june-community-call/index.html index 49d84c691..7c333bc9f 100644 --- a/blog/2022/07/04/june-community-call/index.html +++ b/blog/2022/07/04/june-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/07/05/frictionless-planet-conversation/index.html b/blog/2022/07/05/frictionless-planet-conversation/index.html index 63738d3cf..dd0ebcfc3 100644 --- a/blog/2022/07/05/frictionless-planet-conversation/index.html +++ b/blog/2022/07/05/frictionless-planet-conversation/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/07/14/flatterer/index.html b/blog/2022/07/14/flatterer/index.html index 0872f8d6e..cfc88ebad 100644 --- a/blog/2022/07/14/flatterer/index.html +++ b/blog/2022/07/14/flatterer/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/07/20/lilly-message-to-community/index.html b/blog/2022/07/20/lilly-message-to-community/index.html index f8e700378..d2daa9f6b 100644 --- a/blog/2022/07/20/lilly-message-to-community/index.html +++ b/blog/2022/07/20/lilly-message-to-community/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/08/03/community-call-july-flatterer/index.html b/blog/2022/08/03/community-call-july-flatterer/index.html index 4de645429..8a88fbdf0 100644 --- a/blog/2022/08/03/community-call-july-flatterer/index.html +++ b/blog/2022/08/03/community-call-july-flatterer/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/08/29/frictionless-framework-release/index.html b/blog/2022/08/29/frictionless-framework-release/index.html index 5440e60d2..30ac36dbb 100644 --- a/blog/2022/08/29/frictionless-framework-release/index.html +++ b/blog/2022/08/29/frictionless-framework-release/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/08/30/community-call-github-integration/index.html b/blog/2022/08/30/community-call-github-integration/index.html index 7e95b6661..609625f6a 100644 --- a/blog/2022/08/30/community-call-github-integration/index.html +++ b/blog/2022/08/30/community-call-github-integration/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/09/15/deploy-solutions/index.html b/blog/2022/09/15/deploy-solutions/index.html index d4f030d45..5b2479ff1 100644 --- a/blog/2022/09/15/deploy-solutions/index.html +++ b/blog/2022/09/15/deploy-solutions/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/09/20/mysociety-workflow/index.html b/blog/2022/09/20/mysociety-workflow/index.html index 4eb47a871..061cff424 100644 --- a/blog/2022/09/20/mysociety-workflow/index.html +++ b/blog/2022/09/20/mysociety-workflow/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/11/02/october-call/index.html b/blog/2022/11/02/october-call/index.html index 32e5e22e3..760eedee2 100644 --- a/blog/2022/11/02/october-call/index.html +++ b/blog/2022/11/02/october-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2022/12/07/community-call/index.html b/blog/2022/12/07/community-call/index.html index 59c1a1cbc..6363eef8e 100644 --- a/blog/2022/12/07/community-call/index.html +++ b/blog/2022/12/07/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/01/06/datapackage-as-a-service/index.html b/blog/2023/01/06/datapackage-as-a-service/index.html index 5c21589c6..1cc17b71c 100644 --- a/blog/2023/01/06/datapackage-as-a-service/index.html +++ b/blog/2023/01/06/datapackage-as-a-service/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/01/31/frictionless-at-fosdem/index.html b/blog/2023/01/31/frictionless-at-fosdem/index.html index 5b4b38b5e..24ecd63f4 100644 --- a/blog/2023/01/31/frictionless-at-fosdem/index.html +++ b/blog/2023/01/31/frictionless-at-fosdem/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/02/06/community-call/index.html b/blog/2023/02/06/community-call/index.html index ef8808306..1cfe45df3 100644 --- a/blog/2023/02/06/community-call/index.html +++ b/blog/2023/02/06/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/03/01/february-community-call/index.html b/blog/2023/03/01/february-community-call/index.html index e87dcbad7..40a0cb3c0 100644 --- a/blog/2023/03/01/february-community-call/index.html +++ b/blog/2023/03/01/february-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/04/06/march-community-call/index.html b/blog/2023/04/06/march-community-call/index.html index 163624a62..010af262d 100644 --- a/blog/2023/04/06/march-community-call/index.html +++ b/blog/2023/04/06/march-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/05/08/april-community-call/index.html b/blog/2023/05/08/april-community-call/index.html index 29ec39bae..4668c6908 100644 --- a/blog/2023/05/08/april-community-call/index.html +++ b/blog/2023/05/08/april-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/05/12/csv-conf/index.html b/blog/2023/05/12/csv-conf/index.html index 715f48b56..3495ff84c 100644 --- a/blog/2023/05/12/csv-conf/index.html +++ b/blog/2023/05/12/csv-conf/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/06/05/community-call-fastetl/index.html b/blog/2023/06/05/community-call-fastetl/index.html index 1bbd82efe..60c094f3e 100644 --- a/blog/2023/06/05/community-call-fastetl/index.html +++ b/blog/2023/06/05/community-call-fastetl/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/07/05/community-call/index.html b/blog/2023/07/05/community-call/index.html index 8e74c86bd..3c0eaef16 100644 --- a/blog/2023/07/05/community-call/index.html +++ b/blog/2023/07/05/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/10/02/community-call/index.html b/blog/2023/10/02/community-call/index.html index 5a4edf376..edf5db488 100644 --- a/blog/2023/10/02/community-call/index.html +++ b/blog/2023/10/02/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/11/06/community-call/index.html b/blog/2023/11/06/community-call/index.html index 4a795d658..c13fc9e68 100644 --- a/blog/2023/11/06/community-call/index.html +++ b/blog/2023/11/06/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/11/15/frictionless-specs-update/index.html b/blog/2023/11/15/frictionless-specs-update/index.html index d11cbb98a..b28d092f1 100644 --- a/blog/2023/11/15/frictionless-specs-update/index.html +++ b/blog/2023/11/15/frictionless-specs-update/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2023/12/05/community-call/index.html b/blog/2023/12/05/community-call/index.html index 6475bfdd7..0eac5732f 100644 --- a/blog/2023/12/05/community-call/index.html +++ b/blog/2023/12/05/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/02/07/community-call/index.html b/blog/2024/02/07/community-call/index.html index 7c6231b80..224fc3d9a 100644 --- a/blog/2024/02/07/community-call/index.html +++ b/blog/2024/02/07/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/03/01/community-call/index.html b/blog/2024/03/01/community-call/index.html index 5d9269c38..1f95ebf7e 100644 --- a/blog/2024/03/01/community-call/index.html +++ b/blog/2024/03/01/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/04/03/community-call-standards-update/index.html b/blog/2024/04/03/community-call-standards-update/index.html index 5d884ca67..fb35de12a 100644 --- a/blog/2024/04/03/community-call-standards-update/index.html +++ b/blog/2024/04/03/community-call-standards-update/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/05/10/datapackage-update-community-call/index.html b/blog/2024/05/10/datapackage-update-community-call/index.html index 0916877a8..bb59aa4d8 100644 --- a/blog/2024/05/10/datapackage-update-community-call/index.html +++ b/blog/2024/05/10/datapackage-update-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/06/09/community-call/index.html b/blog/2024/06/09/community-call/index.html index 8ad8929f8..ff689c323 100644 --- a/blog/2024/06/09/community-call/index.html +++ b/blog/2024/06/09/community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/06/26/datapackage-v2-release/index.html b/blog/2024/06/26/datapackage-v2-release/index.html index 532c4d425..77caa63ce 100644 --- a/blog/2024/06/26/datapackage-v2-release/index.html +++ b/blog/2024/06/26/datapackage-v2-release/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/2024/10/08/monthly-community-call/index.html b/blog/2024/10/08/monthly-community-call/index.html index 939107531..96537dd92 100644 --- a/blog/2024/10/08/monthly-community-call/index.html +++ b/blog/2024/10/08/monthly-community-call/index.html @@ -38,8 +38,8 @@ - - + +
- + diff --git a/blog/index.html b/blog/index.html index 8f02a861b..c43bd7f9f 100644 --- a/blog/index.html +++ b/blog/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/page/10/index.html b/blog/page/10/index.html index 7d38607c4..b51832915 100644 --- a/blog/page/10/index.html +++ b/blog/page/10/index.html @@ -30,8 +30,8 @@ - - + +
- + diff --git a/blog/page/11/index.html b/blog/page/11/index.html index 950b097dc..2e48f6c86 100644 --- a/blog/page/11/index.html +++ b/blog/page/11/index.html @@ -30,8 +30,8 @@ - - + +
  • Frictionless DarwinCore developed by André Heughebaert
    - January 22, 2020 by Greg Bloom, Shelby Switzer, and Lilly Winfree + January 22, 2020 by André Heughebaert and Lilly Winfree

    This blog is part of a series showcasing projects developed during the 2019 Tool Fund.

    -

  • This blog is part of a series showcasing projects developed during the 2019 Frictionless Data Tool Fund.

    +

  • Matrix
  • - + diff --git a/blog/page/12/index.html b/blog/page/12/index.html index 0be3dd14f..af18e4091 100644 --- a/blog/page/12/index.html +++ b/blog/page/12/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/13/index.html b/blog/page/13/index.html index 73db3f13a..20f9f43a2 100644 --- a/blog/page/13/index.html +++ b/blog/page/13/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/14/index.html b/blog/page/14/index.html index bb1978c63..9d36c00bf 100644 --- a/blog/page/14/index.html +++ b/blog/page/14/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/15/index.html b/blog/page/15/index.html index d98f7b485..b1fef2cfc 100644 --- a/blog/page/15/index.html +++ b/blog/page/15/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/16/index.html b/blog/page/16/index.html index b7417ac71..96b447eec 100644 --- a/blog/page/16/index.html +++ b/blog/page/16/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/17/index.html b/blog/page/17/index.html index d9ef541c9..5ed2d20af 100644 --- a/blog/page/17/index.html +++ b/blog/page/17/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/18/index.html b/blog/page/18/index.html index 2d1009c24..696d211cf 100644 --- a/blog/page/18/index.html +++ b/blog/page/18/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/2/index.html b/blog/page/2/index.html index eb25ef7e6..c24bdd30f 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/3/index.html b/blog/page/3/index.html index a22cd093f..4c1dbb93f 100644 --- a/blog/page/3/index.html +++ b/blog/page/3/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/4/index.html b/blog/page/4/index.html index 5850aebff..7d6655566 100644 --- a/blog/page/4/index.html +++ b/blog/page/4/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/5/index.html b/blog/page/5/index.html index cbb511fde..b7c258a75 100644 --- a/blog/page/5/index.html +++ b/blog/page/5/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/6/index.html b/blog/page/6/index.html index 0da9495a6..6c4b17137 100644 --- a/blog/page/6/index.html +++ b/blog/page/6/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/7/index.html b/blog/page/7/index.html index a106ddcbd..b7178ac98 100644 --- a/blog/page/7/index.html +++ b/blog/page/7/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/8/index.html b/blog/page/8/index.html index f8878688a..62ed69104 100644 --- a/blog/page/8/index.html +++ b/blog/page/8/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/blog/page/9/index.html b/blog/page/9/index.html index 3ba92e1f4..23f060a04 100644 --- a/blog/page/9/index.html +++ b/blog/page/9/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/design/index.html b/design/index.html index 84ee8730c..0f1fe314c 100644 --- a/design/index.html +++ b/design/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/development/architecture/index.html b/development/architecture/index.html index afea15f8a..65a5c9270 100644 --- a/development/architecture/index.html +++ b/development/architecture/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/development/process/index.html b/development/process/index.html index b0ebb1fac..6d2a75ff0 100644 --- a/development/process/index.html +++ b/development/process/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/development/roadmap/index.html b/development/roadmap/index.html index 380c310f0..f8d59dc26 100644 --- a/development/roadmap/index.html +++ b/development/roadmap/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/feed.atom b/feed.atom index 0bd1dddde..f3ecca9fd 100644 --- a/feed.atom +++ b/feed.atom @@ -2,7 +2,7 @@ https://frictionlessdata.io Frictionless Data - 2024-10-08T11:36:31.735Z + 2024-11-21T15:53:16.947Z https://github.com/webmasterish/vuepress-plugin-feed diff --git a/hackathon/README(pt-br).html b/hackathon/README(pt-br).html index 6154d3d82..a6ce67a3f 100644 --- a/hackathon/README(pt-br).html +++ b/hackathon/README(pt-br).html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/hackathon/index.html b/hackathon/index.html index 79889ef81..7b061e120 100644 --- a/hackathon/index.html +++ b/hackathon/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/img/community-call-october-2024.png b/img/community-call-october-2024.png new file mode 100644 index 0000000000000000000000000000000000000000..a35d7658ae04b7daa7065c5357d9b3c9871aa92b GIT binary patch literal 181242 zcmXt9dpy(s_n(Av?IO8MH<$RhrHM9{%Up6vMef(awsOrz?ulGO?hKpFz1&Siq7b=l zL+-cavbl>z68+wNzMtPe9&9!bubtO9&)bQ)W30!+Da;81fq3+9YMX#StRFz2Bj964 zfJf@o@5q8cp&)&2&3k_KtM89zBF!HEnaM(nAJ)7L{hSb57IxuC*oP{a?9h{%A9*wr zb-da{&sZoasym(96?F27`JUk@a7{7mW?l!65V8ohwB!?jY(y39u0MJDr~WnNm1*(v zByXM2y8w{sk!qnCquPYzVH+Gz?$c`#^2XjuTIlFIv%^OkT zvmOlU$Xa~nn#ED(vEI^X#%wOl-rrH)U2;G3-okTbsnq)RhWpys#5Bfi|6%F)yUIuE zJ}xWLGB&sE$3jf{WyYVrt=Z;~8E@g6+EeGl5`JpXpHx4wnf7npqHH*-hxqT-Z*1@% z*z7(zzrV8X6to+??X5li-#e=U-pD@3!EzE#g^!f5z&Tk{Xt2`ZDUhnK^ z6#L;(VcX!n@QbG;p=C=mMBH;JMy=GN2f@*}_HLo_OW)73#@WhApQnZLCB*4S*K*N- zkGoCR`Qh}+FXU!aiA_aub#c(`Uj(#I{hn*TO?5s0)bo|=JC@9J4-kdaC8qVYl|KXY4fl!Gil# zOUGgIM$6X0r}8Ojw z6=A(IQzPP$HzpOa+qh9S-Sh3-?;Afbju5l=SrGL*I-%3=92sUGXn_@v;O=Iwe2krS zpk(aELb|(mQmUVkENcIN8WG%UR{|PPjD4=qb+z>nbPp{kq|8r#_RZx_w9Tu&Oj=XA z+kWXujX{UcAqIUdKhMiIW3P56!0q3HZ za1H+WjU)Jx3ox4i`v|5H19%Hv)FSec7X6P7Rx;qQx|sfFhw)o%*-DSff=997V+gqH zG^cyR9>(TfZlUtz?~J^ZcDKhk zORJOQLT7fDF&F2cjO%xLF#YH4taqD&5C^rI9JDaf%H{jH(U+7Mw1ap$lNE8E1H>a3 zY;+!YU?q$<_-A9seb?-$3U`o3<-^2da#-{U5?ADOWqpIf5$26jJg=N!;~Q1SS|{Mc z$ejlXV;M7n#Dk~j(CT*;nOl@OxW=EIgQ=NcKE+1d6@F6R#~*lX6`ym`cG*8cC}yt4 z-gsR8tElhq0o%Sa@kvaO;Aks<`#M|~HMYg}4fz;-{N(r}YC7QzOl6$L-M94`_=%Hf z73eD{nh#-B>L)v+kJH%To@am~G-5VMv!nBXQ(P8@sRrnVN(Q7e$`}nJgWCp`a6{l! zB}0(`lE4Rm{QLdv-qS>a5FSS;-2D66-q&O;lsR7C+qi@>n2`M{hVaLp2EmZc@Lbr# z3H@>y1ZMbt@5Sf7I7)Bd7dF^aWa)6Wgp!QMAzALB$D!%dgXdw3if9ezN~w1O?QTO4 z^t%Ki)N2~{@2VPqHaPsDBEC<|NIrJV1jO;t2KiL-{MUv~2y|LK`ic zW=VB{S6(0LN=0V!G1t)jymRig)3qakD$lDlw@Di|qZQ?wy!9+sSO=?$Cr)_y? zas7^?S3q(LC=+7g?=l*WFPXqXG|Ulko33K?jzhSpCV_R#GEjgeni>l{^B#pbQk#!D zik4P8{qNbct7-_nh0>jhv!Nux_*+_<|x|OAlVc+ zLfwFL4;~GA%=$=BiW%bFHOWQ?!c9ZU3op#6tWMG&@V@Ec>u9U)UY4xR#@r8*57^NH z=eW7LO|;BY!H=(euSPBK75_psFW~mW4?&>!+=7j|+`-F^2YcZ@uMoMT4q{?aTZq$$ z^Q?lRd!!f=ABKDCx^p}dy|Hj1Zijp71rq%Mt%RtQ6>Jo30w?jVHG$`&fO3fB4MA5T zF5}X2dtQEVO;20cPyV#_veW_h{k`6?f!@B~!avT*w2wUccQlL-y`EdjeOCTd*A380#8q$iH{^TQX7>=|6HYb zlD1cR4qs>%&Jd#cUm}uIb9#b=+xrHJPo^So_qx!^Y=xd)U5~bU)f1a}M#ko@m1~Fe zb)>N5g`)6PzUc5()dLn#mQYp`_<{~!BCp*O?s#{>Mord;XQcNTtbze@{?H~~e3rC$ zWYM$M_oRt-S^;pB915KV$_R3X*iRA<;>pvVJ(B9nX9=K@t1@b3{N)RLTV}z|Pp!Dd z))x#+_1GDIXXp5k%$3>(ZwVIb`pb*r8ubrOj(@AUhnIjOigQGgvr|BJk(AZRJ5040 zj)loP;}DkG0fGe3E~i5+is(t1goV#UenJn!YD_s5gBZZzmd1FvII-yos4ch26*H6o zAq^GYU^RiCQ~daOB`z6~PlmYpVbfoelXLVvfotu-jwKvR-acDhK5ev!)IzP$ymq)h z_6^f=HWiDbab7rHeRKJ3i=bnqv9KB)XPu6toy!;Y4@R-;P|RCjNkye-S^}wyFZk** z?J_H3F%F1n*wo0unoD8*@Qd4qHf6{0o~>h5MDiZBLE>CR2TKJHr} z{HFH>UG<$q-mBOTgGVXpPg8?TS!(BzKV)t?*Za9UjsP!Rn3Q7pH{v(phC^2U80YCtkX$fuHPc%m zJyhq3n=ln|4I8ZeTmx#>2Y#eZVajCIcjb4W*@I42S+)E_1p4;S)iC;1pG$B?6>9BFGMZW z!vOQUB1xO8;mZT9+giIBTn}f*`Y|~ss3j{NE(5Ij9yX5h$NItO&DWGTN`D+thwe`M zC&jq&TI^w%8JG6qL^= z2S-8qLGQhWz1DhXj}XtMvmi!95qx11zxWgLR$BSi;=$cLv*fk1^I2^q#f&x~D6jp* z5lF2Q`t!o*S)snf^rX)@v3#sqQ2j0b&FQ=8^Uo&F)A?dZI0BAj9d&2VTs;6|qae^_o$)sob=#S{|2)DovkL_%m=lMe0qe z0Dg(Hm3#%RcUPo(6BwK+VcqM$ryeq{4($21;M4jaaAdnR)*MMn=k|Am-EVL zqn8%Yf7Z8lJjQ!ILL!dmy}9jXGhfco7?2JgkL~OF?-I7KNX%yP1*PA1hRDlc7cUzD zxI#|e5M6|sa=359*$5ze@^bGu`5sXyONN0HvNq;PA6IVrE$c2~5_ryCdz>6sDq=jQ zJgjnQ&0mfMtKUmLLy&`qZ?3YyE~+_QeontfiPWJd-nNLOeC|^d%e;eUgQ&Fss#g_ zuD4_dv%%KIxkM*JQp-Wv|U)NA1GnSYKEba0s_1dl-|Kf%|Lk;24{dV zYb{Rr9@DlQei{LsBoCU1TICrngW1p{hX@FByMGq_hqT1iFumkcgtQ%SI+y&#LgPT? z?kAiz_r-|Y{6t7Uq?Gc9cuF}vj57WDB4nwo2NzG_FS|?JF0SuLCVwWG>I=*3A~Kbd z`-OP3=H4z8NFX#ZnbR^Ck*}mU%%`J+Rwt?zcHWsB7|(3k?mT}-pG=DQKtqV@uxc2J zW^IvjUxMNx5rt#ERC@>YjwpnUI&;=B(s+rM+4J~=Fn!^IYE+hV0X*WiPGrb(H}4AV zf==b?og2)J7`Jy*e*N{-g-~28f7Q5sVV{y{UweeNo=L>_t@Y-@a0mt-W9)69y z1{Z@F&RXFJF$8I^d^h{5FoKnzd_H|SF%z9YAsKiz92R1;aVT5N59?E zuaQ#BA{nn3iu{H&&q^B&${5Htos^Bi5uqo@Ph9RD>rJX~v&20ftEpUl;)ZIOdP4OV zFI^bvX!TN_g=&F2hQ|u zlp_Aa1U`l*A*NRy7M@WA@DhsKP;TB>4`Hq-enKGzp{V3a9ca04h6+PUsLKS@HKW*Q zM%1G;O2e#>b^mrrV(uBZ;aY2<=EUC;qWOos()6jdy>d}aOhfP8 zT@zQfLB{Hm)i|CN*7@#j+NPTsif}USEfio?i?z!+!aM~ejZb}LDk~tKf$W1{r+WGx zT13`gwRvECT~WYkf%Er5NH*F>X5V+afX*hyrI5(I=7YZKjTRM-2m2P$)}__h3(#{> zzV^J+KjgfjCXk43zCL^2)Vznc?*jzVqv*;O!bzTk$}g#@>@SmhLWR{U+u`G3s@tLF zjh~fE%8K4G^66aBd=H@C>Wmv>mn6 z*@W^9t1jw5-N&tMu=GwNT2WHTmiwG2Jky05d_ zbb>`#Fu?MP(lX7r=njMSjC4HzI8i@V9waO%%#tPe>t-MAt~`f+e;6s87ti$84nem# zvHhm;i3^S|dbf}H-tXf~tbR5pzI1i9`{g{B%T0Vx2~6gHbIb5-o8pZ3cCkQKOlA+w z>b{Z}q%JKNmni`=jARek;dT$E9_>pf6z=ra@kpp!ps8^bo6&}g3>=H~U+ma+oT>=F zd_?6ayz&%~&s!y!TJ1YGDR=AGk5h-s?-C&cWZU3Y2Dp!{h`Ct9&9jJ%pt#U_Cx6S&3@4xD z7F;+&c6MQFubW{K8$pb{541Km#0cdvHxHLNjc;w2Khkc-hqI3BUGpG!yge_}^m7B) zb;{`ergwV?!{wlSo5O~q@^J%r`t!*x((VW2RcYI?J=PA!nW`1lhT=ruU@=ZsT?@yG z`KiuhxwQv32|@`AV}}=7F1T#`hj~`gpCfNz@3q_BUfL8GlN zX|$>92S>Gfs9i_jv&^}!mf8?!geM$po+4l|J;ttMSxZK$;t7$c>@T0sag)e0a(;vCVr6Oxv^^v7kL`rtoTh=L3 zH&hp*^Z={AX89PV&CKYNx`+keS?;wCPJD)w znIof^bj;lc?aWA+`N89x5KY>6`J0y7lcarD zmL>{Sx$+3XNln^lFn@DdXF@rV;BTL}1l4vwhOHyS2lniGv%;xaCGlSZQVTX^`>hg= zcVkhgCjvHilV6jqFQKP|zkD6mz%E`#S%zMsL9K%y{6Ic>NqHo72bV1tsH=7a{Rt_Q z@L2WDcX=6gcENw*N@S(|?@ERs^k=@=Om7vlX(-r6+g+(;dh-LcwU0Y~rP(QR2NF^1 zSg4kfuL)D4@GIvIjbLHeO@yjK=h#8t`Cbf(;3+z5Lj! z#v51S_RR8r^-9uupG0tq|D|{IZ~gxKB)UQ-i(mmoVN~ycKZgW@Wykm9nkpQ&MtU=AZV$WfBvWD zfy1YFJEmO2JNlpWm?M3PzW=f|!+XE!W`3;}{-p#!O=8N%j15415ZosX_N*Rba7TdQ zXYN-wVUo-&i=ZQq0ySEDHtAY(=JuYLjyBhgQQ zGH0yk-p=S{a;Jnz&qA~K`Jo~K5}bLEm&XmTb+0iRbh&C9RvSagnZVoJDtZqfTH8C` z^6^J29H0NiUP_6W+vQIIP*=3ZtH4zlRy+PaKp7V8;Zl z=e>y;b4%~tDN#jt0F1RJI4&p6&0XFEez^;%2MDKDJ2z@#yR3AB?56QGeM(TB!lpw6 zuhp}E8=2lyX@fe6Tp6@+oes+XLRUlIlFwmP$xhA*0vA>QB*!CS@(lSGU$&xMCLALr zu|+`hx4{AsyTCo1B}K4c4t7h+%i)eugGS`mWW|} zPx{-=cWm zH7^)lT>qu3(0O1s=6m$*spuv1_fCZ_hgSQhI|u)3TR)@}*gCfi`p$nZmq0%H)TbY6 z-nYn8ssYiknH{@Ydljz7h-2o=BVB_NYEcSmhI=>wQDxO}cegjz^u}|pS!EM~%|-3R zW^r}glDDYS4Hs`wFS?8AqU6-F55oSy=4$ElNKK*5UP63}6P6Ildr{;jb>1i47ZqEQ z;){AX>h*ftulA|U<-z-Zsx|5FxPj|;8NoOL%UJ0H_1z%txgS2F|KV3+mG7kGd{{^- z8S}WfcU`~hwdbbA@=8>FWuUw$zQq}Ps6*o#=(!83wXQnV1V%>|xv8Ea-4-d!g;}E1 znffJ&Qd{14E7=0U3M-z6bJ*gadi9O5m2nPoSb5P$aKsg+y_b8Sf?hTTdW_iB^S$7V zD0xNoq#IpG_{w;g=N-J$XyHo+DIg^qOxpA#=pp&UcoL#vY=nV4Fh~Z zq8kk0N~aL=C8WcE=^z1I*{G6uKl`eCfdb54hO8*Hzl!*>Bqb71)H#NPmaL9b`~T5= zNy$C6U!QhA94^vbMKZ~`*xCSq4s6IvAx?4ZV&Y;!IrKhNaBW)InzJuCyHF1*{ZEVi z3CQ+ikjqfp)X1k`(K@xy^xp;af%xqNl1eZ6d=?fR9X)+QAUIb9$@wW+3oK>iGQp-0 zHAs4_PjW)%_B>wH*e2j8YENhGnST%d-m^!M2>(nA>Ey(bh7!`gMn$eyo&U8PB+qdb zYr~+~RcR}1e6zf$QO@QvVbo#hj|=SI{ZFsUZ|at^3VBViKwxT)r^;yPj zOnBptK&pwUu)^{;%iKgv{Cw-;lS_Db{TA$pnV(&zy@206nwbQFYpJ(IMkyv7Kt7pJ?!LER8siGYoBn~@wkd~Vik0J9ciz6Z=#9;HQw5H?;vd=5$wTg2*VeCw7Ug#T zPiYDGl71>kTx0w6UXt2r70p3)FK1SpNY5yq%*-rR0*amgb=>$HlQq3m=MM0a>q`~PdC6k zB`j%bOj|XoT&i`2+bOK0>ZA}pxRsr>-KhpUD;H1ca-X=`V)c0Yoe3ZjTVb}@JNt(F z+%Er-RfMS6JZ#`jt;`qr_V`qW!^*z!<06|7Ez}r@mT}*~0Q8>aH|^|8`RkE8s^*_5 zCpRn~@6qO;M_!Y8Froq_3FUJ|-nf4uOIppH_&xsB&gu>gV)p&V_m*w^i+Em9MWtV) z;3`pUYR{~1nV>?aHwZm#TG9kQg^@U)lGl5iA9h;C@MTm`U&6&3%B8<2ebQcZt{Udz47;!r0DJtO(oXZ>vg#GZJY-1)cm zmettZExc4KA+LbWF9uIRh0}1{A}~vY7lcH<I<{uuz4hN9=+>q!ZS1q@l2JhkSvb7#*a!tF7$&0iS@ZFjgla{OsL`+E9b%4ul z_;+{W8`OJ!vZFTNaujHVyy<*s3&^%RGm7YUVo6l7G!wv&T8xGY$ek z)*+{V1_nA?_S`mMdWZ1&Z#;k%;S}YjN5|ShPUVC>W?s-ZDy@rQSNrq%J|VS6obGDUk{K9Mr49r5gSJ6 z`$AOqJQiTz-Y^?Mzq$sEEq!58cyth;%XRLFJ8>YnjDqKDlhP9%PsJnX-I*v~wbF$! z@Ec7AU|g)}?maM~x-hsWj=Hx--o+Qr8%>t+h)k17kfq+&?q89L!sv40q!y?y{VF=0 zmq!AE;ChCO!D-<5&JfFf4Naa4i-~*X5L519R{AnPenu$@5Qc+=Vrip^?s_4N7au;~ zy}}G?rzP>;3SmS*u1o{6=j9iU@A7V+*A57&`rEOxzo~wv*+-c}B0#i2$EvCI>CZ{d zXm!(LK!GYLGUu*<#|=Jnw{MBAUrY@c)oP9_ivQvjkOJ{V8yJeDXQvo4%p% z*$U&34x7trA~TRd$f)x8l(oo`5MR|R5fZMV2F0eK*9zIWr|Ld&Q*v1D)2>@NRX<=j z#)m+#=v?H{Kt0l=niT=w!__4y^r}<@{V0Icl()l(@W6>krdyC`|6b`4eA*l^8Sk6W z#_@N3hFc*Or+%NN_PLD`g*4ABHq@;T7Ac-sBkg4tZK<{t&y7v9{Al{{#m&ZQAaUP_u6opWC(Mjc#^9?@BJ!Njs z+r6Nnpm!tz7m62l&pFp$yy&m8p|l`wf#p9q9~?x zdBM5EVZAhiW^um<(GORU0|g9D8mjcQIHx$FyB8cIL+*aAGY#ZSBI!M%J5~YKvJwot z7WeU2aowA`)$4yjtmHawImeh=&IfHF>*cDHsM3N z_!-0HH}%O?3!2TiqbvWF99k-dvaa8S%T4Tc%VvyulM7HcPQV~=8xM0PHy%jh&|DUI z*l0k#uvw2Qp90zGQ?q}6CKjS_mKnT($`qa=RC?|+f@}4T?fT@;hh^~XSj{)$3sK@~ zPAj!M1$5^Qaz4H5^LKD0+g%^?R@ z*oXP#>PKjg1p1Mlw^lKI_XVnQvRN`72fWPE+buZT5SJ{Jic6~$DEl3&`LZ><(V_Wy z2u_`8%fjU5?$hPHW_q&$e7}?PNNtXEK@fxdo1kS|Rr6uYw*Zl=c<&F{z5KiAE$Y2b zyPs5wVN?fCEPAp!EReIGZ>^2AKxkEeE)ik;oZXPQ!o!C^<+O(0hS?(a zB!UpJa09AI&1}##4PRkAsw)()rGH{Tjd(7>4QI%T$yH)Y6L`%~U!_@

    cX2@jEiN_@dY~ zw_~E71Llj1SB^29lnffi@*$rbni`*HI|yMg5hX@7kJ%(z+^U-g)TA5f-M299Gz+&Z zg)8F_CU}q3XLRujGs0u!$$V6i&J4iAjq(vs9St#MpJvomn`1qrDvjUd);GWTv%J{+ zKD581M>CM~ei3bnHr!Kvsh9t?-He*)u`%Dbs&_6`E;xQ_-?^`YV*6L9I47}iIC%=R zM%b6}x!xH-o_}Zv*n?@CvNj|jbu@ubS>#!7_|z+6ME&G*iZ7k8WPlSnGmgRehnG_W zY+@60tpe?H2(BL+zRRp?+v15Rp|=*!gt^Q91Twy|~^Dor|p&c3V z+Zi6*y1XB09v?Y zf(4G&52=9q`my#XI;KCKUn8Rnu#k^uEto-73j7h>)Rbd1??-nAAgr~$lf+k=j*M=* z@T0Vg)$(s#X)qN(;3*7^kVI%p*Bl_|*y63z@_;Z2p%9<|L$6AB^5~w&ftbx|KOmBT znC2QN8MUXrh7ZK*Uz8x$pw@9=%-*)Js#7|G%KY%l7RL?p$yWg>$@7axyh`U}SrKcY zSsO2#K~!Wf?M@w1r~){}hO4O`006RVV4iODdq9G@5OnU?)b>^%MqvUBsm+$onG==q zE=m;o6*O6`g#;wnXRHweeDU1D9gb@qx8luy7^@ymk5&ITtlmj-wb?KCShu*MG!DI< z!5X&q;jda2mVwx?)QpULrj^DQ4_ZTU4jOW@a?F_tDMu6bF3wng`G4oN;gb}2{g$-H zVpKXo0$~^x`3Uffy3Iop7!9V&A;?ZLUNlGXkjIev$d}elHSC?d!vH_0``L8wJOUC% z352tk0@CjT#Oa?UD_80b_xwlBG#U`?qI{R7?Rg}92iKws=+8H08GD1%oyER7F?DPK zB0nSFk&&%D6nNfP^cU;gTK=%|u0uSxXaoXbdP6AyI^I;g*_GMz42g!CMt}5;1bEsQ zU%aciffp`YW30KzKHU-jKUwjdgbugp_iFXc)BcP*%VZM0fEP$Mz{LAR1c)Ry4e}gR zpE}%d(j-?xBXE~obK|teOVbQcZ2{oE#S+%O61xKzlQb6s?JH^lQ|PHcr9skTpLBwm zIlh1%TL#mmI|4WtV3^0({MaYhIRULQDh{QM5_&TWrt11d=J3RgC+=ap^feozRXKeC zgWo#xk{R7O5klO)xhnt!>hQgTUaqyJ!NMi5QcVqa7hT(;x}61ac?(AO(e47U;e+%8 zy@@fng*$;Qbo!`Z@B(re5E^H$pBD_6n=C}rF934>-=Kr@1pe|4KjD@yZw4RFtryKP zq!BeY7?Y#ZhH5>b=IHa02BL{;1;#Bt)9PK&P*=K&eGv!tF4_d*HK*P+Z(NR(j9e%3 z;x(MPI+uTsj%vvPxxN1vHX{GYcb1n{-?mb&ymMUD6gHd4PjZ(DU>~x|NofUAmPM#x zf`mrO299OC=!V`ndE+^zjkQ(@t{PhLgrl0H%6%FFReAjeWj`odSLhdzE*37Xz9Kp$ z@z^JZZE6B%W zjIumN!KbkfWxX-XkO79fFF6yJEvJ~FNgho5PL#5Gw)G-oG6TRK)S+xt<+<#4k044b zv@3Ux>GH-ddNqJEKJ5Y2D3-5|48!(|Ysn~d%4LhJ2=j3vo_aL}GaG>bdNj#q|9-g8 zc;^IEfg_VN6?P_5+IHw939K76+yIszHU3FrW$BS;Wz;-*`=7`Ek^m^KH?4!6mvEr* z2emdz(XiT6ggp&f87Qlwo#rv+*!{~^PEBSH2>Q8Dc#w>0b8)rHOVFQ$v-v1StX(+L z`HnG9GT>d0(a4-Y{tfWoKEtJBKJdK3s|paF5l#|)ddb!9mH~AH9-+;$ek<8;=I?-{ z0}+8zm$ZCF@!j@Sx*$bsxaX}*lRfBr1illP#iJzi0Ew0~Xdd9|vhcfz(^(L|1d)=l zmEgWQnZ@#>$ey=wO-Euo1?xSib57@OTrK8CT02JC|d%Ab^+c?NEvnV zkv@hS3lQdQ@1x0$Kt=~gYvm%|WdVfKjV0jTPn9rC{yHcNP#+s*H-O~UB9N-KS%Y#0 z3gAR2yMU_3PZ%Qbm&0#E1JYYD$%Kog6j!R6f}lAjV^sNiNrD-`UDcOHIBVR)`vJiS zHf42;dUeFg^K^mG$M~dvoEa*HQeV^Gpyh46)Yo+-zF?Z$H1r6*Tt(~~vVB3uKuyr_ zZmNVlLqINHFv7AYjSc?XmOOtlIAz${Nv@q;ltqdhe}QG z3Y7W%%{g%>aOhzy?Qm-6x?aw!GOhp1Pc-PfHPYywxj5! zZ$JQ05MNxMLKyo6gmynuOEmPxG30k7+|9BSfVelMw!?IQ1i?j!%9kt;oaNafc0)kw zwqb80@ZS$OYZINq zZGEC$w4*c*F%4G0e&QH~UH}Vc@A6+oY*aic!zSDFmI5U@_gKj^`Z(6)W_rELq!F$6 z7TVnrKs8FB>lWh+j@$|lPuc(q!XRYPUlaGM zx8LXZ3VGKPy*9>*6@r)EnsT0yGAv6W`Djyj1F>~6K9Bkxy*w_!|9p0(YEU5>RJCh@ z$plo+W?2xmn+dL2zOn=zRW{jY`(r>OpC-KD0f#NOBQ@pJxUkJ!a1m=iU2HSCeLd$M zUf(aF&0fc^MpZ$u8t^ z%SulWnViR+6q76`?*QJ_IW)irwR#=_&c;(xG$1_=eC5tt>0bUC-uOM5W|Z$9EuTv# zP=SM+zuD1wdYP8#4){$u*X{+-y4Ow3IhN5BmH3WXt8&~DN>5Vys3cnRzoe6Dy&!(?gV|1!7U~kx|5hHE743|c z(307Mz5;v%8Last&*CC370A@*7){fLQEo-_TggCc%csHkXmJ22aSa%8^fuky+G?W5 z>V$jTs;3d~zh!CA0Rj(v1|s^BJ75iW7W*!fK3aDY48#o|T~l$p`B6f8)elfZ2g!dU z(O<_jIssNDhD~n^i=!kH5EbNIw-UKY7*75bOiYEmY}?nD^vOyCvY-8?9IA}8^kmnB z*x@_C2n?H|&G9j1C&k@}i9vYfx!mAuib{Ua#YEEGC|=fx`yXRRNRK-WHW3IZz0Y;q zFr|5Kjgdr>>->Tjj7fB2U?NvGglF!DAxEmG{j^5>B5w3(Ra<|4Sdfth;1T@d4fJVs8AcW`0pzHv^|q z_7ri1sdae^ewoGkHAP&_kSi)Rw{XX82^VnsNbSURDUkL0ie!K>ntBcJ5+E9vPpxnU zROm4O4R)m00WeTKu8k1Bvs%nP_1W<_JY`4rEEb4S8v#k-!~|5mxWu#qgCRs`^Z61f zB#^otcJWc$qT28@&P>rY}bV9J#$Jj3WRuy1* zC?KneUt7IU;O_Upd<&pTLe>_#R9SVsVH61-^_lLx$PTa!tkq&$pgt!R+qFZzJa zp8n#kO9i=3^(>G(gO+_w=sfCqlSDQgif*uqXTJ)Q>9VrQu^Y8DcsNY!?GlX4OnED7 zwWp=o#hG#KQsDI)4ot3UssrDF*3*b0`r#nKwFC7Gh)TirAQ9m1ix{Y%K54>K%D2o< zT}iQa`!6Pr^ggCuyX&2^?!zEQJvu)&AbTjCHgk(F@5a^X0Aq(a+M5It-}g&O`y@V) zY82PP*C59GfQcNwTPE0;jQs6DDIFQnU&njiW%jTD>AyS2M8A&K{rZvx`!82ytib-@ zhDA_87Na4IB(@z{?Vtg#wdJs;Gmu?S5XGYYp?sGWW*9DNYu;MQb^kuD$7TtM7 z<*5JNu~=C|1R3NUQVBPvN@GHRPJ`f z1$NUT;T}qVAiC#NehLBD12Jcm)zVMwfo-n;^PE2LQIn50M2XMic>V*(_jSDjwy=O5 zzbb#5*r_k>KqVPy&RU^7+L^!KKV)oVRRL=cIKqp=qGG^|I0Lufq=L7>h3F-~pO%R%n~6dPn-{}+T%qpo$z76&9zQz$cSdKb3QIQu|?|Y(Y#da3~c5^Gsc9WshIG}G1h-Wv@e4cPxRQB z#U`(vj$Ev%C^e({tlhEM6Dl?5J@h5xBU$ArZ^ol&5 z1|)*B#2A8%FOM#TXExB>wJ~2O{3i82ptj&5=uczZMGOLwvrsfOCFFMO0O3;;ahxJL zplskK5=Z%1cQKudeHQRqdAJ5V_~~PUx7>9!vBraB9r~9=_d=K|_MDLs$LmexxDSxD zaT&NX*~DMiV1)FIt@*ehetz(oCpCT_{FoRy(d?BTMOdlp6%Z8^eh)rMi?QXccZ@io z@e=236VUxC`=maC)>Us=SrKcZ&P*}i5LKiic=_TLEDMclH*-D6?jtQ8F#=QQg!J>- z1s{2oPv4ztbkSz0s;CmE?VOgxM8;T-uz82@09;|w{L%7 zS%Fm><$S2bIF9rrkm!nmUPx`bqQv%?hFMxj!bP4frhYrMQQ7{t5Wxk#Vz>K_f(fyhW8T*5(9-V$2!2c1D1Qho1pqN&mWi?2R9 z6fuN+c_^;*NU)Gm6r3xdC`l6#XP#gIM`RE}0{GyUWPV*#mHX&HSoP-b;)PZ+SU`Np zDp2{i^~XfABBxvgJuJI?*{vVfw!{x3-$$SZ{5|TD$xM}=C5;Hm3s|vMr|$XcncSG7pLpcliwzItu|(Bgn%Y%tHUW ztJ52WRNzo#az#FRYJY_pzU4jnrqHMLSI5bfMAC>B05J7u>R$QmI@4`TEB=JM-o7>S zR3&DOZ|1~-&x}Lc;XgZ5qZvHDJC?`o6K3pqO@Od#QU;lIAHmcB_Ri&ULlYZL|TR}vP%SvT<+jK$#m2dj-`qB%QW$W@Lo$t||TXj$2 z)8=yod1SvoJOMXEkt2|GsGI2K=*L3&S1wuTc2~+iwle(8o+^|?J;ebVoGokq^bW+p ztq_4&m@e<^!lqNiU3oo6^s$BLCx6MxglXm%lHvqKQHjdm>{YU}6tmdAvqEFj$o(>- z=8bm-5-aDcEA|@P*S?i%9?Dd01~ZAjcH;5D=6klhV5tI}mNm041ii3O_12C0{}O~H z3%u=VN#{x39-AA6*n|orDz-!$^-AON5^e$YGr!XfoC<8#)hc13cfR)P3HKvFJ<7O`BzEA}$O!9ua+DQFPHS-uZPTu)#9; z?BNT{p7z&INANvOLUEMU?yunknK5as=XZUmidl+2N4r10JMM5x`Eq>14H_-er{^m1};ssPWypsuL=P+Gi zFW-P#=B`X#lTxp=x&)^p3_% zouZU3JFphZrAsrYL^j$Zj$ZrR%8cv|$+D6>-s*lD zFIL|X>N+i4VoN#hA;0@Dbu24wzztXh%1jx!y7~P9{<+gcPtdz<7z3icI|%~8!(o65 z`24)}b8oad_Mh{@0%bG}Qa|aeJUIS0Ua zt$h5Y@dND`EnZ;_9U3xHL^*s9qMh)pZ{3jAR^R|BDPL8Rm7ceo;mns%!Jz(^%ZKMh zTrjfdJ>IvYVWEpMq}H(z??#z3!L@V=5VoAhU8pgRP|DIc{;L-lJUr>Sg+Im~Qh~_f z?@2%m<3J|_rGweqlrFW%R#PU>QE*TrWN@SAarvhd|^sg1jrU@gVkesyhO@_8QOH1a+Cf;oQ-#nvpztPap^(%@t*#D0i}_F)yB~D zaZJQ-*YIS?>|_{89>VjBdk??#4hSK{iE}XzzQtL3?{5Qe`Sy3{`E=|HL=-D zXU2Z?p3sf<2f~fava19@rtBR{l=ewNu`c=dM}%opYojM32Q~Ay6LnFqRJOlqh?Hp# zKGVmhPa0WVJ0{i8keb<_%py9G@iF+~TPyv~TUl;h-Nk#pbRW{~vnUV1Dgjo5Pa`sZ zkwg)C4S;9?#09b+C`65r6k5F)(WJRMyyK>y?GpxRJ&(VC_We7YXBa^frU{fq(5+^D0pyOf*Zpo1C0FliS{3mN!= zUvq;2q0@GK{Gp3wZg{M%&4&iQeCSE6yw`OzQ0b8C&sR}I1gF=-($rLVz~jPi8c}=O zQA6)iN9%Fs?5An&f@gDq>+CtP$b#G1zE5MjEoCwj}7*~~>zulj7nMG}VXuQvSt$x+>-EN$C>^Zy!6j(c&I0oj6l z<3Dp_KVpU))v-~kzdVg`?Tf9bsocqg0K5E|+OXyh1~iJIZHk@D_ad87_eh~w`Ff|Q z;j$YRRX#WVQ{H15=R_odKzU-lI6cinAH>$QMdA7rMr?FPkQvDJ)q=tez)kOQc z(F5*B?CbA;kTZSH{;=69AJy51^faFhe{{n1Yj1z=v?Hmh_x@LJokt4eGL~BAmn)fn z=I7m?bSwB(A85lsI(N-bc&9-II`Z0Gy#n6d*wV~t_jtY5MNq4vI@HQ-pK+IxALg{57Q_R8GK#}J?E^D65aNrJTp}dJY!(D)flYwOsP-u z_v~fVu(-vMPC_XuA{PVO`$1?v9C&V~PRmg@={fc!4|l;27sd1tH^*Or9N5|UN$)OH z`=5AvnSa6cc03kjc+Buihwi049}}W%x^dl=PxCAFRv=Y=56nb-WaWj`&Y;$<4j#p- z$y_eps$)#$mCCy_@Vno7L_AK)kJx8}@Fc@RL>cJ`Hi$7U8ehZ1qTi23H)#9<3_C;F zlwYN_OQEM0^ZWkA1W8URwJ6>DJTg3)LPN0#60PoQ`G;sYQZ==g6vORrFE_cNcBA`; zHw3LKI$Av8%Vdu7k!!VaEk)F%O*cJqMOWz1joq{k&;pE1p?Fs$gV(+tMiB;|)h##f zch2j?fXD2uObF@h1PhtN=!*z^OUOR=UDu=WPp`OISbK^#g(Lwy>5tL)VHo%9lo zj{G)m^g>cwg{a0fEqhU|bLbdI1*6cPv4!9S^H(3vLVT}wcSN-PDSL*{A<7~Oj^qx> zdd3l8-_;Teosc!}@Hw1!B?%9P*`>P9V&_ktvT@WLQ?B&s zC&t-muGBk^_x6n!c`>4+{h?7d&EWBp(P}4vF*{@Siqm?}GL5G|ll#i|l_r;}K*z9V z2zB;C^m~y6$o@QccuT;06hV9Wi(jAUaE-iD!$$8F&wJ-VW{9@Qb9VH&Asd(FBw&>^ z%WV#tN7+q(_!Z>b9jJEpc_r;RE}-N85{y#5R7l@SD1q&NhC;={@KMZSy2v~H5{TB% zml)k}JZuCZVBjx#7&JRVO2lYryDg)jYa04yk&e!_jL0d~k`Q9`vptZu%EFpcFF?6n^$htG?C1++_ z5O=%2x!>gXI=SBD-3msJ;)Kqx{F0bJo6NJ_bbR%^+eO4E?D9-&ONj*B-B!e^h zg#WqoV;XsspcmHlhdO)9b*ZUKWe=lCBl7UW#l?XX?B#=nxzzrfqozaEdJEJ}R*WuvP4rG_I@fKKf_ z91}DZWK*+l5rL)CTzFLZs>Wb4PYfXfBe`JZGNd*LeZNpcMqRwx6OUNQ{wV637*HS& zE2a^KmyM`bOT?M^bJLb`K0M;{4Si}b^y+pW=$bT`-YX~>I?B$vFaxJTaFcm><-h0H z?KfhkiW{*9-#8#4%QcJOvFizw6{<#X2o1Qp7X3;xt~*ymfFHg2uJ7}4^;=J;!148T znw@*PgW8Sr6k7E~{#bCj9V1H!gIckX5bR1^R^tF~Bq8tX_HXFc1L{zD2>P&YJHy_L z@Ctf)uYB?t_M_Ng>7@Wn7%3od6DIm!R1*I#BC`jB5@%>IdIpBTJtQ_P#XACYi#TX4 zGtzD9f$#7F#~Z{I^)CdDYEOAaDi0V83puKs2F2OXk8_zSY-s!Er;fmKX7LrwO1NQQ*Cp=x?aL@VY4OGSQ= zXLe>FlOkP^n;pbOpd&kvsdr^rAJD6vP+Th)!w(K@ciU%nV)r*rL9olrK(-8#4pakh zF-cZx5QWUFt#yilEDs*JQ#4DsKg`!HK*>i{uA8loM2(RJlotgMV$uu^90AIC^#89= zEv>FE#4HUyOxZMwQNA>2#cZvEPtB961KPvwP?wo8m zz*3e#aN=n0th2)x;_c%Yur!_ekGlDH}qF5B|*;ECIMuMPzGp^1O| z6C-dh?@w>tRMXB=BVF~Ck*A;kLSn^dINf3Z)4oF-8%+j*r2Aa`45g=7Fv4decz?rp zA5;Cm8l7Jx*$GJW{^wV}80Ts^_3lodH9C`#VvdEP)DU`UvMQT>51 zTF@m5i}>(lb6-E+HtiaDouY<<|1wY@L;F!_i@?$G$lwJQVK4h75g}OJ23i0inx56` z-_ja_a@AC6?%eYJ?F(7+?iVSjKi>+T#uIoA1kS%4!=jQiMY*~fei?i}n=2zE#hdk> z$UAa0HAG~!5j!{A(@05R);57?r)0pFNXN94>{DR$WeCo5% zNb~g#*SC4_QWep|_{jDh@Bj}-A1Mn74kkn(ZO$WVy-C?B-zz-}HSint)I7N(=!4i} z<)X{L+b%_6vB~@A4Wmt*L)VajRq~1=ADGO2`B4W2!;yt54mWft*8pBoW4cA*jmO0T zWlwW{Fo-HBocLp{;~dcPt(4G)Pa?nYk@REBm6{N^a|n*PhoB9fpa#F5-p-g?NLjp` z0510tHO+LY?Yj%vESjgwdiRBvuEYfpvo94*AJssOgAf1cFxNhs62o$6PkBK7_=%)` z96K^RZsA#yr)U~v&p=|@$QPB<*JAK(X2-@=yt@@@9Fff==W*uW^v)I0+(`3TBL^?_ zUY;FOV5*hqi`lg2>?X-(6vWvl{%6-VmN5Kk=p}yDOI+JfIz&b=O?F1w z0YPY+pBi{`aD4=Mt9AsF;y|n_vSIcleaF5ib)sz-xb*yBbtgw#D?D#sAHS;6Gc-|~ zCVd9{P@XIlPWa%l*75DzzL)cj*@(=r9#e$cC5isAh8!`N_#pKnOezdteZ|m=MJ>Br z3U1JY`|8~G-2I3XntRLgPNkMet)++*LBk7^Bg?mQD+M|?f9|BUqEZ~`yokUaiNM`w zpST>595p+&y(uQTVaDPnt{&~r2k&(n{Vn4$92ocZ$cevdlPcr+iurmO)%laJOZC8EGMi(P35 zkY)UmHpWO$H{#+1>_^sJ(LB`xM{GXfG5JqnepC~_USm(Yf=<^Z_Jjucm z!&GSsqsNWaxKz}? zdETu_1h#oN*@#FJFaHsY1i~*gN&yZy7;Rkte`22bA~uV_-VOZkwgdRjp!;v$v|R|T zfymTbVN&pscb?WPa7b!FwNXn@NLB3Q^Et$y3Y(1;ES9n{P(L#d#76Y&kKn2@8&1xH z&H<>Nrr|R57NTk{Z7sEI=WF>Ocg^(GUcqGkGlN-3vgpFgGRJ)Y8v985jYq{AwnE zanU96*i7Y|%OVN8a=cXG)M-Ox&2#r{)v@l2LDj2UfkfI-QZjCu+DE#a!4wc;D5qal z{JSgn2Hpc*<7O2`~9`b2()6nQ~(78qQ{)9h1_9+~24hs=* zbS^JUJY_L?nW@?aUIM6w%J_OCS7RS2qD$toyxHJb@<)$bUt3;w$v)nu*5!%4{|>H3 zUi#kY6&3Yx|9T;2ZSiKIDQ?heal@zUoc)U-bc^Co?cT3hsT3|CC620*TD{k__kRhq zl4|3Dn|OJXhea4r=sx_+ZWaQ`lnYe|@UF$Vuw`^uI`ooqoBtD{Im;7SAAauJd!}QB zIhLBj*GCm%pgXRCs_F)4TdjT>z0DLZBVmBUiHxt(bPG>pr2@Hn1fv${WEZu;KaWuM z+C$rCtK{cO{`rCR@!T^dK`R80tm}yZJk!;}5Mm)f5EP!%F#7?NtB17zgI(c&_XgdW zGNd;t=o0H3NZzkW3i{l32W)>Z6U zknrn654$;GKGRv0RYA$1Uj^`WMvp;4h(^o0q8o#(PeEEPN(A6E8L`I+n8}l2sI%A( zpr@KRc#T7S0j*~kmonx*479H1fd7nQ{krUZ7lkq1GI z-#u>40Q^lat(H-uGFn`p2?^KNqHST%bE`D*dwa*h#KjfeGD1S39bVuNN6X>i=>!fI z;D z-`Y<6mR`&n%q<1+b3~d+ar@$%r5q(#&jWxnD#d*&)COQpKjeo`?9BovvS60d!8VG< zcPc;sEa*HxrvCy(R4*!;j%E*0k0tSZ1M>Zi81ro)E33HYI?Hw6vI*eS{znYn6)V_) zMnCE#eav9GPR%y~eZfz4-KFMNR@^Jz%|{vP<6%YgeP#Y5$;|%(NW=GS zm(iPMkv{$Btny+pTJbbSmH5p)PxliT4Opwp6*)d;&!aRo1-X)Ez>Hnl7a;_I5B0sj za%^KA?;)0lKTvc0-OefH*?#ToSH+63l?`O~)Q?3du6uK*_Uzm+`Rc2B&31m~#$9aj zi%>xTFkG2GQ7?4yT8HIK9|?bcoD&TAWxK&J%i_glEC9MWlA@K*pcux znxY#2V%~th^G;~=C}?GQt-;{seqj?Ob<cEm>{9DEjyM|4Y0ud^|K#AozT2Q{_(9&bzYei`^9p8iM3rTi+Olwa zSwL5${=Ii+L)VO(V2nk;+3a^%3M19V9QZVK|+gglEB~F}$v#JY0)b^m>C}H6wso ze?Bj)^gG3#izKf~ou?q3K`9%#5y<(Ph4o+Y^-y#2dh0Rtg7f6Sj(e_Pl??M5CTe55 z;^Sn|FAp&OBP6h)FH!W8F$JGEN`bTh6xm!sPxS!6ygU95+PY16J(_a5py8{4sh+jf_j=Co=#aytf#XZl80AS$xv{ zg6{L%=zNUN3JawC-=+VaY6+yFaXV$eAq(t~Oq*P?EQo zs>pC$ZS&*sO)lq-;sXa_V^MJ?u8m8>>K$C)9t3_=w24yNv3dW8+fD{S3xj8x!FKDWpQsDx&tiq)kw+&l$i)ofyhmygAn%g236Ig8 z-gW-Z<9+>4##^Hq)9DXu$58l3y2RMi$@mQ~d2OJggkOsGk83<0zB$esi{aH44=5UK z1I65%O`+kUt@25q$E1EJW0jB)yPKKgGF05_SwiITegcoW>d|^XF}hH>U=C-jpTp#j zRFvmkpqZ+C%Mtu~Ytqo$Q#uLb`sjE0b)ukbAL&6^e*opP=6 zk#5&Ju7vEoFE7zk8X6nF7F{0#1EWri`C(SEwb+!b_NB*rye5~0RM1C|$zDDrF>2U8 z@an19|Z zRQJYI!MA_+KUGTD;&jp?*0a>+D*#B)4uI}^=czfQZw+ML&SDYqVI7QgWhTe19l>yN8)v&~Vg-9SIVoVmMvJGt?8 z>SWep{e>K39GJV9<~EOv`9Qan;+Je4JUJD5?Y$1alPXLng8q#D`N$Lh*1$Ni-s*Pc z3gQJ*?&7&dipHRsZtHRMj-B?vpckt!IZ*APYt|26Xw67~_Oyq19u7mhu9Vwz}QQu3@$W zR47H%Y+lhjYQ0gA%XU_dV3|f(m%CvS8Kq58&_-na6>=qBUK!g3`83gd%E? zc+Wsm(pr{pf!S$>pH#0kGxn+-N^vjAjd+xeRdT;U)NB9XFd@*7#NN&|?CbLhF_2ak z5vv>f)=O$8J2%#4e)VZ*6OK!fN6L+tS1Tcr;E`LEH zoF+U+f<3B*>M{ZV^lU;T%)jFi(ED>YbMh&za>WSi%=}=YkCh6-^Gj!g*4sCTG|S>@ zkjeOy`!fBu8{EGY9dX6gX+mUt{S*7nPw@;2m7x+Dyf8cc+I0e zlfJ*erFn=RP7lQAft@*NSB(Y4G>uc6PExHPRZy>^+g6N9{ZL5&PmXa4Kl|V>N{7gS z_mxiv1tkEdZ2soPMS0Rl&@40EoaNCzO| z$NCu&SMl_CLc;h*Fjt_k+~QD#0jk!uC!Az_J|g>`coZnLG6H?g>A?&>_{lFE{*=_; zW$lZpzX2luI#_e?NZS;JH}I@kaJl5tP}x=XaN#1%LbTF-4)bml#@Xo1tc z--AB(v(xqf9{c&2e|rxugD2vUL9X&N%4wl-ePcdhcnwY6)&2Lnfh8nw_5SvOb9ut# z8ps2*mQ;@@kvBe<_>>KW>^_;@ONzoDkB&A?BxgOKl*kA^3^(56K0*>dr!CUja*z|c z=@WhkboYLj+dF?QTJwnv1YG%sOQc=8a_k#k_$nujpS+6;k=3X0|L4|?NpDAPh#A(N z#=hmpMuv$-5fXe(lJfyNS`2;)b_$s5-TneskFwW?J?U~HtikvT5w-=g$$srkPa(oo z&|7{Yu-38 zY`x?wJBTst0N)jGeoyBXE{^>=GdDCLr`*0S=7ax%)+b&rG=2xt(JOxTHJKx0Hwo^e z4~Epf_H}2TXizM)@LM8=St%xmuV|{%~*hYc2MK;_INFUcYnBi-D^zo z?}7}&ysOJ=>+Bdd|){d%ouR#->+woOg%^i|EU!6)8!b>6`TT_3kcUiP*6^|Ze{ zV_p5Zq;l)dEEpFEIM_gu`X4RMR6%Gxjq`i3l!%WMZ7hMS z3)G?80P%@K@oT&NW9dirf-iI7o~=uW@c`hVCu8339y#R58L}P++aD5p1&@;M1j+7n zuVXNj&co{LqLxW$@2%fJ-0jmW&xn2L+0QK1fX^ zy#bI8@HSin2sNao{QQ{dwy*L?y>u4g9YG*B3FEb(v=vRPjvaMSA0?WwG{>N!Vg@j}MnM-#G}>O`$IB7DeT>Hx-~6aZ(GoVXU( zf_NW=388JRT$#mJJjDbJjk@<&2xW(S9$f)ugZJ&B+Y9v>9_*KbSlGniwK_5O$L=UmfVIoMId$6YkR34p?sDvx zy=P#P%r@>iB2cQDA~t}kMisDw#Szkdf`+Wf<%t^*-}=DF96|HY8oE%H%CiknaEMFc!v=%KlGHOM_KzY;G^z;wFgNVyv!j;#@~Jq6R}C2cCT0aM*3aP z5A>ew`rhpGpf#?%=rVcsxr_u#3T#v2Ed+v2o^}fVx-8!us-s1iybU-_okGurN6GEKA^FG?*dnDP^NWO*)>3-TLl4Cbp^kIfg zo__NIH4^$itW2WBj-s<|x>4^me$Bl36JH->QdS=vvIYmL_2H4GIBu(Dsu*qQ4eaMk zkYyOi<+rTZG_ngL0Ty{t4N~=`Toiq28L#BEXZc#?1hxnCaD9)6E|296hymT8Y3`%% zStaN7?*Qe}fS4yANW6@Syaiqlwf6u_mpTA_L{u!5bwF=E1r~%8i&-SA0bq1jL<5Ne zB%OT$m;2^jaOktk&lfYPwOfG^vq^!|3H=9B3%GkR z4_8+!G(<9Un^692{J{54{rQAzk<{J;R!r2IEV?)9^6%`Ff1vKd9s-vZ&?sQ^oQG7Y zB;5Vxz=MAtTpDLK#v~!sGvRSe5Hi%4HgWTKcbxtbQLrTM`+cWq|4<~M<`h#@d(YDu zQd>_yMA-T{i4|t3^xi5qg0}a5bxPjs225!i$7Pj!VgK;Ne%rv_T>IFRmUl`0F&+mh zzo>o#TK%<9@cET&2L4vrT9BX@!ltwl(=k%RMISb$8DIurbknN1hHBrDUJR_+jeO$q z?XPKQ4Sdk%o&BR=8X@6DZ-OqBzXJ>+g=*LZX0m3NE{sR# zBU&%&9zRsjQo+>(Tp6FYZjFVvZ377OAI|=jm zKW6utMNmC2A2Ml&L3ELh)W60iEdj8_dHGOkEF(bn#&qdU173pyz?#k^@{VqV?3+7M zv)poz0#0I(+QOT|F#Sk;Usy=dN9Q1FeF^cF^8I*7$XP{tz37!SpB$AtyDrDH|M4*F z%smy5S5l56DUK%slT2hOTS3;fhe+Eyd@gLUxTuVR*uze-&Pi-V@>wu2x+{n@?DzgB zuq8?vcGZ9#93q$c1bL~_x>UAs3}U-Jfi5KXYhep94_scHVAud`a}SsBEYv5DPe2+t z={dI9*Q6RPV&^z4v+uZ0{rFCi*a|eB8xBNsN;Q7&0#pauk8?~_XN9h#i$*!*y`G>C zt{$fBQAj&1MYYOPeGQ{>Y1p?%H!>OHb)tpB23(z(n4C=^YM?x6y)Xg;|E>pcs{ME# zjFq3g`RU3Ti~JKB%a0p)U|QoOd|FQ0J&*!k>O1|K>*RzHwrqtz_yJe6*n+NPeSECP zD#d2<^yGS5{o8!4@C!;DJQwuTg#|i5ulrX?K&|N07lu2&ZKP9R`M^33I53j0(czI| z0@tbDD>5rFn2;gW=U`jP8KACnS7+VAeKwl0Z}uRP zXpGpu*kEcJ4L;(&x~hJtx%h~^Xr&)}K7?wqj<0D)2{tlf%NcJG5){|Ft~IK^?4$RN zvwAGy{Xju^O2cLyY>}x}7JH)!EZ*POKUwWQ8Ma{*u_y->df@>*mXYcO1Siy11O9;I6F+8D3NH34s5!fJ2L zfzx}L-CY!oXj~;L^gd6~Ql0ram25yFZ~^S?4C#DEB%eS#PE@!dkdLwI>mhy!2M5Ae zRWWHBXQ8G=clfVj)IVcZ+2j|K_^YN>QNh7;^qwnD|F<{NySKOiaK?B(^g*cWJZ@-aFZ$Hn6q~k=z z$D)-U=QM1_ySDdln+iK$%}Xe)2T3}as|8E84RJQ^Gw<~fJ$*1sP~!IX9m~_ZY)Ie+ zRs8tr)WNd&=870#YtmhH;;anPw1v=D9x{-q^O=m%EW+sI2pS_iNUnRlpQ}&Zd}?VQ z#92A}zy;`aQ8Y$S;(Gj9RxP?)^C3}exr@@GxqEIAe05Bek7DIc!03TrNEsfMbv{*_ zmHp^`i}>OD4GcSL92(9`35v>3Aq^WCpIU|A$}m$8a=_lNXZ#(+W} zgyPq6fo*IHAVn&p3#=$B_3t=N_CrYJpau26*+(E8ELpTJ(P$pk);oB+@)y%RA%7?T zX8#HLx?y@be~u4336BK-!)#c4J);<07a%}|&1u4ent=v>K%AvJ4I(0{FK6;sukD}rpuJ0KyO zD;Ouce2^L7`C&tCF(|b7v1dsq%sS1dwAKSjvtssqE<9;OtP-EUX+q3cPj4Hg8z~T- z$Ln){8$mp%U=vN@q?+W_lqKmHW_WwF$f>*098rXr*$sKEb0rf3Pctp*HC3yNI}s4m!dCZB^@o2buD>t=H;`fX%+hicA?(X><# zDG9x-K!?bKxanV3VZiX;I*6X$04*HA-TdV_`yz;qE6TkwdIV?laPBcvl)uUOKA`fSJHyunKi-rpF}I{5Rlc)BMALx0ow ztDzJh(!tZHmy2F{OAkujh!ok=ZvFdj^)eGO;QccfLt>?v2AIEEtETQ|^#gMIKs^Iw z(x(qpH@C=mAt7J-#LYp}sQM`Ba6%^U^_@}su-UD@8@l;b@H+9LmYm~MWP%x-$^=gve|FbTK>?=<~NJa%X^#l;Ww#-@Hwn-N2KO1E$kCRjF8Wl#h&!$pZ6*nmYqcY9dL!J;!O>A zRLb^j9|PWwK3$rW1um&9Fap;91?Y7CWR#2!(LE%+jp+aQ_Zc7OTF^90H8$_;#>p54shw*VoK!= zj`=}QIr1pj6k7H4&UK!kHgVZ;T(IGsdOv08OSD^0NyceCV~TQ**3+sQ|LEuk3bWb^ zdTzqt#|Vp_f}sX$#sqWu0gIEw=gz7Ya6j{XLKT_o&veac$o@e8b{qs`0JIOIvvi+2 zVJWzAjJ@6k`hy3^D%4h1dnWEJ03P%B57_|=(XgM))RG`l86 zZMnjW+RLYtp>|wXe{1jGrw%N|ngsuxx3K+_8@3zpweRLL^I^pNbog9CItz$60Jlaz zJ}Iw!vlk+q&WT1xPr!7DZjNaCrz4$Yp6?hx&s+woL@gm3$eds|Wg?amRAe|ui9NAh z#>(2fxdH~xhvc*2`rD*+yN|2&fDW1^*j}&mR4{21DDCWp)G>GdCdQ~kr;7*NlRv(4 zi3HH(6qE+cZCvju;RexJ($760-5wD2;&>;LG54CHe=fimA7KHibk0Q&A*n27D;v3R z4l1g&EGzD^@MCU!v1KtQcmOpr@vuJ;M=8=&(uaYaSrzaOBM0CqXclUEAePkAX3wbv zHf8~+|Bw01W(>7{+Z5bVa>gnZqpJVMEXTsT*@eNn0Co;G`r`BcJ29I4D7EiK=NXh1 zNptf@x51b1L^{s^=GqZt9v6o_C+*O`CKd&@ zzg^g$Ghw(eu9nbEeBNShz@KlB=FU58zIUEoiVg)IE5Dxx;`?)y)(7YsHag=qX#aXy zQl1pV`Wx}i)AWA7?0cRdH*#K7>l7TSQL)hi)-zfKf$38OW`5;d|9V(AKJo>|D#&G> zr5_6M&9R|e16Gi+Y?Yi%TTRsxYF2HbDvdwGj}^Tc8Hv@{wTny#TR_|w)sA>dKgGzuJbobg@%a*ok=?#X65CqbOZuv+)dV;+PKIP1mPf(u9dDl9bG!6kC4aUIY*A zLub!Zc8ybuq)Q?Vb)lg}H8bbkhD!9_LA@p zyOK{QJ4d}xlhge5kJNFBkG7_7mDA_LokV3|4#x*Z9(Y-u1 z*cf(t?jKYh9N$`6T^;e#y5rY*Qokh3>wxAJX4Cp`=~v_Ga4YM5w~_ZlUaLRT7|{I} z%okA42$IpEREXVouYa3ft@9pU*KZ*h(&ICa>;rw46c2gHO`Oh;gd4+X9U)O7cM0oQmoOdyef6kzLLX1Prn2@w< zG4vJ|vUJyvDE2%&1cUxHSXgohf)WMCo#Cp&kHV*Cb2IbNbV z5+^_82)ZRRrS8Sk*|P+x6Tcr3vu_dIjoCc-uL4WQiFG4)L8VfHA(8KHw}+r6+FwIZ zo2WFx-_IX&v_Tf}tq)c+c01QDhQ%xww{5cd@7}y?`b2N)!uHdW__&Xi$G@e%{QJ7w z!i-|{)0>&}^0bTAWd@j_FSU&u>uiF{`pC#$j#A4}i#p-1&qto~2~T1|fZ$Hwvq zB~0%^e}kV}i=WLsPfyu@?%c5!_e0WFQJ0}myiO#`-nZ*NN1a~I+XU>rU}*Su4OwI& zX<$KSZ@vc+SejTT5-&^ma*%9B)%i&HTpRr$*2o`}%DMCULSHpMo(3KOQ75c$1Hp@&_#b1p&7a`jwp*0sZ_@G;V6Z>oXj_IA{(QI1C;(W42s`Ol)$ z*YLN9KPIrlh@N_f!F8F^*iH92#7I3uB#W81r|lzm!BikyyAD7L5MSOEkfE^E*aIK7Y=B&ZR;`G(PjT zR{CRh6aEv~>$i?-t0;&>F$F(M)WRXy*DwKj~5uo z1@LKUk*B!z9hdnTtk)maORY~_w}*|g(6Y5FT5fU7+W+!EAmPXSE56Cwe|flttre=+ z<{{DPIH9w0F}*dB4;r~KJvcHOkU7A5ER@=(9`6%>d`8*(@U%p09wxf6jeYp(60)b+ zJDXb1y%rmDujUQ&X7mQN_@VpMK7rw3X5?*Q!d3i-rVH%Y`aO3hrL;Ue2aI(_aC4N$C8Vg0 z*tq(Ub+_yU*6%l}ZZ95cRtby+*0DbKmarcP}RR{+YNxc?uP9Fj9Rq`T8L7|Q=6YRk& zH+x>k^GlrKDKhHSF zbqZ!T`y()eJyPHPWK0Z~9IJP>8##Tyu810Og&V70o*xSEn(s5fc7w&9dp0<_Pl+vO z5j-WBddf%@Y~MW6=8raZIMJtrD7$eIopi-1N7XIU9uu;$z!2iRG2Gp0mVc5dIie@r>1|osKS1)${jR?(LNUR9H15 zEs!_B)7FrC`BOau-6#t2PQz?mk56Nnf3gO}v{>K#67!jDhgle1#7~r-95WT!P8McyKRzO%V(efL&dF!ZP}MsR=+Dl` zQ|_!NHrJY5A-eDrH9FQSF9ZI9w4a*cWE9#zP=1SOz)YGvqFs?L%jr4?5q>@AV+m7o zl>lpanuTm*lxIkN#r0LM-<7yND8v$1n}z^C_QdK7QfGT!G2a3!no~vs@;k-t#3uNKYae^=Iv5 zzcmnz$e#IhypJ(1n_$LjWUYKWhfkJYRAjawt|wuI*I!YgOf?9ppy-?U5a~Mi%0IEK zCIjBL!`UP>oOA89hd$qqd1LX1`{_b>MdemxsTCCf04O-U;@63H}92O*K*DQDCzq! zrWnpU%&)(KOCvlAl0Y?Dv?}ABR}7q;|Esl-mvFdBB)e^LqDiNWNN&1)F~e=@N4;NX zlg^@AW>zwyhj`JS3C-HJBdza$98E|*ekV@`t-OYJ7viDkEV>FEp{ZdJSG-MQhSlg- zAIo@qs^VE(=b)r@j+Q1$DF@6DZJ*wBtslq)c1K|rV~Tt_#9}55xsUiIuvw2AFo^KS zB<<1u-QLg&JYnn{-L}vn@)~}G%Ki?;2W!+!C`uePnty2d!^JZ~0N>Xa-umQ3Tj%4m zoB}YBe2U<^G(P(rjjIo+LJI&$L!**(YI6I*3dxRd^CSpu!6*K!ob_5a311Q$=sY=c z+OA4Z(U&qb@MT63#2N{0YEe?(<9Q7R#EObZ?2_~?oU<(Jk@1hgprv}^QYI~{FD&3v zb|buq-9v!w?>#2 z_eG`9bi@|L5tdM+rY&dRWEp&{qV-_s`&%cibV0N$E1F)MriWpTlOVYo4Y;XuI2Li^}{UKPsdAx^EFJk{#=} zishfsm>Z*P73V_)<`7tfMJP*n*LMU2N%uPHd+>OXj3^GfvXbzYDG&3zlQl2#-_J%a z3xwJBm@w>Ub0m0e@tSUEWymc=k&!QT+w~eT*j~j$$d{UBou^Rs%NXi;qEFBs%~@2K zX)uY^V3mn{hN)hyzl`>uT_Sw+5KP}}x_AO(a<3g6BM17#Hyq+_?o&+vpA}=>*vyz~ zDT}tHdJ?egiwW|c{%I~RRXU0g7Iyx;&T>*gU-@1-^g9KJ=}CmAv)f&iw`QzzL^{vO zb3_@%T!NaHJy0j%R=@SZqoWz5UUA6`k7^}jbT#rU{6CZP4KKnCnRnWUbO*RR{_-%w z1L%t+j4dZ9c|P5I#U)H7mEV(K{aS-s;E|Qpa!j&)*!98@DK645&*&O`fM6%7d+ncu zoWEhbe6= zSG`VCz4-QQ*WS+cpUJXzw%b|TDn3#v$1Td6S8*{f)m!`$1g>n!aK~y0DmVQY=&?t; zeIpOtgdi*SCT1qqjjvV*Xg8LvStaA>va~hjF-%*LaHk1H_^Y^scLp6{BI113>xZY zEDDcjl`1^IF?%^{g#|{Jm$M+qw9Lakkn2%_Is((ba#X<6Q)fL}*mE-?rm3W8+}jK$U*yLF zB-;3Lc#DtSpU-Y=a`vKr)HoivsCEHo2!_38RwD}WUfN-s^qqTO4z?V`Kj)KLb31N> z=Vr7$JBqF6;N!C(wYw5AoHgpBF4TQ7J&U8!n*QG4TzY_W35w=Nq21T7Jzx#?9eQ`~ zm#-TODOWwfMUeZgWQ*3nJ^VSo(87u%l8O9Kms!0}y!JnNf1G(^o)@yo-#Ap5VgF4< zj9adm&ON>`Tss{awD+fbT`KpTee(|Z0JiwktV5g4z$ou%AU^}!} zMtDz82X}{qujZOmh~JkPeWL@Ub>?1E_w+x4+zp&(%fIs#d+hY9&cE_g2&&olPu=;~ z@;iCt%=`SWU@N88MS3ryh;JR#b@=Z<%2H_gj>sILS?5iTawyA3xe_0Qu%K&-3LzR5 zN=^-+5-9?A?IgPf6AVQgD?()UgEb3^k2}s-u#)j3^xkI(*!j=Z9*-OG(C6cd?py7P z5=v&CdcMQ&@NlBTflEbNRzudw3_-QB-nx1RRWYbQH1shy=N+rq+hSv)aZJ%Q`y{Y| zdv;!4k8{$jgwJ{x=LdHHYr5TxbY^~PWnw6M{`k+g3Do!t;Wx7Hw(LJN@D<5H zLa3{cRC#=Pn@|$5IZTU}iu{3m@6nTS)=0vavswMUGC1+xzgLfxF<)-l^-jd>KiL#P z)%&N@7?YOX$cNgO%Qlh^;DisUWj0C^&a1Yvf>P8!S^WqudhMfu1EZghtgX= zh(08+R|eOfJ~K4g$!5PGJFWsldEE9*ZG-wL(ZfMtjsCms_6F+_cNFForlrH5y?e*W z*TLoCPUYFl(0a+Q#8E_|ilc1^!OkG9uC`4MprQ2zvLLz9l~W zE(RNKzIQKD|IP;W-rhjq@Lnx!yx2-5QlIyFv1MuJi&N`i&-~cxu<>wg9KX}4-1#@f zWxux0R=tKPscu2o12e*TR{?4wy!`pkqRGp&v>Nw;IL8;~!H=FyQod$s`QK0tRk)sO zn5@$D=l*zCo67^&EfWz;{ZDZi#Gfl&zVv}7^>SCM6Y~hme+gDBet3y>ivB<1RgZZLL{BNonua zJ{xAxZd2X~rQ$z{8?p967{|Kmt1t~ZB>Z+T((NnRcL*sEzj=Ffn7`-#;zPLoiAIUN zaPX&|!~4p^<#k#f_=)I&SPel|H9E>qx}x`&aq9^>HRo(qEbK2R1J=hg&2ia*N7wzB z39!FEVh*g0%Ug}t1>$}(yn5i=q1(_e-^KKy)k)waxXGki?dwh30VZV-;#KoV5WV;*Gb0R zGB8HqH%F?^vx@=EYYI=8cIB&i7G^(fEtFS}F1=XB**3;x@?mf&zCcdz^XK(IP zGyZ2NrFh24s3GS%yi>f4xnPsyWfpOiQbkV~62Ym=h4G|O3Ym6jB-AuZ-Iw`Z~k`qYdbyNkS0#WKw^e#jQ z&Hkxo5*SoV=wF{$*Fx5_K+5ic1>SCD<eaYPf;-wA_#1E6@AYRPyWCJm0^H zvX!-}46^=%rVCp_+zyYAOQBZ$&Vl*CZgVrI_qNuYyP(1|ifHQtJIe0$CZbv;;q>DY zJ2_n)heEWD9#V-1e^&rK=BOpOsUugV?gS>xQ_rYiw&n&-DaB@JdWkh>E2v=jR(=&; z^xBW164ACyN>6a+orwl5jqcE9^OC}x$c%|~D!Uuo-9y#mjhiFJ;nH5C)#HHB-u_~e zpi)s(^l;MZB_C7**JG}f+1GE<`=;*mDL?!pquk8&i}bh-wnOk_1ak7tWoA}Z(1<%A zeLghG+JgDu6)q@B*N$sF%&WK4>`qR^dN!27T&EQqIcC$}{`73$^uc zY+hF~;5b0V@Bl z*TBC7UyYh2d!xvLPH{Y)^a_U#xav+#-5@}SbflpO3$RmN=k}7wV}#d(!KB}l=PmJc zPz-{pVya4QM$|}J96{YJ7F|D5p`$1>s0=7OuwW5azO6^^JV@zblbUDZ8kDtSy-qOJeqvc_!`Gn^seSR+fDn^h+ zQGi?b%*rk~R5`xg4LxtG&dA-qPo`9#z&>&e)q8nO=c#@8;7*J8ye!5z&VklPR!id$ z8QJjr=!^>B(IQ{v9|971wH5<=s6Koofpd%gO%5z3)2=%=YX4Kw!>HW2N;K&@ zvL7nKG&A1NDp0?Qa??X)-ku0ulP7YI-D9qQALdJY_fvk|s#JUP&ro==`6^DuRuUFq z?Kk^;#!<;cc%BkF_ib|35j>)=)7G&Z<%>CcVLO$R1A5!&zqhJf%P5~#1Rj=UR(qCy zYw+z0jBveu^wtXE!nfokEwZol$6QhQ>kbn)>Qq=ATQE1q> zTkJ8-hVR;Kd=karHg8wTOQ*AU?}}1CNC_&c6=?8@j{G54aAKaE?(7>5`c&eRUj7S5 z*Ef7HI~;V|?B_jyKdBx{jgdr{VCy_8tROE zk4MT!jd#e8P;Zqv5tYt#XViTClma>r(z|64rj-H*F^?%T`8VU*?cj4Wpw{FtERH+B z{g8DOGW<>_mAOeOvKnN0*mzS!n10S=#FnJrDSzogI5bdrg|>Sw87afJoG2JI}evF0{6CQVY{QLDvnKWsbzIEVi?}`Zwt(( zVW5LbrPW^-5K)a9$Tao&o;7of&;-AT<{di5LDX`fvO+whj&PcRzlP1H16`BoB z^!YXaJ+obVq86o1y$;PU*3J7UTH03Bn{KW@d6bF|3o6%YsC%`YZ>8r zI1l=9GVW>44D`wK`HrV8m_7G;1LP?ei4HIJ5tBn>%p^EL#@f1=hXaz8n$Q5!MmFMz z(v`{=OZ@4g?E#K=uKadoEVz1;{5fXxt}a?v^N%pbQc3=*vM$jDxCs?EIsptr1jCyb zULgu;jvEsCS@A8hGzI%!x9_CSNzW@35y&h`Eg{-ZM3H0G{6bJpKLXP!kQJ-FDlZ}1 zp6YrjPI*5#kgy&q@vTs_6u`4Z-~D0;J@>5tH#>_?byW3uBx=L_mFZ}?dc$lrP@Ffc zMCF5X<4w2Px-v!jn0k>b*^)A<=5Uij1Lms6MTy1XNtg~>FO#sKD#mT&}R#@oAheaH^Kn?X|!(IQ6dBr#TLM*=jAgrwGfi0eeN?c>)&I{(AgODAqOyA&VIx z$fLl02mH`)kqC<$Q>2V@9o^#B!kR*>hFG$}bmZN!;}GDJi~M8yDhR3P=W1nqy-Azh z^zBLc{`LE(@vbcuo1V;qv`lj&Z7%eiiu~O52*jFEMpl=X%DB6R2rB#2lWZyB|U$luz#$HL$diS_z`{WV96O z)YfVPbGb`1hupT@G)Ym2n-<#YJ>75z`|0I8pAc5~qNGg%1kNKiOt7`>cNhC-3_rSO z{mu47^i2buqd7HoBCZiRUaBLmbiq_FT8LJOR_qr*rcg|j;}d7!;UWg?9%F?s9ol*D zKfWUsW?vt)SnE$)8*jRNh{ToncbxVv{Ljz$VKYlsNBUyF!MGnqDLm)37Yw@J-rz`C z`PmBo-Qs8s?c0OzDUC2CU33#wS!HO__lsn>V;2la)Ew7Mf8XQ(u35t>gj9@WCqkwK z>Wmt+*ScQ)LJxwHz1nZ)a-CM2;IbhoucP0hx_uwVj&&337)fJx{~f_tk=VU1xXn&t z@JBuRZGF~3|H~s8{*K$tfT|jB(CENy`tW!P@imkGg$4H*^5G=%*@u!Z*Ok#$`=L)i zysPf|@j~khzowtGefqIvZP4lS=sDsM}7;4M|#OlB3-ExZfeEjD--*55KeSPlJqVOTu1!S$ZmmzP?DBg7YJ##gce&}Q>9847SyE%j$ zBujmDcx*?YNHtnTu=ED;2I3xutZvScGUB9%1N272vXZ?V`rO zvq2;L0_I>E^kCAFsd!6DXS^k_Fsg@?&>FaIEv~C0YE|QqNXCKO|%HcslbdRd6S?<@b=S&rI4$L7?=J zs{dyoy3?hJgTk9%G@x_%VTl|pj?Dt#pz*8@SritLIr*SS(hEd0Mz9Lu$$hNR! z-3d+-&jXkS1SF{9W2ST4VOXkjgoRK#5=M$9>LD!ZpDf=!`ma?mf$gv($2OrKBqwJO zlbOu()djTutc7+R!ukBJX!gCE?Gh2!!2(bS$ot;~u+;vog?yYyF> zDtQ-&FPGd31$!yxqd*M6M{I`~XV^ycX(UIe0C%kFCkX-h^Q~UIhD+@2X7Ss((_`Py z$Z7fGgCxXKp3mJ9IT?Sb;#!)hhBnN8@~N7{*I@YFPXnI^T&%C8x$aLo3PTs1u~iGu zRIThIH}ZS!lKK3ODWseTcuM(6iMNbt62Q`?;hmI!k%t4_Rv-B|S+{kJ{Srs;l?`9L zyAj8Jldf0`S4x)9)eHF9hLW;DXn390ab&Bs@x17CWH{)wK@3ZJ@-UVa9sXF&0j_?l zZ4FzK4Db^r70kawYC#DHr%GzfIqAU@q4A)C$k1?asrCv5n}UcMymifM?1LIWM_Jvo zi$e5=hOB>88|;j4j`w=1%kfKE2O{l5XI`?-itL@S)N5S^+ij18{{fxR)Nc475HmP5 z;v+zlUgNk7tu`T0soh? z0&mavnV7xQoty3TQxukQsrT#rLa@hi zbiDQ1@D{}Stq?MyzarT8vRrYKHHNyct6tQufD&e2@)^NSdbv+YWMtLvc9^IQZuF8$ zyc1w~4)TLMA>ODs>q)s3nU44-1k&eX8 z2@p77#}Ks<(^5@~NhiOS5_`Xh0?DI&wTd%O&qL%Ysf-PwuAB8Yp{>^x<12?e2%d_7 zr_DG3_`xSHmEj3}A0ZZ40}0edRGcG{+1#!;I=)uD<8QAAZI_Q^ba-}h>z zx8NQDVAzStl#3Gn-D;khwjcm&I_UPyDtDY4Owm1`gPjNJb{Ql(hm zTtqD>yOW?n z45EvU01<M9Q{3B7g7{J$fwHgDVjZ+XVYWBF(Euup>cj8Z14NsVw zKOSy`6Hb#y%Al8*!Y)|4(oNVhqSfE4OHBDuAHEE!W?djNGY4VG{AjTx3H6j#FdRrv zV}HCHsN#z$xTDQ~`YDRUZk44p!la^%BS5l5w>uy!@hI-NCGPv3T(cdCf0`3AIzC)kd<*U)^6!O2cxEs_9i$Uoe&z^V2$`@?~|-vln~ z&_6ZI^5?1^SREkH!W~2M_dyfSM1lV0#Ax+Ql>lsKt}tgdQ!rtu)V9LQ+w1$gXvc!C zja@uj-DRsCOCI`TN$oXL+p81Pvw32Ik?TFkZ?7%l9S=I(x1@CwT753u0S5~%%aS%4++qBldhwrbV;$W;rV21OeX7qNy7eiagWIBWqSH8JO>aKU z$YhEX?8@6a-`=i&F`}K7pOb#>G%YYbcBtHGJdOyKy}zP&>^Q@u3P5(}6u7d)4_bX2 z>ZXI}gJk4gna_*`)6sWyg2_eSzTr{%j%&1n_306cj=6VxNbHQb=T(Ef|H5JUKR9VWgzZ>Bi>C*-^%7SlV;wiO3!pi$Jr;1VVOg!i*WTkfA zKMi-wBqyiEeAg&O!6)gz;ESWj@dTi10x&XDu4KKKaZp5VQ&iA z>H5Lva4t85LF|a;8Co10{XoIJuD4bj^Uw3so1>R#r@n+PpfYV>kcfReZvZC-NNEsw z5K)$abUos&lRvf1{AK!f^iMNZ0#MO~?N*vLB`M4xXMAql_)33Mz?bAj<@p-z1 z1cH3@2BCYt;4n|^#xRUAct>qfbeeXJK3t6EX~LcLI2enQ(CBCn2x}$2o+I3$dY-@R zMj`one-H(r1l;4Or{)!95)OlV@>`<+xX8s`O{4{WLWYwhinOqV+X`ifA}KS_yZWHO z-jA1bazq@7uSHPvg!d-yahm*Ip<36@fiU7|@}+YCOOWV2xvlPcTZgs{Y`4|iKEmki7UmNL-M~kvS_;pxjumF&?4#i`$G4$0 zPL{|zF5FGzonZHl96Gj};uI&u%^D4#x(&&u<#HxV{FwPjJfB{E-d}6)2ur!9t$_)P zXk~vnW-VfSV-!Yel!oe;o4^qxmV)doGs{N3eEHIo7Q_yr!#1Zg1^2HyJlx_husjqR zTlx9P=WYT*DuVIfYH3o?MaQtkD(0`JT|GV7>MmWSH4`J%Uba3Ao}n*N_xL9b(#WD{ zTM^vm%c-nS922hJOkBnagUw{Ra+lknp8VA%?o7g#5iDvWbi*oYiq;Iw5-!s0JMolBlHb-l#%M{=1w~((!+$%?2af4osWpyyUr0eu@87+DyOaA*WqtH1rR^Y+rUVCCGR zN*<|}xfqZkf~VPs=OpgG=d@;^kdK_*T>&@XRe5K0qxA0F9k(sADb*zcZ*++ zG+gIilw@Qghi=H!`#RKkOYoCv4q#?roA-i0s})6zCo7e-c79i^d7Q6^dE|-1GorjAkj?c* zwJh}2|BlUiZKTWj<((i^KI+)1K>C^4nY$t*fYau%l*Muw#&3g(@D`Fbv3_Iu3lbcD z{#@86%BRzPf-By>E($LrxnY8uNVF#FZDiM%`{FN!Oat8(;|m;sP`CgcOTt>j$wj&i zT3qzkVwW)@VFy^+?{oHXeitPH6cyGe@rCk59W}q3ei9EMRT;01Z$(YGd&G0Q>7O^v z)STIUv*Q!-A4^-MUD&Ybc2(FRMEW1%#3|u^fCm_ae&L0)P(+!N4$(4C7)4Q_ibqe@ zjl&p~?gM`cE}U=J^BmPYy__c3C25%MeBII#k7bylH@@b{=y0GAhceUx0Nr^MZWXz= z`6XwQk$?MZnSI#m@2YFj+);a9^w8O%|7zD1@^D!>C!kQ%(6vX7vtZRYG5%X%I_ghT2_{dG3XE${Jv zcW)!-BsoDBw{Ag*1U@yKZ6w@pen>1zlTp$GQiR~$;>CX&z-Sux2!~7b(AWZ?=K`sB z>)et2{prBXsCKkK$>~QmV7fkbyEzEEG`wrV5BAK{ReQ%1~vwu zg?_4%cx!pr(LU+eenC?_Z{X=KzupIdDy^Xk%TamyQ&+g-^~1KD$3hF|Hx`Cp_?(@| z4*mmF{;Ls9mnBKNn~Rh!d84lPE|fo(77oH6idg8g&$u_NuB4_=m22XvPoX76OliOJo!I7mFz#PH*w8N}7irP`haQ6%m3y7AxNXtswF;*FA8`eHx_ z1X*n^wFVcTk1E(pHsB>KOU-ni(Q6#wIunkC5HE6!8rP+pO$NpJtjJ6qQza7ZH6cG4 z0Be#*0_PumW8c=Y<pY<$ftujY3h;0&pz5&_;CR?5d+?IzCPnwzbA)?Qvd05hPY`N6N`uchoaD|G+lh>IItUgwre0s~Akh6lJ!#m_oC4v_Tu0u=Ps z+3MJTGTij+x}bolqv2D3ul$ZVp!+?Ud=RJ}PQe}mnxXSl&dPX!ck|z%ChceEem#^i z-#=?CN#dg5O}V~E_$LJmZqRb>IZX1Pe|ZE8K%I-+q!-fvK|PsB$GQOd$v1a^K1RN4 z9gwy&pgUmc1ifOqsMNRC6>@+DfULq;^nB}`l|MjrWxOPmg0%UM*`bCnfRgyZZ8AtV z<)ROY5~gzQk+07WF~uxQGtb(-cmZNsj>0+J-X`zH*?Q-)h5(jNWa+l<_MZ%gDa`%zt4H9U?`j>!Pap)d0lJJn zp?!lpLmm|$xF@ZQa5GFEe$?i0yg*#!NtQC$i6Dg$0Sxuuso?~=)dch7D3 z(e2<`w`LA?#4C3I&*lF3IIY;!v?(G}rxUs}gq-!$xqkJJr_)b#?RJd|ZTt>QOvDBR zj+-Y|<3W54I5M_`etT-SL1;~(O&FqbN&YK}F*Bc-4qW8)!7Q>`3RbOBl%Zs`zh}nn zt!qi8zeq;!j_xx$w3&3I2U<*RgEbBeJ%&TCdi5p;X2N)Q%ZB5>rtnrzA zmp74c_|)3&n~_Kue)U(IgPlizUP6e=jRQp=V$x)QsB`Kv<$%tQ?I*ipXYVA5BOfmc z4Zd~MYr5X})pHaG=z5T^rO&L>s5tG4ii!hz%)3ozpBA71I}GUqlytItn_JCP=0>obUh~RO z%FfSRQ7#NH(0p!|hV8uA-t)~23?AR;?oDGfX`7Zf1b1#QlL$hjFZY%RM`hn!--S!z zUYl}R7*ng*Jzk#i4OZVhB87A~2Guy`2C zku810a~BM#)iQ>OL6i!OLOi)7|gB8@C=xF|m@QC2_j- zLN4hPX%W;wh*sXSn4X<#5kM}K6iLU9P!8Q5<>Fsl#}?mpQyg9Lj_s?VO^>I(2=*|W zP#X5*LRGG^>X4b4(_n=1SMtkexrM2(_}-?#O0ing_pK)tQex&ndT=Yr=L_X0HJ)3t zuC+_>?5+IIwD?qn<=3q9Gx26MqNo)t-6&<_vQZATel9WG0)LiFUvDms#&ZRG>cNzLv!uqhrU}bwAr@bAjSj5# zONOs}Vzw4=3y6L8dBfBSoF4+6Mt1mG=P!Z5-R0(g;2cXjhPKg}(Z04ZHxNI*PQdAK z6d!)`$t?W&)R!m1j#HyP%}NuxK);#fW4X!4pJ;;C5ib1t8^GXC5%1}{ z>K%@1hiS7x*{I#ghQZOmZ^XvkBnhMw)8mDdh~}@)7G^Wr3n(i#ja(dz&XwPJ6bOA) zRt6WbhTQ%7Kj$tC)irN}iYG$XpnGzWk04hH7b8l@N#o za8z}u%sbt~pn%D|KLk|jCKDeF*aDz)AIv!_kwH_JIiTmnwD@-K069jtGqM+e7zR{H zx7j#-Fy!;%WCh`CX)7^dQ^Le}KN+W>V=;j6*Qr;ExjFhBc|K&b&tIleJKob3raysi>H$4Wg14?13GzlLlbZ{F*s^K_y;@ z>=oB^yVUdaHAA?E8TlpU&@a~fE^5*d3G>t6)QbzR?vO8CaoW8R4K$mlU~c~b!DhiX z=2K?@iE~dU`(8g%X-apTEmi`v=Q6GkPn6UT0{YV`rER1PR##cc_-av%DSx=L)%;KL zsO6synI|hiDh8CncH#+tVr=3wPrNy^;v*~BNNCac@t$u$sYVd9TsL3#VuEmfPD?nI zOj}5trug8QNBXL)DjMy3K;re0CMT8{uQ^R_IowlZbh&i&Ac^lJhI+`>0WxH+!@>;)56+SGcct) zV;_7oSF1EUhR&eYz3bV*`ue>Oy@>}p?D|{I?>+|)>}C|2|0;Y46h42JkXu?3Z%TlM zOZn23D+*WRjG|l<`^wZ z;Zd%)bwMpEZd0EVc-~!%q#QSplHi?gXSPhw`wM?F^%8?$YmLaz(-=ftn04iVMjCzs z<%QT5=pi}XuvB8X{MUx^-dDKp(u!_z*Iy(}pY+i2i&P-L&-~VNe*WUraW`tJKUV20 zu?m3Agp)&6Cm9QJLtF%4E(SB>0pv6{9H?V48dr=4-(xB+M%I(Gxp0Ii4^RfyFKR}l zieR>dI^1c|!t&6Y`=q>>A(5{%iSCHlkYI<|2~4kYMhSOTy+XW1Y}_DKQbTIH40* z$A+N?*j>?#Eulm%vV=w&N1PB|M9g37wz@{=%nfrqo&^*xYQVCuRa|V@J1}lrb!YIh z+9i(P07WWZ+q2~&y|`m&a%+-v_8n^V^I@456sZ~+brg6!zE^ozMVj6Yoa@i;n&?SP zOa#Dj?Ju_r2~u&Va>AcaK1{huw=A_;rJV2pYMCQG?pH(11P_S`8vp~M&ygtIKM*#D zpju9HmVqjSN&1n1)PBYc+VvIA@~!%xIgau`*0- zhL+Yc0}ffuDq9NpINeu(=j-n#q(5}-VQt{K_q&ECKr$k@o~;ODs4G)IWcN;&LXd}p zYEdFdTy_m{4q3Fh&|eYcUG$&)P>KGpv2*<}4UjqCo6KW##%+6s! zl2p_WEv}!|%KL_HMhC!At+zPUjQlHHXSCwdX>=out&U7i#*3po)Mv%j_|F2r+`U3H zXsaS{dilAF4R+5~%?-F!HEsrcgk01o;37N2Yo3a%sW7m}Tkx#+?@l_BL2(MxVmxhmM?C+CJebu2|6i90!kWwjeK(dTCo@gk-`x80 z`1<=?TTxL_mVe@foGH*wdnrX7tpdvqxWBY<>9jKkaGQkAK8-1xSK#bm1;TF zxQSm%uCaP~5_q?_qCYL$b-oT1T$=Bw{wKCYc`hH?8NBwKN0M^s?<~zBjBA{lM65V7?+yPhOIJ+gj2XS3lW z;j33AZn;tj+}Det_c$PBbbYnJg!)A~ftRY^UU3T#r(5eITsIMLbdJ=1q(06E7x7f9|?3Qb&WVIDV9g~2P!69Nl8ChB2p#32NLPhZnSAd=@ZD z67e0f#+|KFP@dKx6oc1@W4R*SJ!N5g@;5{|B7P4`5kU z-YWsAKQc!G3a;DOC^RuaU$Y6yjoSi`0QiR98uO2TA`+c@qljsegI5EE5D16E#tSsl zCN%8Q8$JyIS{se_W-7jL__tHPj9BBFKIl_*8WXeGtphwCPW$6}i!MfPwk}K{xAd4r zxgLkPg15K@%(NC6@i`(DvTxl2Yx8jBy4maVJsbl!H!S8m|C!pHXCZ0(pmSO?f47a} z_I%d7o(RkbT8#v{+J{+<_#<4+S^e%S)$LGyKfKvChf1^W$jLOMmwRKq+gSMIKwUuC zkJ1B$vnMBej4wy^nog|#nx^b!2F<~0l|`QhtwvQ!Pj!J zTVjge4{~MOVUph-+j$I?91=P8j(G2;k)r<7Uwp3xLxb-NK2>Py?;-9Ju>`cs+#6m# zzU?oXHEU~Yp9S3KrCVL_f@FfO4XX0jtX~WCKULJPSF6;v+Yc^dsP8=24IkX&U}-L6 zY@Rx7?T#cZ3+JnJb;WGU7Y_>3`FRcDk8UCz5B(+7C+>? zW_HiQb)6`HP>olJ0>d&-=<#5AytcQSFGm8r)ol6Z(}r^O&{B4{OVqCoPE?a}F(3|> z!Q^;!i}x|Q&(FiMIkrRD3UR2{qsw8{GdM52<_JOCwkCejxF|zAry~s77zpECCuj(9nSOk?w$r*J`98KE}+|8erzm}WC*?~WmTBz49$)U(t0O^wE$f@cU-|LbzTU~fqAP? zLl`p}-LErP5rm1-1i3PA784+R&oxoBw zx#|tj>k{t#hi|WqxfYo^3p7bKkq$=Fz@SB$761uU3hQIJiS1%bPTUaU+AS9;%BV`FNDCcI1;VBdebg{ zC8;`@yV}3i0H=bCvE_hc{Hi_0IkV@_(M@tr%+}%PufiLuEWxXP>)ox&pRF%~YTfV) z!GRW_v_WDRHEPBlaFl!W8S(t$%nBWh7(L3LeM)WTm|%|+qH^*;X$v_)%BJT=?Zh{W zeF#f15dP(wpPjS;kW12eBSCnB+bk>9qwOg6h23L+ERd+2mIn?}*Y?DtWGAR*)9I>3xftG^i_R0*FZq-xONfD2IvOX+hMmRVE82;m>3*q&wi@=)+C4z)o zHxf+>#B@e!&I)kSRro4*MM2Vj8gX4|8&p}Nq3zAj#5<_^f8sKjB`=fCxKNsw`}0i>E^m}$@k-;6Na9JF1{pAdMI}8+Rpa$Uf%rrsoFVNVR~nPCSH29=SWpNpNa4pk4Jge2a*_)ecof z@Cc<0>%S~cwZ6N6o*I85F8D&z^qp4I)kx%llt^obP1N6(`ks@j!YM`P(IJBde<0)!FQB z@#L9T{NwI{tJ}pcSh67b5y-K92tgL7c_M18g5cfN+Ag3bFParP|IWTs>;HGwT*Y)R zxPxpGwSI&c2?%0G5Qm8brb!j;*Fk(cGx_*^83~XtZueNjCX##6nnK-9WioXE0;JarRMuToZqhU2C)Qk4RPa@>gU9swBab=z z%|i{J+6z9+3ZMfZvkCe&3v@X!*lEz_Kn;h)Yzn7wVm9$3 z2-zWPdk}6gSE5hC>7l4K4`@Pj1a=L)CUc}h^z_9(!sT9vs0mYPKM??X)VCmhsNXCP zduMzOiGUaUnJ>$jenxaUHGJ8`)YUys4#hA=rOE88&MX??B}ioe&fIsh>i{4!=t(ch zN3rwzlOV0&aL+SWCe$RVh{~ASB(dJ6LI!pgi?bz5M5wcr)G#auCQNjsYvwpvBCSlR z?%IaXd0h>4jW|CTR$MRO&;S4}DAtotDQqkNE1g2dMWhAUgA^sO_m6y&6F!eX7x0$~ zlW_$YMATzfIw=C0_L)|Uas_ycz+y~y^PvtZFG(KF1M}KNil8mF!C?UDilieiYp{MZ z21>9=(!E>^y9Uzd9K&RW7M#S?A@ut{ex6gIfvNulj`3cNzCcmS760RUfCc*ja6OUq z^K0A?LeA&McR;L%S>&kID4*CMSm(s}#>lh8FZbQ$t2Y;V#R4LzPiudwp+{kh2Dsm2 z7h{QAs!udV2yp{ygM>c+2fs^dt(7FdFPu4ktL|Xh96{B)OfY-+&D=qM&P%6e<@hEq zy1s%-_FJU0onSmjETMH(TvG<*vhg8MqjJ-4wqN$$d?;9Z`wAJzOr&F%N_^OWcb|h* z-`Bh8R;u}N4hNa(YV_XNzm9cml>R3+X!+eAE8RJB`WiZxOEwJ~=V!+q)AWrV&Jrhx zEzLlv01%EvmiX1T>PNq+o#FK@(t7S;$r~BhsYJ!H55HPonQL&lJ?>2;5_X3-JddL+ z;(}&yyigGu!G$`}sN6Amkg)&@NN2O*s3g7?TUOojr2B_I&slV4r~I`@AQ3T)Y#LPa zfhP1l=p?jeTc$0~8ko48wBU-cc*ROdY6ICNsP3I`&vWSd3T`D@+*DXWu6cuf3>zx5 zOkd*pt6I@i866%#<%qNuqbp_%XvYbUNfpItM3n2833<5wp#RVG*A)Jg)z@J}$${(y z=IyqH+n-XBQ{jJ`lL_qyvJ+61-POfUPgK72vhrp^F2ktrz5F|x{7U(5PvE7vk`Dbz zPcxv>o1SnyzD}-!d&LQ%Y9(rmuoZT25%Y_G!OHM4l8(5?0c_n)59C!{W?AGubvV6W z?9MuWMcHUI^m2SPh+kre(t%D8h<-nR`d4~JGV8xRkNtmZj)T{qsHl8T&3m(pda?gt z{U-qO1}N}?iFFv-tCa=ZWoi<+bVYyz!cZF`AQ-^2Q95nxZZ8~Y0+Z=LHL(NYVWlf_ zyzr^4bvUheZ@Po39v;&Lz7G9JLp*$pO1Qm5N+{!F#rBv-PCN|{k2zZP}W5mxnV_ogrX}R#iB81i!gM1m>W* z;U~R!58m(nF0=2+#y$)Oaw?iA?8ZkGdS;Igk|(@>-`1nY^Mi6ugnBip;EKls3Cc!= z-CAAp<*l{MPmkz4rG{`Pa2M1f~whUvSAwH^OIV`?e4;jd{rw*3)bJ5oL|_0m*gxRIDcF z+WL4|jp|EE7gLg68QI|J?Aize3Ze=m$;(Z7~m^VqpVniSJ!< zq3_dv#95yY_AxxYSB@RjEwFusI5S#H_7Y#$vEa_F0=HpCW)JU+tp5UoKu8w~LFNAO zo&p_mM#RoWWwK@aYTcEnK6knp@ow7UhwJ+vCjVD7`7Rd4lDdf}&=eyMNGR9hr>h|~ zb+;Cf2=T<8X%H1qfL`C02cJvy?EfAm97_Uv`ZTbxaVx-N-q#$xhPbU~#CrOL45Z&l zG-BI24)lD6+tzhCh?5vlDrIG{Gdw$~?SBFEZ3a@wK$$FQUkJ;1VrnfvgL91ljl)Y8 zBJKtXsCIIUx3{Dw9N#1EJq5-Rejo9lH_gK_&>oAxu*yM?B4&T6`^fNwM5lfq%x;^S z6hI?JxetSYtJXEPN=nbiu8=ci(X^f(W%RNj95OM3_li`OzJ}QxyYQlX85{7#K@&Bl z|Nr;wpory$nLZp|l>B_lbpp19AOS?3v;kH)^2W|lZyQH+9#k!%w8p1@% z#6EK9r}%a>$kSMOmgCDH%|{l@0%dPQ@WE4sQOvBL&vMAYcMnhFo;O4@OiID1VtqQ{ zfTW!(0jYd-4df_az{4q}+JU}#{@7AgeEaugp(@0RMGlDpqh)q>?w_KfHY%;38GT$X|14}n+OONAL2t<_ z(vEz4Y}3cfFtiN=A1@Hy1h}36qWNdQJ;SmsL>h8s)aAJINJIWl9dIyIN2J_rGK^%b z0Xj22eBAJONyOCyOO}l>XTZJ$X%Z|a#8C#*_gGraNie|=RBIb!$HQala!$GWZEwHk z7i5BsJ+3WsLJ#}LP*ux-t#V1yPNoVsp?$GO9N4@#&;vhcOF)6+H}8oDDy%%+fp$Lyd`NR8ZjsT|l`BYj?)vgwn1AN$=+oE`$s$J_oL{H?<8X~!@xT~Shw$HyZG?%Xf zNR;{-em-7+SLo($Cc%_IwhA8nvkbbvTs&TEJ2h!em%6p!E~@bu#|>_@uxxRY zkRhVLWpF^+4~mks*t0!aZ{=OeP4$oBPyXEf!TLpca_g)11G0fUmJ*vzmXH@E%_`5m@r@YLdI01bI+*hH)vdR zOl0*OfumAoP80%Wn|Uz?FBMFJBMPLE*|Oy^9)PGc5d}5~A=06=U^Q6s6VLzL+HWO) z1=*n&9^)Clh?zMN(*G+AMpnB9i9caru3dmErZu-1QxEe>fZCh&;|o=}fCbQr94ccI z38xRA(krZAqTL0X7Fk%JwOyecrU*1 zZ~RyK=@VS{b)VxnkMlV8`ah$2kRvDEQ`4OsS?566uI5;J-!{D%IDT(Sc^n6QGorQe zicn`fFbJ^TlW2y-u8^JA8RAjt zH$t61(g#i=$R`s-J#4U9Jis9k=t`Z+oC8X$8UIr_Z_Jy2r&g#liHm?E&#l+-`ipC&hSs5jf)90 z9yTYR&PjFm#rtGFGbKAyi=sOo&mrROMtLv8@;S1h^Z+Ird0eZ{W{Zr}7k_paY5Q|VTka35^G8^EA4OZUl0U^4hBw&b(4FKbw z_uRZ8u_B{*E5Xi}W|+#sVIPdx%;df}ZcMxt*pCClIw%iZY`Z1m`)ZRYsY(GEJB4PmYCk4}xz09iha}EqVrs|I(9nrG(&778frymX4|01UCt5s0$yN zP!aK{JQWj&lnow?{-x*`NY`upe|iTSM}wPCq(ffy8`Gky6K&^!))LURvWihZ197@| zN?x8Az7U~ZsSW}Aj=md_eOvM=&M3OxGWuybK^B?GotLEISthMp-mPR4mR115ik&R6 z*t8t0TnS7>Dha|s-0PYh42XfYz}z3eL1SBBx(*`i9jmIkYLj?@{$wdPrVao;#wu^q zofx7P;ed)MrimtUV;U-Dkyg~A{Z+0MS>SnTFCO5l43rFY15rWOUiRo*r0d=GXIYGi zI%eI674*+5p2i3MNv_v)(KXUK+H2@@z{ou}#jgoSeC0O&zv)Nn7P2LnI5UuUS$QT_ zE@gL4$#ylm-K9S{5be9#o}dT1NWK-CCGKyFNfV_%l15r#UWs}b89v*9PYc(wj>}6?+MvazsUQD5%Z`N=WL*TWONZCR}U9jXGC6S%Ys|$y7X5rxjJKt)-zar zXoQ^Wzg!fEFsLKj7+6(RgqXIFWpa+pgydWx?-IP$XZ^3I!oxtXW?@ATAOmJ|T0eb* z^T}cdfqEbOIYhyO%$R(XEnyEDRElKuL#-}A^2+pq-3m@PQv}Q{ucyfnS2VqE_?I3W zEZ6x0lXHhyT(VdC_@iC@*u-7cv9qFdLET(X9+)JAX>z*;VAQjx%>sv%gU`r=yK*Dxy7?3-Z5m(m19lbyLl_vFs6|+dY z<5?!;;W@e;Bc^}>y1glIeEJN<I;u%UqyGTo2Q_H{fDe4@#=LJ{d?A(7^TJArt{d-R) z#fhCf{=EwE|9$ym@9mqfxf;w#gn{z@fl#&Z>J30AnGA)L}vnScNWco z7Vd*M5`1zk%maW9y(8cr2@s^+M-fFVlkL<8Q?x$6Uv!f~?uUD3(l_y=y9A2vQ716d zt3ZkFI06W!){%2RapjW)ir*0g^zv`Ab_gik2CKitY(p5VYIXXZ);;nxy$)E9c-s-I zh^XYv`Lpn1?mP_sSuCskMSxjoAW+s3>3N7@4d{OM14~!|`;7W_tfS8h7bm8!e7g)B z@kC$07wgX7EkxP(WI){D(u;u+rT+^F2wv+Ok!GM48{7%X=RZ3ZHsMLE`FkGcQ8EBZ z`2+ER`d0udBF0Y8SX(vth$P$VWwr$k*(yjnCnsKeGk^P-V-vyU$=t% zFU;19Y9(U=%Q8^1wcqMg0NAS!fJQpIR_8p{S>YG?&gk|@Kv3;Bcy3jtGKtbJ8TtgC z`$cIT^mdGIHl4js8@&r7$^f9jKj}BgcK%i2W!4h5QFuDIPbv;u{&UYb-=Y3`Be<>p%gUTh=V| z^?Z;(ZMrqXRby|J(xbAmmr(uxb;AV;d1uY`MkYWO0E2@&uf6+>f8Z8uA2Ek@)nI!A z7xXX0)go2ifGEI5?Jx>DU}2ej8+^y2KGJS|Lm#?4=4atT3wBVZudV>+@_{`LX%O|e1**6C-);L+oG=9$ z9T0dG1lW$1$on3Uu`VjKcox&Z`kE~$B@;>F;^Lhb)xgg8Qvdf9EtFIZA|DLofz-$c zmtBcpfZ@rf?Cj=3vP-_Bh+N#K?LPh-K$K zFt=Ryp@H*BA*(lIt5fR6+?|qF)gow zW*<7TvcX&8&cB*Beqc=K16v-SxqviW$O1h_!IECmnS*zS{+a~*EX_#N^gfLTO%<|X z@$r=w;KuWhWYy1kNU@nu(1m(U`KmZq&e(kk%1~$xqr+fdzIB0POVIgVATedG!5@oK z+IUrd&U0a~WXDawIW(qzySLVPMdJ^r2uKn2zCL8Sp@VDr^7->F+|J6t1q{VR?3>LD zm>bUz6wv^m<|J#mb$swr>lO0qjSQ{yQ^z&5$`T+7OlAtR43F;+prH}Dez)pcBRViq8;uleFqaH?wXM@lsDJ4=B zUKho*f=+M82DZTtAT=nfj4`D)T2OIr-7_1-Rj;YKz}X@jtdtg7J3yc~sD|J`2CtBv z@c^lK*>SN=-AKzn@HS|Jwzu!gbn+EFmC)=uEm`UvBPyc*Bu3?!9tMz$Yx;Eh98LL) zYYRh(OV9J-uj#*V<^l7aWrc^&x(Pce|A9jU8{^v80hhd^7AZg>ev}Y-Apij?P%kyM-eCdkMaP0SR|~xjVpRQ-S~H%w^iadXbY1I}1rVYbpqQAFo7FEW zTJJ|jd-@M$rld>iXP*PAaO&ED4XDxAbZ)d`p4aRDz#+0awI2CB1->)IlhcH$dcC2y zsfU6)UJ(3jeo)j;nxDF!<^z25PKiBhu&&p03xCJG`O+)&lqh9wwg;F9C{Xv^6o{JE z=mO#TtZo9JYXi>A8E|GO2rN)bXXb&e~iRgY<*Ph&=#rShY*XkRB| zN1()(&-*lx=6Y~>M^JZlYCUg%2QaX$*2nHLMCkK@FYZc^zHwQ{14eseMDJmWYy_{Y zCjNlVoga|e;~(|?=|2i$q55l^nb1liQF$Z>$im8F=ouSPia@1+`<-MqH9cJlbRVm^ zIo4pW_0gk88w=xuZ+8AlN~>e+Bd&ZqoID@ASiy}_c@w}nAcJ-Jt~5{1NC&jb|8 z;(Hfqr;H7!WMRbn7$@5eu;esBeZ2|{+VsjpC6hm#6AQAL!uI|NC=D@ zDEu3v(PxdD`7=GN$jYnfGt6n0ncZG$_$vL(h5EO`jCFg^MBKB7@0_$pd@_nEm zI`#?GPI=|fAmTCU?mJ5SQWSFjZRzX5uV-x16!2Nw=Zx>&QA>>O&^2?o8q?enHJql2 zL@!MVF#%sDJuR($T@P@pPX)S;YY0=uTep$d!QMy*BH_^%FfFwnm)yh45bO}}mtBaz zTU*J7jH|1It((mVo@U^DKNZJUU~RvA0Ilm=v(~%0HdmB3KKT3hWlqAwgYBTQ6_=#mSuJ{nD}~x`!ruwSLbjd>o=7QlQy501euL^iKnwxe%ZS) z90Mf;#mx#^W**2t>IVNg82a;{)rO>goONJQNM=O_3hnCzW=admoOGYDfw@o?uueD1 z?2n<$i<1wSn&)i0-Y!LZp^kq9(rd#KSIm5FSqCokO5*+jtNQH8q;K!i-w5IZu=F6l z=Z3Z7`Sm`jWgcKUCWW-(M+P%XrC*i^B@CJT8Yjf!BHDrA0K@wNz+6qC;P%T5^1x(4 z8KDBqs?E|B(+_7$cMgo4$4Xr(%p3rwk)wB>fwC}7ifXGmBfA9*c{)iM0)Er?@Ylb| ztjT=`oU&E3PaXLa@G@QFbRC%ndck#)=EexnhpHq* zKOKVoZg6DrrSxQ?R*CV_CpqBi;Lg0721Hvgf&&Hne&zwJ0Lhzo1>y^GGs(ZnH-=+S z&zEB;-kQbr*8jN4q|{hWnH)4q-9H;}^r>X%$K@DQ|58?YY1yifKQP+aDK5TYebaBc zEyp@vjx=8grJS_R`%wrNr7ILnlL;ZVXkG@hGR1i<}j>&_w;I`7XSjaMoFzT2_2_2mTq#QDC*f^F)x?!_a$ z-M*rLpeBrWx2ighG+>53%>Yf1L&xtxRjJBBEsJnaIORQjodL>3nz<6GCt8;a4oUVSuH<>IQrCh}J7qW^@I{Jc3Tn$k> zp+Aua%vOMc8BPQU&;*>o)&SP&gGQ`BVEWYsZ2u1bQ3`jD3wDm} z{@17drBWKK!WJSHm-j8Bzb?lA}>?u-YfM0epyYqD};sT*=)4Ig0o#p;g11?RBVz^F%E zy$U6Sf8{NI-a7I^+}cf#)@u1j&+uo|F_B6txTw5skZ)t|Kk1N^mMCTy-~^!8_lr`% z7Tw9?$H%H}tJ!`f0>Rtz_{)F5xnTc37F(VJ5P}UPxHciYRPtYiH>3>V z`F+T!KU%^b`r)sk+8c0e@d%j;N<|1W8$x--v1>-evrJ_9-W)i{X)_^0mkNdPO#>sZ zoui7XX6SV%M#%b{fnQ+$`d5H%9IXU{z*~ZG%9~YC3k@uZN>O?z-vPijQc7`w0>rP~ zb&+LB@7qyXubWILfSRy7p?dd$sy|4hyLX+ExQ-&oy%iD2*bj_Q) zgIZ1p%s7ygPOWf%sQzn$#YUv9rLln&uC4f4!wcLrFV;gaSt!6Yq!WbLu+xYmSFvV% z(O+bjJ#4!sgcdvbW1s8)AfK`0r5u1$?;?VQ5N73RphYt9mY~T={zZm^`*;MQ(FfKS zQG*5^N3%DkP-jYDkWFTzJTb(7`JgEEk+baw5J^;82>sz$|=*M|1SrZJ-9vnSOu;&o3kb_0n#X{wMMV(|3 z;$O6CQg^oZnlHFqeh4}o=q6}afXuGf$_$pXVB_rE!2-QuSfW#4oe|iQ%4Q7d?jYj8 zf}e~_*zW9uK-7gL=v#o<2d9(>$ox7XtCQf6m3Z4%W_()met!7y0noq4WKuU&pq1t2 z!N42@1j-0<7@d+~m3?jGMC}mi3{vUg&)pj((Qdr4FE4dEu>7s{F!PHq&>uE@UmesG zs!auJ?8J?4j^F>?K`nc+wopbjX7#&`M*{Kg73`U484c`ei)v#e@G+~|Vhufe_AJai z_=VTlUPZ&;Ww2>5E*h8TLgGD>amE+YfztmT%Yn#+k3XXk_kO=KR}9%^+yf#AIZ0Dx zb3G=yHMs4d{$Rby6lfE&jAU-lns1}GEM42Gnz?Zef;@?lT0_5M>=;!?b_p8$B1qM9 zZtO8UFp!y}CS^h7y5@qpMP0_v*)acL@ip|{<#z^%)DfReyN_sWgm}dE}kU>ey~?H;&u-dVh0!2&n;k^ zMoq@Ci+S~+ca5n5?pq26LLrrx!5vDj0<$X>BPFm1=&fx-%%7B;pgurl-I)NoDBA^4 zXq70G*ib2&JPSBP+c7M4nY5|H9g-TR!iTGv@|E5TvMuk8V$aF~)`*6_)hD|FyQ$~S4Am?DbQmzrJe_}Sb zuu1#di8&w$;(dP>NGbndxP+}-h>}vMPJ1;TcffGA7XDyv07Ym_g`-D50N;;|Au2Bt zHat6Ap+!>3IgNMzddCFFKm*>j&E}2IKy2Ry%btopp!R*K_&$&WSG)cK8=HFQ0}zlF z(?EA+wd3Axf?7Y&PEs=QYib%CsKAG&^^fP*HvqlIuN0?w^R$hK;FPVJ%f!()vqpSOz+X-5F+oLe5E-pCQWey!HSS{Jxo3ZyIj&LotM49UoT3p17``@axe5gNd0U*Q zkYng-8`?#^@= zR~Qjf3j0y0x(1M+ad(pfp<#ii?4tI0 zd*>L0>EJ0EwPTzSd zMsn1IXgbSxdR>fr`qSX?2@=WS8+}_ch)w3Wxw5a*9ce@J`~ic#U#ni8@KW9NB+}%c zt8&|J$?f+ryZ2x_^a5=6v(uj?&s@^_EP2-eUyK)e>0zL(yqS3}VsPYyl+Q^iy!cuC z_DjmHmxca;3dttLzkbRA3h`jgZZx2y2KqM4q7OS;L9U>6=Y*cy@Ey&|v*&!$Xl!1~ zpGLSvg|$LPknBTI^5@EC^{3uhjWW{L=|#8N(fYYO35w)(EW6butD-W6q@nXXk9<=H zSC_8oCTbM=8Pt?8pW+*S)06S0uO3l7r^zWgxiWUiI}bCvwjh|KCB)itW?YG8@mm7H zQ3|3aUVOT^_`2R^!vJ}vr)*SxfP4aAW%g|NDE|-BZ}Z8GOf1|BWHN81wsC^PU{Db* zqD)#GImE17>S*P{sOdu-oV0pK7w1)dgTzgT1-~EJC^dk-y&*JiomwptrrTY^8nY7g z=4#ww;W(5}$nYhf)uP{6>s5xL9+LD!xHz7$G_Qgfnv6Y9-bR7R;v+*E{uGIMymx3` z^&_G*40B^6fakdx*@yn&158gpZr+?MK@m^OKuRCh+nKcbSUy)TOj%1z>1vCtrX@vP z>ZGA*d@ua2Jumi_*RS^?^eidx?tU0{jZ&DLtPWw6pM-tPfKMavlljkgy zDUqCTTWeHyN08#8Kr=0G@N%r8QDxy1=RA}&1>Dn#g9#u=IFmhcniWIy*cy>A#PVZl zx@>DvenpgLW?8#A{q!E%>Bj68J zgdhX%LBk!MnQG3AL1C%U8KbDBuY80rb2fi%%C#ZTcs$}TqO6jDS~E6uo4FE%$*f%Y zRP}0z{mze7O>Yk6_w`hTPj&hj2d@sMPVon|!ZymU;3V006$GaZvrAZCdPrOqCUqL3 zAQxngDNVE5hm@H@LFw&)71SoI-AWdsT)?>F4@9aL&mYCO`->vuUKX~Lnhg5g2=L8B zd5{$-hKHY^cN5iO?n<1AQe`;2NiO-3hfKb3?`B$q+RD|{OAUh=X0hL3o42>oQ++F6 zsO=i}GfLYdA&2q0bMdIO5CyeCl%CKQ%77zBP^md@lKZb%;QD}qTe?a@{j^(ZK- zUCRf0??oxxY{XU$+btUlAR9wR7$lI+`W3Z@e4%H*(Lau`0 zBe@^wdW#CDTFJ#h*CF=Bw8(T9y-#HsQ2N&($_D)Gnq3PS;N>1ezOU0@5)_{fNi&)W z1oJdTK5akJ!M7=SOf*bQUCV5u=i13pXHgHxH^emw1=YU?uazXX#WuxQPyNQ;d z@HNut9j@?mS^HwMGTEwLb=7hOSsH9i_9Z#jA=LNdKhs+zWq24mfyg2F%_vI^Ns)=}HeN*}GyYLGnrNeQ~0+ zK3!SIwe#a8L)TcH-Xx>Y(v*hrIS@yq8RA5jty!B~G28M7u8g36(%p{plic23wVj;U zFHLE8IWhQ1G?l-f&B@Q%YiYRK=JB643X&F+L0DX&vPf$SOSU`Bo2AY{w1wuMW>^|! zN+TmOoP@NY+HEihUCB9l>jQQ(mv$T8c@hPfdU{xhZ}mqc%j;<9}^fZWtO)9{U^TqUSAu(}*ucAj04L3=1l z+&LXf$BG)AT-P%1^Vtoxw+}3X`kRv7vL+X4E%(@VZLmxW-?TNf|5>>06unqP+=CNc*B;yO1jPQl{jDWp=!(KVAucQj6si~?$q*KOdxg{MCq%LE0sfq}=03V=z0$Z1(>C-h2qisQ z34Y&>hddZ+Idhva)QnsA;&teO0i97xH^`!q4k?w)&MQ6JL@4bJAPU5hzo{jB4GqCw zW8ijooW!fkoo;%i5WS<3j}nZfu6poF^E3({02#aNw8}DND#&YjDe!2SiVBNRXSu4+ z`=Em-D4u&W07!e;QK!5RnNTtFc@w9aP`?;LDrsyXv&zFXTZL z)Tb_NEX!{*Ew>;5vh}Y!z5_DYS5uYGZ5tB9(Hr3UT-b!=CAHj?!HJ~3AH#z@ z(pRs)Cg}0lB~c#{9Vz;=eYj`bQ$u3AYajkXt1h>t83#5!H0IdpSiYI3i4vthXybl< zW~#8hxEUV>q!pSJV5n)+^_U9tfr!Na=9Cc*_|c6`Hj&m=JvL*vHmAO*aCJJ?a4oq6 z^{hjJQtfs9AZ8ak1Q0sZ8M&WO0r;{kE%*Z0T!<5V^^Te6t4ok zphZWcmVKOjn0HU2ffpNO^~3|<2k<>gx=GC3*$N?`&fLNaxP8x{|87-17#jYkp~1h) zSu;m$-Uw$`d|nEp8EiavUC4iatDS%#d>hKDK8`oDR_II8bUU4qGWvc&*Y_5un(WkvkEYAci*NM6Dp6^yU^&seu zKmB~afQg)ebilX^&Tk)hx+0Vhq(k&mg`J2`vM!r}EI-VQ1}=V*_RM$q+Nz&0WoTg) zb9K}`+sTnzluetY(p3>VkqwZMqljpZ-Xz)(bhtEDuL9$YVGG?tmowX@N>&9sX!e!T z=?hiTx{&bI{307CwND3QIX`8Gf%9JYc-|Yv3J zSTKy0I)Rj4n}yJUg=z{`(G)m}Uf!B}07vpy6GY0Zf`z9sj1?zBXiE#sCQr3Zs~qLuzHHtW{;l;MY6=Z_>YBum z>!h(n)G7WT2=~hnt|g1?x^j&o2_Js2Oq9MB>%l8S^QeDw#fi~Jl{$_iz-s&2l=D&- zfv0`cAHr1PEsIqi-^Ujgyzp5X>ln#ExBAOsbf2;jYx1$4GSZe$trvhx{zI-m+MQC7 z46U?yENbMiGwKscl9 zSCD)#BuFTns=g-Y$M*rgy%W)Zg`Doh@Z)ES(p+8!0FT@1Xj-@`+#q~ zM~K`_hz}|AS!o2)E?yjqyT+5GhF_Q4 zg`Mo4r!m)qu9Cc5MJb07@QM71F7iy12Ck8+=<+E34Iv)~XqyoFDcr=H*QDL!1R&(m zLf%aT&v99Az=nxZZQlo)^rplZ?x}XGe|UNy`)({P7Kgu1$=;5X!33Ful~BcMc!}ch z7_(RmQ&Qsm@jHRKdnS1bB~!b5CL|9^mtxyJL+_*O2^CWqt=UZ7V^IIzpwnd!Jb-Pp z+O(wYS?}4R@#!1?7&3OzBEK6?AjfCr;qff*cG$V5N7sMS$MlR^9j<&Lw?EI3JFC(> zDBRZh!2rgk1g zU1h%iQ1`t=r=}puf_**ncGv?R6Qf8;>aQxBDm9 z_N2ZwT*k!Vsr- z1QFtHeswda3$dqw^WDM@JG~ImSqocbpu!mY{FQ)4LA#YQg0O3fCjFdiSQIpwX1U0r z;$(vs@1f6fQilk^n}Mq7wF@t@(G$&7&Pr$5e1y6E+Oy0&uEcr~#Q!ZJTNIB?hI(Ys z`liyXin;RbumM)x&>40}(P1QPVF0xKbnhi)yR)Z^qPf+*YANZ_t3{tswuI!2ogJ|U ze659W-z%QsZ5K|z)A8TIb6&Zi<) z^DFyn5TjtXcR=uCZ&1D?-gox7%BvrqndWio-$z!OmE!a?uq)AtGcJeH8^)KvFDk;x zc|0(WySwEooK%1N;rSMUd|@I8^bQB`il=R|*`W&503e;-5^~60UP6jOJpnBSu0@p| zV}BK%iilwDzetxvnu1J3Xj zMHx1Tlrh{7Tv*(*g@{9-5h_|kFSAT`QgXuAhexGCRpH$S(8F6omgGRrU%et>B;oi% zRVFuP163A&TBx|3a0nsBXsWrg&fUcM8U~VYn|-AIuI+*NA4Tj%8emv#(7Cu>fsBBi zRgBq2Q$lIT<&U6ePE3Sse!?Y_rvX$GUxHJiF!I$x#Uzn3e+FVdqyobJKKgmGV#=FM z?~LR>vXo)nZAMc-XpHpOVB-QP7l$VHPX4o*W>CEdBlOA~_Ek)a55jG%|I-s~;r3NEb$G%v!i~a~dT9 zKxQZ7{E-X8VejycZR&;do3GX0H<5-caAB4n{3abmVm?qJ0I5qDiE#W)O`=x$V|x+z zS|83h_zsmVofQ0nvw?a;Kp;}Nuu}-cu1VB;(i;dSOPC&k4d|lZn?HX{1aG!s_6R%% zG4_BkGgSiFu+^4kRq7Ljh^mQj2HZ(+=;jecVo8Wfr&cOl$S4%w@o4UOx&g4hsAyOp zK7xo}cHHLC*dA7UHp!d-H4+Zl+bHBI$#cJ{xp+?~>uKzA>Aw-ZD3AZO7BWOm?_WrG z_YL!$+>zVRN?TKLV(K6;;rvF7)gHr{9R%*z;BVPS^So6mTSODE340yNJm!VhEtS+E z8aeEiTP?bswqO5bl4824A549SA!q9sEppcOC>}ooJ^9ltcG^|L_1RbDISMaKS1G2$ zxSJ2SF?{JMff`fs+E)cNJue&{UHle zsDs4Dtq-g4N9<&%{suU2G{NEQ9%S=k#A`wtZsIY7Qb&4-8#La|7p)?|@W!55Z;fiGThbvZT8(YU{$f4YhY!v?1#uHJmDo?ZmuR`4Wkm5i&^+Cm$<#~Y(v znE%O)g*3$}6{48AXdGwgtCmhcvqI4F?KRkDJ~}+QFfeiO{6;c4EV9s;48Z_xvhGBO z+1I90bxy4?;)TcV7*V8_kt*Kz22qx1P%3S|GYY~~7S|popMa*!fbZwN-N@3RyUMSw z)57@;_8JxYw+h4(dfL_kD59d^SE~Vh)r)9^6pt7m91Jq&M*@-=IDlR3ioevPzA6u2 z^m^D{S62=(kr07X`3)lZomt~wGXYwmg$83T->_DNn57%$qcxMiWWR;{uBkCKL|)-F z0fefyYCT0d?Fn0mk`r=yn+Iz27qEeZNg9zdwoxkmek$#WdZIqUm4C!o@Pb=qpJ*P0Cz8 z_5ERa3g>+?J|63x7+bGJr8{4Gobc)2MrslBW9cX$ENt_zH9VTH_h~Ff&u{wk4tX~q zB-fmitFV?x;)=kfLXDgH1+YgFg`23s^Lm>PJa?ub$}aS=hggoxSdvuT^3n11?qOL};x!xJD(uTl#{b|IDF19t#) z>-mB?ZDcN2G6U5@E&l)+WW%RrxUj)$h1sOKK9lBMq7Zgm*xhZzYqL@EUbEgcD+k9Cm4A7BqufSMTe7!Ymniea$f z!W5-8h}-}=YL_9W^U<#D>hF!@rbI@JGV*wJ;Z%%Yxjt#v$of@sI`(G;p;!-Wx zZF&&U|NUPJ?PJ4X=cZ+?qu z?T%Y!4WViLL-|8hIV%&*Zs$ykg>^@~XZI2|w)xHvU7W(HAmLPrBuaN$&}a@S2{ZY| z{Gg=`1lbxwtN}ixSQgz|O5btE z042->WZ+(|qmfwS*~C85lDUo2eDe(wA+J>WGK=xBOGeT~M}+0WuAOjP@?8Y&r9GWZ ztP16fZXPRJ^@XIANoNUiiWr_X2J?Y9eMIe`_E$D;4If36LBWKemvm@=e1UC8xBJxh zjde<*y^fral)v34oScwu(;{8@hb$0kJjlk<=d|f3J1xP zqCF-5*pEVL?$imHo)L;fsS$U z8%KGVEJa+Jk8J^@xH^03{~nfk8vO#*5T=3DCe56OfyrdUbnhWfh0nwty|4yIarKEv zce1D#`CQAXa}L(-I`&DOLjFUtiYYcbGNbo=lVAC>!qVYI zsb!zrULL)xqVz1|)i-f>&RGG5Ol`XBEZ~<+_rkzTzenqCelXtMp+0n!p%@bLcn+{gBYx2+s}E2hB6k@=66Wc?#IHZTaTIjGu6T-cn;PP^3Z z@{fDRhaA;pPwd`@tzU1(tS}%%rLbia9^Z8?zie^QOb?LPcvl*~?iZn)!TgKA2C*0h zwVgH5bm#ul+9Lf%_a{-KCL7D0qlxMp`n}$~!c=1v_MuqD0^vWoU6sJqo4DlIUA0*X z5>Arkzldy1bVuQTBQPZtIj{ zUd{+&;|4%VR^h7)5eABwQ`6Ee_ugmnwQmO~y#o-;HK)@t*q+ol#Cc56P9xG%`Xu$i zD#NHIynuvW3+QX$x+)S4CQ-iWhan>rM!^yMbZ^8t@-XJKkJ3LF?5Do;-L;39-0z2x z)WP^~CRgT6q_Ec0l4bxP^d5a}V?sM@bTaaQzcr+N5JbNx_hZJM{tDZJdf+IZ@c!Y= zx`%-}nA7!_5l^^7d{S++UxC!{d7OzRonG4s+3XA>GNdwRi**G?s{lT`jBYE-nSqmq zqpJyJ%M%Ob6R$>+hE5;hpS)}ZAhM{nkG2B9AY^(v6+L?B5vVub#Sf+odgkWO<8o4x5H;bPB^LjF>aEhZ775V%WjcO@N*4ZF0YiBMddcypvC zDv_zqzsDNd%F#lkE+~78d8C1}^DBPvoI4C*rtJ(xhug4e{t=04q2G7liQ__ zd1bKu8Bj!f$v_(>G$Ky&%>YxL|IP#N3)!sKtI-(ML0gFb_TVW8_sP0g^CUZ{{WR*C zR7x&u)TLDV1RhMkywE8utAf($L4I&ogb$=&x# z5LsRPVgf)5_#MKIzE_Nl6jv%G` z&Q>!zU+u~faL|HCoV39!+CGEDV4z-m$UEJRD-0_chgN3bYRjOB3^D>&|8z%}#R#Cj zZ@Pb>DIwvc4BKQulizD)ndxA9%jq`$r|zG4f-U?vS^Z!QPVK zm2ri@{>QX9Ii1;$@z?5`F6SJ%k^mkrsXv4^FFg(JOUbW7vNWFe+otx3-c3*~ei(c{ z!0k*~5+99z0U~_l6Ti%m;kZKe8OVlu6N$7{_+e0`!za@97$F1G{Ff?mMvJPX znpt#^1?f*5X;f!R6j4C(+BC8>7U7G+mH!nrU5(7AkQJ`B|ML!Te_lqovbUB^9Udzz9AJf-Qr?!&qFiz?SKb96f#7&q2PlG|y)L*dkScW&M^|12J!swE4Ny4SpCa8a#psbw<<9>d z8v0V@!UVNuZb7AIQGz{it9ua2pcU83&pq9HjS?+&eIEVB-YdTZ5cCUa`SX>Fm2=J; z^)g?~74#ncYg!z|83d#+XGTij=N%UL71Js3(cnyH^+JJ%T7;x7B}fWZ+O9h^FCd73 zTah}-Jj!!I>O9ZsTV3Nq=zs|s2Aa4g?VM>ok_%Td2t38l(#EZnPrm(W35wr0^?$4& zTmIioB(0D( z-AbHB4Z& z@vv74VKRFkT%1()wO;XS>^nW~H1k7gq6pGH;K_Y<+iQETxG)_+r!umYnSr3@0jAiq z&sIS+A89qH_V2#Djm~Ei_!%XHOC|ZkPVf=`E>H&jINFL59Y0BwyK|Scs$2r@!~u3^ zFAx+~I~91V!Br5;*G_y(R|2#OG?oEdTe{-YgI@#0i&5^q{U~b)a^j{CJ$s~_7nygV z<9qLoX88%A>RH)9Iy8}GkX67KmzjHZ8Ng_oKRS*eX^?OmQ?eov?b6R#aq-n(8wPp! zuXNh!hhQ&%KN9>S!2;L};jnly#DDwO(Bi+;2W;3j@RH|3ssQj&t1QH{QMCQu6)KhK z@{o^dh~ls9{T2>ix7^KU3u}cochD8IGS?%u)=1H%JtuNw!?uo)!uq;D{aW;Z*y~t6 z=5p7mm{Mwu#vtvEZ+iVI<7nS-Axgt7e{|muI4}8)EtjJYX`u)K5=1>oXCP+ zM?Z@;bndj}KwS8|TRS0o6Ki!+gcusJb&e-3`=UGWZ+zsbwXIuZ7>EQ>V6H9amG`)%5z}(T`Ea;=qPkP% z=4@_j3qVM~SW!!yDcLGU1f--$cM*FChWB=qpgLMPB6U2dI)586nkNYbwd z-4~K)Dl8tmi>gVrwi}+=t_x%or;|>q3YVUcE`I$`s@e9C${ok=tzY6)@}!ks!eqbC zaK7|j7i`n+;LEc!q{A<|C=#1uVNv^Q`CChKtyw9EuawxP|s*U=>UiuM_Td$(d z$f^bWIu!M{KsUUspVl2%}->B-$# zA)o!Z`G1JI@<1r}@BPkksX!*c1Z)~*tIJNGA?-JMR4V9xia@8B4}c;>#fZS7gc!lPN0LrL=7TU#8IqG;+8 z4W(I2NmqZ|-uYzHzP2KjcO&=w?UY_eek%@x5rGh$W-LFum*1V zpF0eOw&BqlM4NZAO6gMGp30Y+K)v_QSTR1v4e+U1Nn`p+FMoonl|Q(cT6@B-%oVJk zeUGD2(2yJm8?&NG(P2L z6m)0Xb^pUrNi%maA_Eq0sM4%Uj|cuJQjE(ANIz>DAYQM`(CG@Wcx#M5(7S4SN7##| z_OCi&S|-bh2lr~%?@e%0#1^VYyNv-?oCK&?cVBL?L|Lp z3!-`XN|SkXP#~Y=>TNILbXzS>o)e19J^t3cb?H3Z18g7ChaR}#cIDynnEA=18?`@+ zgK{Q{yx-@|53e%tYeA>4^=B8Rq!yn@WK%s->CBGgnHAOquhK>Ie&sC%+Bj!G=&?x|; zU-GU`8FvFu8O0%Sr`701i)-@o`pp+_XAMRT{hFB{c0X~F$Fp2_^u_P#wdQ|}W9D8* zxhxfZUl)FC_uPaO>+;B&C6n0><9$;p?{a4{0-P-tzPngNC3n@D&3s&XAJo}E>g(^V z<@m3)sy!U}J*OtB0_i$PSX+y z&Dh1Ymt>sVCvWih*H)`N(-KOa1!e`0#^Wo}D}?ud_iB7mcYS^gsqCueXepe}OS~$Z z-}~Z+LfX+|Pdk#Tz2h8qo!EJF#Y}3@tl^!535RMdpFCH!Pk50Kyf?<`&FvlEW_MRj zWR~|cZ-l+OZOA+Wm*lQs&NTc~K7!*Gd@Q06QNel5IcW5Yheu}@kMC8;MpF3`ytp9a zejb(8h*2Xk-mhDYJn3%(YhI&q+VQCn81KarU|Q~bBxf|pgg`S3cOcLZpqBR&YzEdf z36V2!J$TwLmszK=ykk9tCoZ$pfmL%e{dg4EcI@|&*(v>`4y(^}m-bJv!OqfgJ|t^i zYgV2-h$4z#WRZZbZ+ly3D@5hRE=L6yJ^`k18nj!eLV)KIVNGTS$6zQ>hEjy<- zTw1vECE~hNu64WAm1|jgTJ%q66}op{UH=o8=6I;g%$X@Dv^$NXushccNtGXOF{$6N zHNWBNE?lKs@sh#uR>OB6Tt455{?nEBRrcW_p*MKr>7%hX9Fc%8*Ki(Yq8`K^{_eV3 zTx7Xobw^Dvj<@ZJdoHkziMcyiIosH3^qB8o56_PB`jqC=ab_>uU)SsgN`&-%-)HUZ zGVB;0c@_xwqWM&9$6z5WY`PJ-1erhV$f56FS#Dy z!_R0y?O1K|@)vSTbu_g38CQ)FG$drn-f!p>EzVG zE44%LI>Re)JVQP-kvj0A7ObGJka3{kr~^NOo+0M%t(!1KP58wkypH(!F-)tN5QdG^ zv^nEl(Qn7A)IcdMUld|0Ibl?j(V{Gm0*)BP9Aq=^4pP|)-v|!si~dc~dzYjfKoAdH z;wSJ5Pamw-rM`KPwIILgxSK$kFGCPLW9a*#TA^(7r;ga-NIAmcXYPjE24z|$pTFGY zaMZ}9DUjp%{*dS`P5QgrKVzxt*}9bf{J=R*IcJug47K*5m4?(p%)JEC*5xe=6k`G{}UY=f>4QTFjj&tX5b zl#Qv+QDDM9WnzY2JC~>kSMnOrewl4trKVG`(@DxXwX5^Zo`lPe$JXi6>cT<=am>h9 z-EZ#nAhUxuCN-s{5bFU_lcLM zIq|s687lv;kc~iRP^S!jPWZvtRV%NB()!l_7I>O=928eM^}f0NGN;Nq;;Ec`5{e=vQ^bf(}^#FO0CBDz_ju6J~X6ellVeBGyn{!qfdlh1-LgLyG>c!{3WRTLsv&+ULrr17*(m`t9f%Tm9k4DivqcU2 zo!I9#z&KcOZQ-Few|`a_xkP>4_Iul7l`lyJKhJtROged*?789~92U{a&G5e6rb;)n zAd=a1O^_xlQJb5E^tH#3g;XeS1K0zd3Xhvf%M#z{RVzK9 zS{*p37{;#QU@ya>XjN|bejc~ucl<0j|J+-HLvQ5jSN638W#ByzF!;G3=r1Md@-F2F zlr;}-nQXU%+Q&~1!PDf~1)`S5pGG2F?vw`pF}3`$;4la+9lpOVO9;iIZ;@79s4m@y zq(VUvhCj=1HsUTn%wdSIz`e!S{TcD(1qIIq;<%rhkf?M_Dsf&+tvd021}VmrCig{q z9jo4P;AYK7VcE%-_h{!{(yA&Io)*%dx%UczSv2=p39L>@`+){BuqQ>%NTmU_ zW&dhRqvEr%4-YnEe|UW|^TfAU!|VzY&7n)%=Pr(0KYmnBXGrGW{1=PVcSo;G-MfY5 zjX@yx+8Xkj!Fj5D1z_*I7@)d2k!1B60kfXX(wC7rie_X#!euN1Kl{bDNarW z4M19_rWFNG6hyC_GhLWXSaV70;(RuNx6cCl={h9pI3FVe(MA>qVJ%;x00sRA2WLgZ zi?n3V$MD6hXV><#auuhHkFaux@OH?!P^{mE;R9h5%zoHAXG{k*VNM#O#cN+84(Ba^ zl{f`a9QJnsi@^EMkaTq|9hsi;^n1r0YofLs`?d)Y0$;0puq;W{>YhEXMYYV%f6K9b zd&<>5wPhcb%&4qzT?kmYGoLiQ+v#oCwPjyJ2M(|9`jI(;3Vgkwft8k%cY$WCp31oQ zOsQpVtn^&2Yth>++KhI(f5gKcuuXN;m4EJNz#D$97mePQ(MSDAg z#A#}`BY?%8k8NdTZcIOc!JDI`Aj}z5fS6<1bnrwN73~6oG2b7L1=14#FPEYD)N+`Q zR)RDipmdVh0bWTqJ!@=qe`G(sm!w7)7OUa3$a`^}qHlfL;h`J(`$1RfS<0c1`PMBN z+lO=|UXM(q9a*hy+V)KL*O#M)Psllq*+1M`TY{2X!7fqk(LS1K9yalOJ4n8;5*6x+ z=G&}Uimd@P9iIcx_c6 z?w)8Wrh=$F)#16U`D1*GggGrvvif_Ev8Y1i-ShGqPXbS@wd$RS2L^N?O82>yL*!cl z$UQSb8%8B=focIxVOhFMCl3_QGg-ZeSx3kL?njxx^<3)jaG(?@Qb> z1#G8-XJ+9&ora!L>-P&v&ICP$0}Zt&uhWu@19rX3(h|}FKX5h<#7d!mSst#Y8o0xA z#Mn`M$(vZA{P1MKr0=V(s`$8MD0U^doH3!#SNLK-d_*d&vhn7dJp?;Zttk~#${?NY>Ium3>9T( z;K5X*txzFOcbS1Yv^!P@Pn(zTtTRV=J_lHBIJ0r(vq&m+pt+WVlf#9U#>dzayG>a& zc~A(r?l|_6DSx-`to-A7%F>Gy6U!Eb_<%vOg08 zvhOKy>l;`~PeZF*2iG)2UX<^vF$cwt1(uMxYm$s4Kf87*w&ccAS&t!g;XONe*}6UA z{x*lqwuF@2%2X)HpuQ%3k!(3+(b;^q<7|@!E>Hg6nLUboS8f0M;Ow{`3g^Z}h-M1B zZEU*)u#U4v5OWMZkIbj;=W{To?}0LgwU`wXQU}KN7VMVFc0(De&QMEUw{akIz^W(Xl~<4teb|NLVCZ z5W-fmdWHSxx`nYXFs~)W795h#1yXP*dT*C4tk}DRWF}VXJ*LF({t% zn0D>7d+qc24bz8?Rcb~Z1aOZXUCn!Z`Ta#IBdRV0_O%<{tciR^)3z`ec zojyv3&8u%_>ZpSu@@53~8^&`6u}XX^)!xfjmL^;A!DKgSozJxO&_&lY$<@1x7HN(;6@z10T$KC^ie+?L$an$DvjPAy$gQ$ z;stqAdixoqRf@VSHVOCV?q$Vc{aFGVGO4)6BzTIF?T*wvkH+umlWAMa+L=sO(Z6ut|h6ff9mc$Wl6+J~}IJ z{%{U@y@9Eji!lv^vVRlQ)m&r!e+j60`CLxM98CV~?Hz`ht7b&|p4}VwC%3#?5*SG2(zIyACX-roC#TZ5&kFuAKj}mLTZnTg2bso@8DNsdTsTk1-eDqIqz0txt3&GmIiaj1wsT@d`iN%)+f$}N%%gy!G9 zl9gsj2J*&_C+-x<`oiXZB=?el)_6uqYWs4nRh|u?<_EOg zR#etZgMDzznh3UOoGlKhsV-l*dlAVLf{@?O3Kdn*Ml9L5KhhW}Ch7$!bt!4w`ZuV- z7ce&GKF<3JE)zd?5leMqn0{RoUqLOIMu6kkvXovS@!8*()n*=kMF?F$dOAWJ2`~Wq zs=cmOR9k^PDt%2cA$xB@AGqVFY$3~g_J}t3$Y=jsqf=0Kf6VxBT690|R(EFKK3|l{ zzV-6H#~#lI1`XE3AL=iO?5%2VzQ601_at*!*V9Q_muG8D1AJrb5NGUE$r)G9mJJmtKmLQCo`UlT z6{)Wk#gCn@9r_H!g0ZAH`=9uVuXz{eLHj#M8Va~J-=bLk7^k9%UW-w~LrS|Cp*G{< zJk-tRq9Kzbk9a8tb!Wra~Skp22e)73e8=ZN+NL?(4aMrOtA*B==M6AGZNa zQ>386&oSST)ijI1SXSbLk-}1OLCqv=qO$JWk~T<-?5AL^*dIz ziG1*@J{;)e&#E>R`6j&oskTs9F4wd#WAOUK=c3ca<_`a@$`3C(o^n@|AaNhBw$fxy zXj(~If&x@m-+_WG;KnXhOn^yVQH6ne6<(h-yL5Si%T~Td@hIfarnRtLF9}~P#s(KI zp7}U&lOWxkz>A-y+Ta<(K`RJl-#?^EX?z@H9OiT)ygGzIEivHdRyeRi7gPTM#u#hB zh0&_@1m+-h0FNFbaS)~-EBE8@=;mYa&S_l+h)2P@3-c|-qzoV>dWPkMQw^ykVL!(yk4rB1;ONM%$?MnkOYl{eaf zAL2hA=-Z8v+HkCePK&L7p(k(JU0o+56sYs6eR+=F86-ek0pTiJtsNJyn`Au*mJx6?(NAbEm;I83V zi?Xf0!!4L>OH1>mB)C}!&%B>_28OPOys%Qdot1-tD5h#v8|8t=@CZNm-QefpQO}{l zM_u3;;hM+I_wl0_p>c->TNqUo05c1jUeOG+_uy8jdK=m|oseSr^(JLxr?6W_k3LvJ zeqM}LkV((*GV(-wjT{`Z#In5usdYz`ho-$zhr;QT(r-6v4hJK$%o|4#U7jj71ug; zhNmS^MqsS9s=(7`jTPvZ=39_)3JP1^aB_(DV(J52q%)0f1$~t8MVuLlF*^8T$^h~> zKi9nuflL661Xe9lFuKu*^%fWUA4(gtCVSLx*AhQK6-cnH-7D}A6aNkyI-gJnm>mzI ziYIlj>C3ea2$A&+y`ZyP=-#^YwYGk;aB*DGoIWo9?h=f9iuS615Un_7grzDF~aD9847zpb;QUt{`Tz?0k%(bz#BN zlF?9-$|{VK?6n~-Y}<-wQc4cL2ozwqQf)57SfJ0V4edR(-VzKL@}_Zt!$oyRmehvUgKzX0)aI{ZU589IhJ;%`PG2XOcQHnxEq&Fi>86#_ zg@58d?ugbno?msN_UYeDzV*Vn#}S+00>oAdx+$5e_KpKIrL{l&ZA>rj#Y70%lB?eS zl2~Jylyf=Hl0L{l%nT>hF};eXe3C}uItZAPw+UuM^k8W$RHW^v_I6b`=u9e9H!0Q# zz#GiC3Q-D}6sa_a8A`a9)MkCK#DYBBUKHR_2r)oGU)EkAFgqZi0~X}pE>M8Ft2hW% z>lGi`g2sE%_Qonoq(y?sUFMRn5)3UWDQX2(dTzVhZ@{PBBm#(%=P*?IuN|EE~ z+{q1p<}jcMfW*T+!=Oy=ZEc+{aCK6gIStTVoTbtLav=;Em_A5Z4hks8|1c}?C$K&v zQX21uH&=VJpy^k_GXgoPu+NF!NT%|2|3jwYxFMszr8E|R{l{7igqf$9kd7346pkGZ z6*0mRx*I?D;(WDFdfpCF5Eyzb32e_r`w5I55u*pKNBVPWW3h~x2&UmJQy?hpR7>JF zTNSC!DhC}#%4v@}bL7I)^j%V;pNnlenUa}0U#i|esXlUW&B?o!&vmX(Tzpe6`?P{H zOWSAa!n?BbFXR%i=c=0RK3gtORv!F}1Fut(A&D>6A45e*((j#PKnpOE8^%EaTOvSS?z2;rNfVsSs0K4^8>x@YLnl$38NSa}RG}oeiCV8YrI>J??kFf(OwW?iSQF>3r+~;>OgaYU)V7A$&-(pgq3xo$4eNytMKdYpxW#*IfF!bZfEaE^89KIHYN%j zsx9nNDUI7C4vulfdncaJ8(-3GV@E-~Nh-6(T7anJ5X)Rdj-OGs1xNqxjZGi<5}0Ej z6y-z)Mqr|{I84N2_Whi($h$l|CqWA z54L~xW`7Tv%6p0VV;_GY3pXa|yIG+WOvg^$oIqtulVHh^n+hrgL_U0^`d$l2f&Geg zDx0hC1>k_G7Q1j3*$o+qs&fO$QHDFT=+Y!XFbn}a^>XnbJW(R_d5PQvr6wqzZp3)V)KlINzx zJ1hS4S#LkQ?ihT{j>|iQR2E`G|9HqgQk*<4_C1Mg4sdv($dgA1+HX#lq=zIaR%{s} zQ)!cd+-ta=Sz|Mt+2N0hY9?MoO{yl_h3g}{N#3IDSLWm=G4UrvD#>XI?Dvp_qqJc9 zI#Iwb7-0kR12YJ?o{s4NuIM zDn?-VU2U7BwI+z&aWiPxi(gD47+Oz;MQ_ZzaLHA$J$n3i&wnV6hi)f*FNT~X+E&GH zXrZ7V2hS5i16Q-$D6L4UV!|1YJTv+=!W@Zh!$qz?DLlVTJv zq@ct|oi*rudH7aO-$PEL%T_05S>LoMuJ&9zkXG?WO>0hnhr!5;pIxeD$3h)X$~y~4 zH7@(|X*ggHpa1IzfoUgW{!%;@TDHjqTabKVcga%H4E>eztovT?A(+r31Bdfe-Dahg zT3mw$+HFl1Ob%zuv)V#MW(bULgDiY80zWmvAgVQ+2$6$d`b<|$3x{M9WfTwz)swhQNpide2v>cr7fhpfOV+0aCw3N{Djg5W9y^c02=aq`QUx5 zo(g&UEGra9%~bV)JQX5ftQGK7yvdu22@aXd6Ha~b!sb%->C#w2uz*8iZ^bGHxD012 zNEe(y@Ru%U@Ix!LyJCI2q5!R8%SIkt)l>BaY<3+W!O9B!QR_or06tjB5eEddHm z9lBu%ewcj!?|oiyDF(=DZ3jsVQBD9KDa_Rsj4XGw6pUx|Rw984zBQfYy~;2G#4-hwl7su}O)x54T*P zm>bbSe%k;%-UuHA`qafjc-VVNSq1bHQnRw2+s_~XdGx3G5i@_TsCXx}{^I~>k(5@# zu~JI#ifK)s!WZu9+s*PO3k^36U;2Dt#{H;sI3-$My6jwY(d5d9nahuD92qut`!CO~ z`S{M)JLe<+(JgD_8bu~0#yiy2Tblw(y}triW(Wt2NrHYq*^s_l7?M?A{m?Kp;xOAv zV0K&ozAFC@$(xFr#i`+WF)in?Lm#3@FHj!{*@{tHub=J4G4c_*(7ST|{JhrB(mygm|qAmx1A14CDjn1yGNsYSqwC#^*()rPNp0Y)AS4eZoCn=4+(a!t~JmbCfE{w+2#X3IO&|+j_Dz=L2-48~+}xFMpU7L;#h9H>6`uZA83L5Y@SqnlvT;TP zTzNaUElIqwS!owMj3`>58gcmthF04Lg9W3&@j{- zwm5UkI`_)wo4trTf28wyope*)x&I^mF5kWGvsW!uawuU#)h$EB`&uq9XnU>pW&e-I znR@l$f!P`<>f|w+&&IV~;P>1u&y)w}$ooG4221BDM7gMHf7sHlrQjS3J7EOMhybNf z0#69Kd{G71(SYkoqK8OJ@`G2TfKo-q*h|E66~a98Asn84Z!|z^1PE-33N!#q&k-E%Gd^b6tt|Q zB_WUAu>>^>M?>M7kzmwPLSIAXjoID$P56&L=#Ijp^c86Zmo^TZ1rF{rS6srn1h=2bciM9F4 ztVQTJY~i+vB*mY~>Etxke?>Q)3FR_T1wfTZCI#hQzZfc#sSd2Q5DVU87_^v{wg%84 z(~kcDoie(RV(tbMS^o3-*u^!6NZyydue@qkL~`J;-3AjuqK!Ep4VQ98U3~qBf9I)7 zlC>XKNWE(~xoJp4%`j(~@WFMft8P9Ty=4od)1(4#6!ymowhP|G=qP?G|*%!UGrmSdpC*)3DoQaRsn? zwK!pD^n2I;-bIO>L2?r5+vMvh>?gR&JMkI0`ISliPHEH2|PYn{FZ zTA2uABzGxQj3H1e5uPU>+V?CAn+Ug{uOjxGU_ZoVA|7IFV>>?BCSMK|K|N<428dJV zQn( zm%$P#>S0(sk-U}teKKD&4ysMf1te3FA%u1iw0V2@{*8ayZj;y4`t#nSIJ5P^77`MS zEblNk3ZSfH#f0T-Pd*ZkH)&wNx~x8Mhu(|964M491G=;%w-52;W84o0Wy(lYHO^Lo z+vDCkp$?@$wxDdXX8azs!v@MCKL`4WB{gNAOPis>L_0k$&6q5>E*jTBp;JLOpR zWXK9JOWv!jt{9A|((?u>!svteEo%UG`mYDaAhQWedPHy}dc%$cpt0B8AhLgH;&@hN zyG+t?a+|BOE@1f#637wNBLvXQ<8Wpb!DP!Y0!@saK@JcC;*uj%88GLiOCMd%`0zkM zxIF@_pLsa3)|I==d8xDqMF}@1#Iy@niN_fHZdUloiA|claO!NALZrO?;+pDHng1+* z`s8EQUzTSL5!O8!zTOCYV9~>1Cc^AhxA7ekVJ)vt+2k5K@%4HqrUG^*1&aV54J{>( z?L(#^9$~I)?1E3>?7&R6qJ|6_7puL7Io3U%5H_aU*=danp{FdllV|9TcFlyjU|ZvElMe zeINky#^M>}(BJx!R9>}@0Y)Ui!ZjN5=hmuaY*9SOp#9drix@1o0J3>yA(v7mM$Z>g zK|J)wU>;upN3(%eTaE9})oY+hW`_H#fd8{29*p%VAFfK_A`f~0M`?h3r)pyH9|I{S z%q=uS$wp`=0O#2!DS}}d0d2#yVS*^izJ|4*+6s5*(#fhe%K3I1Yi{f4xeG9)9vk?e z*{nAtNh`%wZ!!~CwGe}{M=!k>*p(3bXhEuFqmrlOf6WifOdL;9_~|8#aoh;rAPrU@dh}%x?$T)_$1Yfe z?nvf+K*sgQDD=DwnrOi@iaBl4kCehA@#(1l|M&;)>NwRe!2Uu* zpsgxTIfI7a*wbV<^u>v4W6Igr4aWF+K`V%vVEcis?gZ|}wA_7O6m0zx3r4=beO!%a zenYN0((jlBEfeUq@fa~b8mbejUz!d?kE-G z0K%iDo(&-2wbwih*X}H^j6eQb*0L+aR6W^6@BHnzxKGUoLRVA~R8O=#Q~h&AB*^Ko zSj;!VqB-H#KSB5Zdwg%Ed(qNT^5X$u#^?Hy>7=tGGF45eb8MO!(1$yyOt@VdUtC!z zp{?K+OO;A<#`@Rz#D*>dRTF)|#s(rND*3=npEE{!?1IBtp|YU;xEKoX94zT10&^K~ zK;{R!^)R?T10JJBS8~}Q+ts29-Rog3C5T?c9$Z-kP~PyTfD2*`)WB=-hnMbP!?1)b zY)eYVkK3Emg})zQJbu=@dS2csUo>U=YX8>Xy_tGV}AJ8`2le=TN1Dl!TpTbeU<^k@=XWgDv;uB<)C1%746 zT@N}Au@ZgYuhSHC5M@8a1BU~xjU;2GRWHT7fbPJedT!sJl*4ot6?7m2z=BUZj4V8N z#(?5D;z^EGU*ebG{<Q3>^10tmvXTud~Jr* zHpwX7&77UNJ9g3X;QGK{q9dk9gF@-Gg=0gr|5)S{6p8;&`F6DnbfW|~)DhrTZUS>V z`#rxRV)hFfK%gW7Rfp9Few_!`3iENwCMp`ECR~PR0G})9pad5pQhkSlWx+Unolao4 z-;}B1XRqY*&{9Ac@9b7;0KU+P`?T&1fa*Z5>1y#T>ei~2Pgz_(~8RfVT=9W>_}`)D9Nw;}}MyWAiE) zKepO)`-&INI41Y{u@h_J8ZegS7CG%@pf1dOz!WV7J+lE@~=7H(jQ z|LJwB<(zDUuSxLPd&FBeJ{_U=-ISM1`ErynDe=;-?8$!i$xNrb zyQ@A7{4V})k`_9>)uNamf%Vd`Dh_U-wi$&=D#37UKcBZlzW#ON+&^ezmciJqwHgWZ zur;X5R}m;uCBaMrQwpyrgfeWo6f_4ZwqfJYKD*Bb5z>+ffWv0b?FjlfQB5!wlMg)- z>1uHhpFTqL5OUcLc7-|%YFHXM?L4-b1Cg7Wc2u=2QcP$ndF4?^QMOveQfKOTn8@TO za?Hy{eHGa*#>d_m*>3gQb6m}!aL6-zxag5xJ59}k(7)Qh{(h9#38%tTgL#=2^y^*S zYqh2SJ++)IUJTcqjQJK@cat-s3TJY`9&Qa{RqnT6RH-mvY+5{aJ+OhNkobYeq5%XAZZS|aKI4HF~Kxe zfomk#NOo*LdPmPtK-x|G%~I|A~t@Js@kybT2T95$Gk+x=O;?fHQm2@ zZZ_bza)_9w0sWKm?rXIrf3wt%P2n$aTwq=uLj)bbHH89r;_er4=pc+sFs}PQj6W~Q zZK-#~gCQN9vLGVC6(W*&A=X3@y-0+c_gsXr%Ov_~067&p1i+Sc^+S>n=%>I*4*$ns zo&=YlZRIRbcAz^$Tj2&MH_o!5>-d26Ng`7RpTX4vt$b*e9czS~hW+`_GnvwZ4r(dr z(rfXe3YQF6Z~0-Y$sGeGU|+PuMq2hWis;fvj{&pec^&DH?nQw;enAVKPM43Z+2VJg z_3YZ|cwN~kZNJPD5jE@bY>T7BqL)9^TBoR)JUywQ?r(o6@_AYCvcWz76A^jjA3^*3l567Z@cR7z!2z*w-im?VKdNVBG*8^!uua;-7Fh zn5*TBD1P)`A7*}uiJ0nh9p$vL|gi8`YQjHR%06K(=7Ix~{ z5i|8NAIq-D*`n`YdqV8Cc7sm-D*FgUk$}_nKSjthquW0D5NBehLFRB0HK)hqKs6wez zQqJa~4Oo4!X|H%Nf9DT$bv1rqkuJ!=)-*qaKBB|!CY*Y4`rtbv99E@XJbcA^skDV- zg2@80IvQvYa6Dz;o(BFJvoz_C8C3}IhU4&-Ng(8bT#*b)Ifb%#Yy%LROoj%v{b_n2bD$ zpRsN5pH$@;{zb|OV(ZJ1{$hG58TR8WgV6(us7C;_)ZAnMQ0w8`dB?w?+O);Gd2W}W zSIL;WK+w(v1SlrB_iZd~(Yn=C4X{WvOgiX-PZ;MiIrFh+e~QRzdrbCz}Q7OP!W~? zX6Qi9okrX0tp%7_i3HwRqXduGG(=HLAqVj+3#O1!&N*XTSvdRVxr$vT2z*AEXHyD# zzaC1c7=2DL0hZABh+LN70)2%C0bPr)hXD4|hd5q0$clDE>}+ow>bAcboNfahvI8Fw z7vO&(vfoYfGbDXT;L^xm&pp+)DH;O60xhu)Bk+DiBduKbr)XdMd7Yt?g7qKo)<5}r zaVvXS%~36-8JcTEl71(M`KMxpe!yDS`@o>{YtFi=eNc9eC`fM$^x_-aU8E!deKS4+(y3TQr_dS znb%~~L-fqen{FP>Jul>L?d73&9~WiLTdP7n$+&83(7$rw&EGigjx@7+!Hw8dj+uJ| zV3tG$d9oVYg*9TY@s=OHU@m6|8Tx7i)=U<;BdG+(@MgTkqBE}=C02yxtdx@)f zM7&b3ufxfiqC{dQ@@I~)8Zhy`d=bXsA<#kbXeUG|gq{F&Q@3fP8WM2I)ot+b%wvt)}riZ;pKRLCakqUFtlW;qKYC>?$dDTl&bD?CWcLT3(DF z(qAfg`ev*y`0T#61OfD4ByqS&;?%WsZ?^EVU$$?GZBv63^OSMRAKMX}Xs?l8&oLGi zqbJ*Iq$to`&hY~r2%7eJ5YArMpcgvuTomcS{5ilqcG}tD%6OCIh^HIdM;_R>JX>I7 zNie3pYTQO#0`fGpFS_Woa9sbZkrfX==xbS3*Xq<>OlgHNA%M29 zc-@QTCkza6kphD^=_~*)io-*}*iK~uc9kTM&E%+Rm?^90NHC759$-;bP*b|J1efGV zE*r-1QE8XDjVrsOxff5{YLYgy29Wn<3_SfZM4s&ITfb{Ndl00%0H2Q>$K|vtBXz*97@X^JbFTI z%gNT0rsaZDTMWiOOn))id9Qz^U(|8wn8d#(g_?w`NBfMl%nri^2mvANDg$uLHP>FS zK#z)hUk1rB(iLHpP1(!aj6$6Cq(J6$(SREavLGRGKfy7)PKVt`Zv|*LW}`Z&x(1Gj zqR-eKc^d-SmxOA7Td5J|LVY@q_`4r7RwdU_4!!#&d`Df=BVg{)vqzI#Lmek3 zP+|ML-PNzI8{AE*;Qj5}iWBhkiVF~uEil4H6^5QUz!d7YqAfe%tmjttZp5rKc>S#V z!zs*1jWgprs-=bFc?r-)=~uKBj*4@>UGEGW`tA3!e&|oQ18Z@9>;W_ai|hHg=gQno z_EUMH>4c~zOHU~(L@>sg%fh}kuZu~X3CrMJRJSL`1y?+oeE?EIPO z`J$BRN#xL)s1wo3j{h7y<`)7V45>5Z51#g!9<#z|>l!?7ZW)ZU zkK=lv#f13Wy#}okq@PHVVudaTq-AManiwyH_J&7N1v!jygI;38nSX~}o;bn%YKTXya;^F)3EK7*hkhHzJFnZQlwQ2i|EjfK^4dwh zJNx!($6N(gY45aPyL~px<()XA(EroRzq$4NYU=|Ex|Ti?vOuhqNrC7OUkNS+sqc74 zP?X8sW`b=o58Gu@iTqh+%uixG>t3jU!EyEah+-tlniA_Kl}2IvigUiNm)Qyh9X6~Z zTv?8|ik3pMJPS~*n9nFy=-sf=0Ng=!{FW229i>f6fe*b#GQ-m>PYEPpEbAcdEZ&WPd6}=U{gPOp)ej1m-lMsa^GjUx*x7-$6~ z4AyL6UauqA;=$Khn&^|vg;WXVpdD;aDr77O7Y~!}=XFm2H^ck8NDjcjm$^)3YrS5! zo?MGVBkOsbcn`%;rCRRM@a!_$cm!wHQpce>@(&Za^e>BkGqrp^KW4F+LjEy3)l{DPJ0??%nrX@S#AMk!R!A}YO z*mlkDR3e0($%{4*6Eh1`2>P+1S|J2|?l!PWgsub&1jTFG?w#W=+0r zb4fu~FEra}?3mV*?GiiPGdufc?EPy8H1&{&N6Gk=ZE|1lNhKP#{?Fia4EKLLeR({T zVfX$s1|!R8vhPWD62`s_in5lq2uU%rXWvKG%93m$jBH7gC9)UMVjGk#`#NMd*_Yq# z{l4$-AALUhDDyn`ea>~RbDeXgnZhyx+ndYt$qDhf2L14YwjA zY9PTW$#sAco8o{J$HmegFd0C71PAZ$GA2!haDNJi*k@>>v$etbWC6V*Jd^4q5waLL zYe50tJy#|b=&3LQdbs?_2f9-fd|Mt5J_a}#+*n&sUnu$E!=JT!dPY-~egZ>uXiv}> znLH=I`G=%~2$NYfwR1hrW$n!KqioRcnKA#cE|ODEt)`}`nAZLva(%#hnq!7D-Cm7R zx7a2*^IcQvf2k3sJIq-Hil-GEJrXQ*4tduPSE=E`Yl^M`O&wyW9~=&^M-8IILoark*FJir zRr)-8;@$J$2=>D#K5r;yJpR|(jiCM-Ysa0M4N?aU!G#+rvMba%Xh5dlJT2iZFNrLpEkV1z~*i-ANQgkB|?M zd8~Hd6bLSopgS0u%?qL`_HWoF!C^L>Yo)soi*|3zhBKtt*j1EbIu!pU=!y5Q$9vI= zjPX3|uL#PyEAsE#q0)I`Gt*byCu?1g_boDttg_a-;#Qpiq_`w&R1U?l){}$Xa&!Ri5NQY}Qh<3w0;B;3jyUZG30tn@ zgnLs&*L*UXZ|5O#S?u=zvFfI=Sp-k%fq(&MOuuK0IsP?yW{k1Ev8T=gji%#|4XviZ z#sWhVx8IFE_aQ6g$+oUAi>GUJn)de+M@JHmGILBnTQV_=D)bN%)LwoqA&~) z!s5IHHcZcXTvH7b{@Lkc9frHep_W+dmB4XY+2X|d;XAUZ;t+K%47p#26ar+aNjOO# zyhCQo%~9=J`3?{oNk%5(e&3n@R&tGe(xu+GWjyXSTbUz;;-ul%Yg!Js&AJxqzZ+fP zVKEPGK~U1CeV`3 zhT&oG#3yXhTCHC3^WDU(Ie`sdr$y=`5T2f8QF&7Vrs2RKVtL|*0zmjBtV-QsTGZO0 zV5cPFdd1^R!~ic!kx@#e!pYi2_5Fj8Je5>@ntNdz4$}!q($YZI}LbzcgIv zd4!lxT<>+9G$vx=`y1!Q%W#%090ZtjU>) z7|#i&a~{i&9CCyU5xAI<`f-n=9vWOUm}(9BAmVUmqqX{#n?jaFROksaJ6({na^;PM zzh+o9H`Zn9I~Xwx2OA9@;k{$C%H6@#NBxr<3z$sS`g@{oke9Eh8;mIZCPnTM$QrJ2 zKqp7*ObMN08y6%XJDIik7_%?Y61fIqLRqFL;K^K0>5vCF?%VeO zv9H%R260`JENYENIBsbBiWWDRl=gd|eZ?Y|bh|=I;(clg2NS}fq2z4NKl_hj%#vyA zuWS?j&N=-In|7A<{vTu$tprkXvG9cSd<2Z>N~8Tppaml6QcL>yF!0J5E#3f%I$gdL z;h!zQ5mJ=Ufh35uzo!E{Bam78o&JGCO8PM4*9L_-OQBL()OaQ%QC$|*lmc1IVOW$w zUqQ3LJ?2@f>jkeklh{b0&G<%WO7OL1uoZp`R{$e&=xr3UG+<&a7D22B)-W$wCk=b= zcXXn8c3B0t`0u0?NPW#$SQY<*z4g>)tEg{hQ+j>n;n&}OQmzZ%su5E!-S2R%ueeG9 zpV|MD6^T}k5NogXG2;RA$P9Wm^j>!X$M}$E3U@l`2GBHk;1H<=q!Jx4NIymV;Ld0) zKMCkwkTk|v@I4_PUcmwRK@RT8iDz+&FPI>u7-$@ZYK-QoKJk0&pJf?iY*IU0tX#N$7@AU<( zv+9rBzbh=DNj5bGziW%Siv#Nsl|7UNq4h%%=$5e0}A~xuZP|*Y=`Eek%*C2+;E0r#cv> zCq!iP@o}O|h*8T3&@U-$Rm=}Y7&$!umJp)eb zK;cbG?&57Sub_zVfe%}X1hx|Q%Te2q7vtfS%#3dE3g+$H-R#KpQF@|Ik3K2T0 zXWq9c1WB!4_lZ()7O4!XMyw`u6D9r>N*r@t&O6 z)QRtXVcR|zNQ#7EsLBg3`sre6_WTvw3$6MW%|TZR-KAd_e)U#eZhF}SyIa&wn@j_r zHKMgXHxOYSnMshlAfYfgYuY1nG~i|67uGEAReQw!-&d7##=mial_5h*{uUSZ4BWR6N*Fb5c^j|)V5%uNh>%_sm=*8T%OIY|=pl06NlZ5F zc=qv=?8w6#WSr-Mzui?mI0h&6x~YkYi4X}aPu%i|Nqnyo^ft z8Lk-&OAIaAX^x9wDn=@|0PNA5QPHMj38IU&kS+N1!>l*l7n%Rm$-f^jlDRm329x^1 zxie~<{wy-BGE2eQYj)_)P(B3AjpvZq~enU=3g^o)R%}?qHJx=P;B{jc~ z-Yl{}WTAvPgSeWFk~^FC@AHxHb$>N?<1J zPwy2LhkOf^nOX=%>|7}qmK?i;fnzdht0=KT6m&>ZIX?yQx&BQiv0OD zbuQxA9h?smWf8DV2F~j(aVK!QVxg6fIlU24O5cNSUhER?e=s*mCTlA<#eN-4^SMpQ zD`%a5zsVg{&k-zqhpaWaVM=w~aS9ns(_r7R62v(#d^Df(W*H02Fb?Yn&4_>8n&;eZ z1ndLb%Dn@A=xDJ2m4fF;wM$1R&lMqX_1Na-=7kU$Ft2MpC~y2!Vg{jt5na;qMG^HV zYTI-QiptiJCZM3Mx9+S6#S1N8kSGmW3oZGxct={01)a$8qa8e3F4&$3 zo)sM0XP?G^0u;h~a}ik)?DhVYBAombSnKv~u)N41f((Bf8u^RqphYWbvqDv647MiV z`A{J8N+uu_l!#Gy2+`Skd0jmT(lcMF3DfPN)v88 zhF{>s^i)tIE_>-Q#eeBVqV4e$ACcg|#JD@dFrrrLBZ8E8N6HL&0wX?f(KBK+ES{1m zT}YuxhDP({o65h^j9|ypGeC5x_-b0bG}nc%iiE;gE`=*GP-7+%V@Ejx!=9VE3pIwj z<13%Ie`iF@%e_3)wZ(A>quuK%e=GY77bX7+-?(jfw*$+UyO93yNbv8<)CP)RiR~tC zfogoG>c#rI98pOtJy3Vo%`=!Z(-b}&w@Lsyw3!@#a&M`>i2j7@YzaA@LGmU}3tKoC z(@jO7&70xl?2ITREmL5br*6ff;^RicvNbueLSNNk8CT^6{)li=5!_?kt7?!{aq5)@ z5!SflJD?pmqaW?1EftP5dXekaL?> zqBq%$z;h5bE?ob==fD%P8+Nibc-ozgMsmfI7QsWAslTW*`;&(7D`Hy;BoV9zxT%cz z+gxC~b40c#Zh%A^t|c#oQHqq8f&l~@{)+Fg%V*0Ti8h(q&6X!jd_saa-*ti0Rv3$# z^2;`vlAp3Sj%hWSA_hCmEy)b=tURt$iUOVrNoRfZ9aMc_&`f0spZ)!a2u6>+a zASiylm+ifhsCi`5yQa@+vm$F;3s%olBIm?d0^Fu8GtWf44L{fxZb%#b(r_jE=(W45 z#mE<#lfslY&RF2>#HkoVO-()ITXlFCr1}I4cCsGQ=@|AG89ML?q(CH_>xRl3L??iba}Ua*z+_TIubt)9lK&jGTJ{%nV(xq4tF=hN zk`dvbm#~3r5hJv;)oJ29$2F zmj0K`70XNz>s5G&OA}j*c6ati=NqPBhfA)#`jmQ4NRO)c*CpTVzP;7wP9CaO*P4Z- zdB)`)zXaJxWcP6W--}2PadlIKan@B>)WPLq5OQ^vewVPE9-ufj>8KvvWFaM9$;zVS z{0AX?=kQ~+=zqBnC^J58YB4B^**WlW9-hr5!)8uX^`OWwZtl>C*OreRffgUmS|yt+ z4Ae8<21WIswu0|+5&dwo1$b{t06Pe-<79X~E->q(&KvI^1{a5AcyCeSkeR3@&xpdz z8VDQfeg)=5=(2=JQ}00xCLVe5rI@KAGR!K%@A>$}JWnSSQX?J^u?Th`R^-5H^fN|- z&BjLx8h44xTthfsVB&hjNt-4Um*~8a*z|OZtu`a_k%N-Z%Y8(k#4A1b(G%v?Z+S_J zNN3)o+3vwhzPO_w0$(VOs#D%HywQV^Hs?Bqqpt(xVcrKEwAxN~ii{Wp4Q98_@r&f* za?{~-ESVRAus;b^XAuPs@8IHG#L2U^L0rUJxa`{A1rQdZsIOhR6IZ$5==fZ1bV`=3U9nHCevDk5${6D&PBwt@iGHQN?c{e z>r13usA0>c$0v~E1W?G^Kaf%cskSc=J6oOPbq`1dju{*b*Oq^GCJu=fr2s)q>O1dg zxep3S4F<)GY|$$yX)flotwk|UyvXX$3?>JJNwHy<&U`U$`9wml+HZfU`OvAeaCz&c z8__zVb)VQ>)M990y-9o6w`}40rOB3Gghj*{YP9cS-?lXZ`yNt~A+Oh^j2T_a@q>Pa zgToN|nfnJ?G%Y1z64TEL0v_AcIvL4}n!wR#EV~OEkq7-)kcUv=vXSy=3_X7r72=Nu z=dZAMGGfhncw841C<~x{Hadc#BQ7N9=DwthhPDF17llv+(7XUIgXy=A=nHEim{q`W zs)9*y0M@^g12DgTmWI$C79X#!ivZ;%9a=^6Dc@bJeh-P07mi&7XAj|tk2|9>B1|C; zvl!`#%H>;j@OyebX7EK3>Xv5A{h;fG{t8T~{Xb&mxgLFF=oATHC`vTFS)Wcb^u;v> zo|CcD;<&ngR^cGxGM#;&4c)ej=*?O}4n0BC?46K^NQPRdYA7!k+TETF4r?uHT)7VE z3o>L~*mKOID4I`x^My_sGCr3K)LBedmBJOW5#!z;y=y<@?+`E$&!}|w_@$tMz*DFw zNn)Ke_%Oy%Q6ikuGAbu%mjU0TXCYbjZ>XRV5VTcw_9IU>gcXkZM+6afneh#-(12GxIWQ)$T-oc!AnVF4cHm&_8?38(EJwbeImR z6U<_8y(*hu(&8A=k@e9lH0Y;5(wg~`pK-^WIBv;%UrTGo117@|00uBk2uVm7HrC%O zTx&W&I+(q=5f+q+0b3@3*L~B`_MZgBr8hvO*gN)c@cme^agl29zFxL+dfBiM6AMe| zMjOkZb>K?K!3vO>%k2C7E-^Q^`3FpxcTbDj2bOPbLiXmW|G54oD4&Tdy#sz`^%`jPL6iA{I8TXY*J4sIvtVv4VP->a-+E| z@}i8boEEZtR|iThn?sK5J70d8`^fAEK{)986?K!r`$gt9!6~6PN_aJ+-q|!~8<-jX zHupH(_*OFUie!g>tjxOF(;*gV>q zSZKZvrwjr=7i1m5s(9)J=-=47wR)@4HLEHo{S4P#(mZMNx6`=a-<7RPpYT^ZQkO!> z_alg1n&`#pW zp;P_)Iy+EqBCW|z{oj%c{fhe-S8!9d$t;BK!hBOC*vh$46Gp=pF)Phr~Vt@?lJ{-#+v#word-bL|(%a*&?Z#fI?zFVnX zRP@P_@&W~x@qd1;*Y^A+eX4u3btG!?USpy}qu^&s##*yxLW%FniGN;so2>+svNp)4 zKQIZNQUuni%OvHxPy3ZNW=p-IHG427k?7DI%C{y84mn4g-F0vKjC0J6To~Zkuh@11 z8UhG^9@DRVa(+nXM+!=0JU78z9g*pLX;NG)yw5cGo~?K&i)@(Kw<0gq``3uyd9H0O#)R(8rLFv_ zame)Z2By$14@{c?v(0Mo*Ri@_U^?@` z7C!O1lZb;OCwT&%RXvC^84p}*1czy>F@ljSJ7j;+(*0@T(NKF;$EA9q!ieKh-}ZKvzats9k2z@I*tHrmZ{t2` zf!y9O>xz4AS;5C_C(Y-oG`li_S8IKFzhLFnua&rql_%U)3*Gwb=A6{uqe2huAGtL- zd1E-XMT}jo$J1GCq=Jt7gm8tDL{?lO3OU^M2aLCBeZK%OIH-*mu}go<2w~e3503z5OG8 z$H)T~kbtoMUN-UEZN<1vC1ZJL?V}K`oe=@Yic!$95g+a}zpB(`X!>Z#v?TYldF_GO zkNAB8Q=T3%h6=$BYQ9C82Vb8H{4myPMB?^e4(XkT*t-Smd*4)5a*Xwd&{m%D*O?d` z9&n8xln)D8UjKW~1{uUOt&3D+3gQ0mD~4k!(rQK@=^7Xy|ETFOiJF;&w*9R8H4G=mYEOCG)B zM$ofWeB%yWPbnWMaqPEk4YjHjrVCFgha(gz@rEiz(XSUWSA{x{1MR~F0)rK7-;!fT zVsE5AwukgHQ6Y zKc?rUWS(Pxp|eY>B8bwu4+r8|C0|=N1_b3Tdja#V^_6=Cxcb1I)u6QHU-{RQB57DQ zxjJywG?)Yqx%VMQ`$5l^e|>Zs1Sw;Si!T|hIR}<;RTCix8}+Iw>bTXxvK&3j2YEo^ z5DYxwgOtpHecfb-kub$y{(UyB#TFWg*?J+OGvRJ)q5jP&I=`U9AA)mouboW_bW(g( z_gSF~MS@t%6oOdUQ@g?A`yrFV6T94IZP>tww5ruHa*$~=EixmRe3w$dT;s*xN zXmS?s9nm_2kw8*=+=mma5&O(s;i*vEScAR23lYiIhNMu7? z=QWG9Uzi(vDX{a)DU*0&pt^Uz$&T$5cqIuMzPGHoWMgxV%YQaetckM#C?f(>WN@p0 zY9vl#_!D1uf*`!1|0Lvi&!I`{FG%W>#=(!(+P7H5-rT8`nz)b>@W!V3o=4%?Esmw> z@^3r~PCBm-4-dm^XsxFd0eSLmkPOeU_Hifm=E25TPbz4S5I>|nU726;#<%JKC4qTB z2CAvKGapci`qE(h8-4)-SPRHXYuIe<5drp81VP%vf_q_}$NBjWy{ve}K`AJniK@;@ ze($}^78HElWNV~;+v~I#djG3yi|@hq&-z0jK*1=QpEH%eMW;kfIG3k@?g&d3rusc~ z(?h+yum1U^4MRN5$~P*TzSdhKKK7raYg^^M@ryN2^;On(lct7WkmEZFswptdhnpSF zJ*79baAtb_@2!-Y-p$qlgtR+=QrsRochbRSoTcbp@vgTVc)AB{KI%Z<|9-YML z-3O5NJF85$R+>$S0!T?Gwm5Ei_sLWb?%(h0R~6mHm78R40`_G$!({10D{^Klhz!@X zkR7-i5d6k>vEl(^RyzD>ZnA81b91-i+*^aOx|yOb5}1Dnv}lc%8|{%~d)Tq5JR$5% z<5ftXk5gS3OGdc$!_^69k;9kFhBXuh&Q=SDie-1x#1GT>O(I{t8t4hS0^4^d1Nr<$ z-lFKldK>t*2*tnVOa~**@sJ2|yi?Prij9qt>DxPt9k(l(5i|huYctA$#T5~EPz-GH zQPL~AtPiwCV@F|Uen;M|{n^@oX{;}D_uAU78Z`WT+}5+DR4BuenZBre?cS50kvd#> z^Y?dZx4M-oRc_L8$TrMpIB|#UPB~=zQ@*|Lw-s-~2D8wgbb2>Z<8}gUa84uf4WypO zEC66U6hjoo~&KS{ySD*^Sb6`P>VxOaJw%{-O}5Vp#|l` z_0~NtRnualg0LGi?Qwe?&Vu4rb?BuD>tBXaOC=!yx(XV+dUN~^)cf<`!h9mWe%2uS zp>J;?r^iQjCI&g76D$#c7l$7Catn$Ps{! zZVBL`tVJd<4!>gwWL~W^MT=vtb_-1sX0D5Bg2r2Q z^(cHX9Q-ozbasRk!`c`L1Bzy~O~aMj>n%0ELvNW`$r%anKC&-3u>R>dxAS82eFH-h z;jS7e%@7&f7n0w_eqFx0@SLKz_+u>gv-J)cv`CV6nU>hnwXEgYmPtQn3rpY`gI{DSy()sREKtG|Q7 z22MezW4}Pt`J|@feWxZ=;>cDTi_M*i`)6#-+Vi30P_I%D*0q>Iz}M;>`cM0)2eaQ3 zgQ`>ZnatD_)@6!+@u%HsDcUCuSh{VbjC{|L@)n_SyYZr_%N)A0_=;O)UfiN#9Iz!L z#l-Szc@?|W!x_W%lVAI71lx+Uh-|)C1hG20ibr|V7n`q9@2|GijWBJKbSn61S`vS! zj%bA01*SvU^-mK-?2@3GvmWG zIN9+Dfh)Szf^U2}WUbV=#)2&f25o3QF{v)9dVPy#^RhppyG?@Vx{XWJ1OP;R@VRME z+4t)GLS+9mPLvRI3l#nqNQHQIc?NC_7n_7s9_40Hd*V@`iZ+AWl!;TeAtIcCfpAt+WmV z|2_5+Kb)D+50-qRQ!m`Kr*A;`iUx#UWhB6*8~UQZ=%M=M3L47-5^%WPD82%4r=3iu zx@5D!8(9}WbFZ{EEEMKGj*6*s8Ejx0+NT;zt?zcSCNvQr}JBLarQ$YoC z#;6Ud+Gi8)!2a9*J>B-~LB_SCvzs|5htY=K1;@C+9tvysFBCx{H$mOIOV&nbTJkpG zOHrMX-ttl6zhq;BTvDeVh#qDEqOV6Mc3=Zt9IOGQlvo)vw~?S;{J6%5pyPs_4oYd1Rp88>;;q2m}XnD+h_B@u0#*(UK&Msu}pn~XGe{BY2>_8qADkVZ{`C2D_~;FB;v zYny)=HyytrKKhaPb57{e{+tH!bMMvRh4f25rySq-<;jFdz1#qOXNRig7?o^2~7>{L9<0vLtld84*#42S@5QFHKQxW zj5174fsN|#lzq|d?|ccfq95-;0b_OEn`_DxpKhnda$UX)S!VuBez!Z5pteh9Wx#9q zpw8)iZIpy=fpyTvRaL`lN0&dF3FG1&ViHvMW5jO;fb+4}P*LOpBRpdkf6>;K0s_3N zs_C_(hS{!q(0Z8)dMI!e<^>K)WpVr+W)eY@e#0B6iR%#P;M!5Lcca*G*(s~X zU00q|dRy@LZO?iS#h&E|0DcE|IRfMwe$6yj1rto%> z7R`v{d^S@)uFcF#zESq#9)*kdYhSHu+T4@tGA8#(o6PDtzg^V7UcBdgNu|SSbaXfg zrB<+T+WRz2xrAY1X08}Z?p9dfRP8B3@oBB6SV%%g!wxwh$o%r`QTeuT_1aY8yP(0Q z;6T*`V!xrJDP{++0FWMGX8^%9GI{_2U~7e}&E5a0;ptZ~QN`>}z*?YwhbDRiq#Zun8bE_3+! zY(Q%i-At%;z`WQi$*5H|N?u znzCj#@A%8q_?+OG6@`p!6h17M4&xNnwDaU-^Fi^i+iBKQ-uO@kDDIRl2>kHozII@7 zkdVmm5Bmu47CELqdqzNnlP8o!{EIAie7Gm*L{D+@qWQkEqD?BCb`lW7QBPeH4v1-< z-qJ0V;(*Q!e)|_}msXvx;jcB_ReQVa)6E2Q0j2lT%sY%b9R{0K?y(0LUKT)85ck~< zZyhDm{C=a=Zcuh|)}&$!M(Sq9`*LP>5BDYwy?@jXCv^QmlYC%xn}3^Uv%GTIYqxL4 z9kMhffo`B?2V?X_N6aiM)}C+n>cOwDYn&04!oFmi)8`r(-amq6wY^Kc(@HlMnN6=r zB|pmSlj^1|xNDY9Gny3iVlr-0cvAjEHua728!uR$=R&u$T!BQ>?&F?k&uhe7X)zt4 zwq-^IIBBv_@X{N8V*&ojuLr#cc@;rkWo3r~7DxVV zDwDiV1_L7li+9RmvP)HWT5>Q5>El-6^Kar zQEPB3C3=|gCz%wO2?rQEwZ|yR^as#Z{JR>GH=ruslbH?Hjvz_J0})y{)%QYH^<#<7 z(M#eZ7+O#lqua_`ZMls#i?tSvIhqdjw>H{-MNr~grFh5ug6a~v39*-#Pf0*qP+9D0 zd(Eunn{E)3sIyN3qHkv2dYbn+{_SNiO}CL3gv>B|b!7VVa{(`k!Kd+Tyk_@s>P=S= z6#5lU$wV^^1?7_{{skmYGBVQ+75SkroK zym5HbL=5A*^y`VfS!i_P5=Hu)xLm5fIPz^*rd$H2!e%6k^$j%sB`fEIrCa028-IZV zIrrtepTWcKoDfJ+Tx;0cwbpp(&=mUyymFV3s>R;C=;`G&>i|cf1eu%ua5otgc7dTH z2d5Fe0ju&ad4Xrgt$syTRl>{~rwYi8-G+*{IU)N`LIcJmvrnEpP062H9jo8+edOJD zU9g;AX9?l0+Orgf;GV2BEj`WXp)>us9VUK!nbSb`boDOFNC< zC&J%osQ()sh&EAPY|$AUHLabnG@UqTygN(z8Bk6l&0u$2RJ^b~BB78ox()Cqg%?-2 zVs8vnG+)OvpONuPdHn9YqvEXoP^xSE=cNTJ37(mf&5`JC;^SzaPc+kB3gg$Ix;t+f zVF93I+AMnxDB851X9Le90-B7!LL_G2lxKqpYRBIvgf*UuT&g2pkcf216KfR*_VS80 zY~uf#C!cE~Ye6ewCeSolKSdE!lH-zJd8^*X<@B}rh&cwb0|}PjOk9xl?UbF*p9gf0 zXgeo<{C>`>xyv3*dl%@Sf*yLU#0R=O@qMW5HbA7E>8d$2-KsW1d{l}s4Ug}^NeL#!wMlf;&Q(H zhq9;KjA>!{D8!T^WnLmGoF=Sv-qfFGm=QnF<}^xY%jg!x5>egCPZAzxTa9M9w$ilY z{hGxGITjYTu6q9C(d(8j21MPf(^v81Tu)6UYuUAjpsEfE7Q<+#yd2Yc;4JeF4ekwt zfqYn*SZ)P5_8$$0X}zNL!{7C5O&v9&t)Psuu6@KmVZh=zwRKM>^f;*Ls>ttLO~ik0 z&?*oZ<(Qkzsi=SY_f+i>w0X>-QD)t^+YpmPNkKv3P8=xDk;{ZZM_(BXHy;$_GK*W5 zKO}4*y?ROlg>ka9D{!LYNSGNd=uvMBgmK&PaoS32Ok*Z7{h{4a>e@c{`YZjK z@2I$u;-kH`-)?9S0aPrsP9A3wb>l-`EA-#yb{`M2rSxyd{FDgo0W0#W7C3oja)Vvb ztq-pEJVMgK@qUP#MxE;NKB>2+@9TEr%g(LK7!F%JYmUPH(ESqGpn0j2d`Wc18?85E zu~mE*;g<(^q+%Tu-l6-|k7}L8ORT3kL_8=DI!*sU4}};1Bg>nA`29Jr<+7sjgEIt2 zE1i}Dx8Y$TaK`O8&L7-1Ery@+db>XSWx3@6{~n$`>N;;zEhH{T|AXo|KhPqOlE>qdmPGfLbl%E3rSCto zkAx$Qjf%P@{r|o!edV$tyqb_%KbmmR&ovt{$-iTH`}Jn75jpX8rG0s+(Vug8CdSR; zg8a4Slk8@;-tUQgG(nBD)tF&mHUp~pqzAc`y#O?eSq>$ugAme_t&-`MrgO@C23fxY zqsax9xsphq%i6%vR6>*}RVratV&U2X|u z6^GcPcLXZ(YB6?0-VfO_E1W#PSyW$p?QF1n$(g6|d6(pnPAWmA>rp*nl-J$)(wj5l zK2%X|3U_As^mP9lwn6L5S+wAiRo%LO@8&#L9%KOsFr6SDM`AQj$mH7nkATkD6RmCo z?YVH!?o9(dfE56ug6eOn?9CHmxl&)e|1#(QkFoI&4N%#PIO_MlK)^;&(!AVMhoO%juCb~ zXJ7!xG%!{{L>{oBzTi~wqxzeci|jN)bVx&9q0|ILN)Sm706gGOu6`QRd(6@RuN@nDK%l~`W zR6AmvGn*4++Z|uOp<X9dfSjx_sE>a{u1~lJ55M-Y>hHUc7bnM)lkaHyM0wNwR<6=?eOa#XV<`qLeo>~&%6 zGQO*K{>7i{4>rGV+JE>jTxYD#gSVEFjy?J4sbc|>K>cCX@HU7R(m5<8Q>`jmgHHsr zzb~}CZGe-udenN{tJX-DWCioV-Ho#hRcl-#C`GCWr)kL5yt8B5ZwaRmoRPvn8miy zO{npwFktUps6B|RRpi7$nNtuO0q0_#j`6|MotB&^Xyp~(tE|<%gA3J}eNAa&USDEK zdv!0Y5*8OLy`?qY-1n_3doi|A_tI)mtdT0{h>Sv%X z!hya{O*U(6uxd`jLK4sNuX?vqX^GN`(1TZGhJxo!e#Z;i(OQ^=7YbB);QzfT)fQKI z7$j9N*-I}nv5PrgOq=5-@iUZ#Kk8qpGdaNp8FA=qj25^3wD((E6r*N^f* zxT-3P&DwX8IDl4NYR1}Ai|)ZJw77pqPZZvc1VFRW*JK3HgVNioCixv{E;1Nh;eiHF zi8h{$my&>NVUyy49(b3I6Kn1Tr;>O7-ld6VHJcorv7oIk5XgQiVNTXt=@0vhj82Ys zn)e!93ZF?dy=+z~j+_=}I3vlio*hnePuV!YY^LUB-rlsy5*Qbv0J1@?0H7En+@{y* zNzR1_41{xE=zJa~0MV_Od=8_GD(s@FBnL7w99&-?48BY$w1C0NA@Q%aBEvvsWUO?` z=*6o8n%1=98QH1eP;?lE(bRN%cOOtS%G$RI3{?PM^%+c30C(YbcK_tU&M3haI2huod7UX^%u(mbWx(Vc_WnIb0hA92YdCT|66jGBhb+oogPqQE)0L$ z1B=I;>9>ycp_H*fU6?AS$@1edSMdEBmF$%j$?UJ$`QSchBX6_YkL;$j%F2TnxVeHG z%*JH5^wQ0}#IMgv!EYHq^?!zvfzC4dWM@vBc zU7c4dG?HjoC(B_GcVqhkN|q-*&rJOh#JP^Nj!+xL=@>pxumGt;+|g}gP3Yo1|uz6cT3JF@x-XN(B;od*@$qFZrx`L%6_LeaP@Riq zPx;?dF}lA7&@;%{r0S@we})HHv-JZC$!+_5=8_{mUE1O2$>NgS!}d_myCQ2)=`Vn) zxA%URX>MQbpL^8yj(_QZ@1*VeVydMpo4ot^=91=wQmdNocfUBf;Dk)sA|>CAs*iQBKF!K?N@bs=&a{#>T4`qSTqw&l!VXLy9~_|C$-0$w9*r3#4tSzDa#N(H@D`AdXfg`V5bhxW=)f`W`SAbalCLmxWF`oqH{P` zpAxsdq%|X)>SGe0vz)DQr1J6D`5KG3BLT*6xITB&hzJ4SbT)rF1QkF%pDNv~}pQJRg zbS{MfaDb=On{!R_DsmUl_*=yq-*`fmZHk%T1gF9Gr8irX_5(oIZqFnaa14QTYl(c? zo5g0CvM$q=-X(3Zsq1RT8}vv_2W`aExC~r zeWAc9fUXga%g$0=_`4yzp_^z~`}2DEwPs`Kk0Xd_p52-@O+h^9P#6;y`rw#={ z+X>gs>ID&!!dbn3H!7>>v#V{DdjXMcNx9}u$DY)`8kduvR#r4r_25*8bjiwt#}GwY z8i^=GR-to6v-_V(7>8P_s6J<|)I?;Ep)&{@P?z$2Z1OVgmyG$s5ZdD8X#uh-nx9{| zD$X>!?R+hIq#2~MlUv_QH^S#^ z+h=3!c_ugN4!3!(vjTeR|7q1({ag9F!7at@|IT{MQ|O|q<>7C0o9i?TKx)#cpa1t) zaZ>NG^1*WDUWJLyO_?0?_9}5OQynYaJ(>BoxwgdY2oV2!Cg#?BHjbZhFhJcO(LzCUn01VahT&MlDGOqb*CyX6Pkw7;#2>-wPBmov7Sc zZ0<~j^m|YPYPARuW>y{nZV_W{)lmiJc2OCKiO=`rR6Ss+2Ad$^tn{A;EGbBNn?83MUeiF3L9 zn2th`zUcS}M~oI{sxbe9s45XE(?{Z#+#k=TotKRM1{>pQV6mS(SD~h&&3fsV=TMPU z|I4_p=0E%*^deR`GZ8Vd`y7v#2FupwnA#pYWO*~^=rht2`U~~9xO>XXN=HE1_V-`Z z@2>wx)RzZB*+*^97~4F?REV)9*%GpiJ=+LbhL8%Cok5Z%m0h;7CE10UtR+#_NXptm z?ovcWv=||(Ng?%}yZ8OR@6X4hsk!gp?=083uIm6*=;MbE=-^X*cu$XShc3j{Ks)msY3*1Y;MVTRcNWdCfeF;GB* z?yY{Rw95a+vDW$##{5r&XxAjRG=4o&_=gK#J`D0cx+WZib}ub8_1AHwA95^|F37{u zN(2tW@^~Q&oyi4#aDe`CZkMu|dckB9)OfuYzovvURbrlh*xqL+1{-hPnDXjA;!zJJ zql|YswjS%`s2#o0gespg$w1UTD?(T01cJGq`Oa9w(6|-uF~Yxr)eV~o=fMg%GJ z(b-(GAxmb=k`zRey_jNV!v^Fy+zzz63z;C=gy-8{Ow=MeBsuDP_Hh$=kz1H$i){ zsMCk)q1|F+tu^*&SypE1e%@&?yz70(aiMF5Z$EP#|Km;jI6HfKY4YfX$RCIipDz}# zF-$iupu~_DKlu$DQ4IT2hc5#xCLaYkS%3a%=+)0$I^FB73|a(bms`&x*AB`nD=+1Y z*hH?ZVh#VOc|3n{)!lI8+vnn-qfw74?F_d~jV-x5CzZ3OfEXeHw+MwaELuoRz&73V z;(}Fu5hQo!POb?*CiTBy4641_HGXuJ^`!cZeNF$PR)NwmtLY07S58{FYiXR={l;DH znEV}&-0K4%2(B<6m`pOS{TiEO{yDh!@7D0n*<0KD+{I~UGnb2;=4yQ^MJ1LVImLhe zGW8|ywZs?J)6;K(?fz|iDP`qv&G@O)2gdup4_8?J$ow)YoHl-Tc#DlqYjK0Bp~u<2 zlKG{mjkl4VdT=P3F$gslR=_-K<(Y`w6H1G!lH_p3rAyNFT5jX}n~pcX zIJ_U4)=NK(lh6EYB6M)$XUEw^z3Oz=l{#O1Xu5HgCl#rf># zQOE9nBqjR%i?`LDdbLTJC7b;3j$iKMe+fQl*lbT1o#9ve)b*!&#ecPHeRX#@+cXQkEaZ*MBYzx9*Od2*-%$ z?$~)v!2f$)l0fWtZ<#|Ex9R`7=WT+HeMkQ$?}4hIwQbi~m~yO!-_$+*g`mEL&a3)9 z=^{gG?(6uh>q8GI8OOAPb$K^l-^Ub{NDT_oFW|u*<3GAq4v8Ln3cKbj0dF^B@c;%$ z5x@z55P#zB+~Ji6EoP@gv`phNbOnK%MPo#5}qOvkY7BS*l8BS!7AdW!-*d9 zci9Sb-{5VdU(Da#a+D&sU$5}^*4-E5zSRVNwP`C}x0~ZyK30sCz;!*4+2yeI9lff` zI-(Xob)}4|PYHcp`!U~`B=elA^|n_l0|A=-fRL};YNa<0nR^v?Chzk^bHI3O*$AL_ zxn>z6A2S+!>oo%>Za6h2FDbCPcoEB=Z$dZyZIiKEoM^7LF6`DCat3wY&(i-)c}2+F zK9)!FSc4>IeS_Z*yMATL*foECnex{_5PYx_acT&d2yDldKu^MMWP2pP)Cl^5M4Xa? z*nZv#GAl1hI|_v(K!oUlSmF31Trgz8nK%@?ul230zmjY4v0UQ&b+2CogJ+r}PGXuI zRA17+icJgHpEoIkTGuahsOQYH-0bV0yjwM1u+oW5{0XD7PymVKX0rb3d97SOGyPW{ z?W#%6IKVp9>X8_vaOVOQ2-5RbH1>Le6`}E6+5-3+^A5{aoVxs-aIO7gp+}IYgm(O4Gx_#wi^Rn3KupI&^+*o?2qxNooVIY5S z#+7bcG_rj`1Wo}4>ALKbXd{{Vi$o4!QZc&cjXN+Pow*-BDTsj@rH2H9`4Jma9Lurs z`Jq9}GS(O5_vcbi`Z#S#bWQAM%A7ejJm)Ys$~=MG4-6H9lfAdk2?qY!?NmE~*B7~{ zbixbU9-nU9A57$v)etZ(Z};qW)Etp7^FWj6KrcJ4(VpeJ|@pY1x%#=(}T+U z^0JJ9H@|jQ_Iik9igSV4TiR)2m)mB7@&((c;R!Nf3M;~|2Hn)wx8>KQ(>gF=&T6G8+&GImHO(&OXTBkV*h5pzG=;)8UMP>a9jr{4m<~U(ohA_3`rVcOBjbY)$8hpbFa-kYJKaDZq*TP zJr!KI72NJeJ0vHkC1OBy>h1WNhi;s}$(yR%WPWN;bzo<2;_5=>0v3>?;vmhS$t!^~ zju66u&1-efK(Frbt(l^Ln~#!dK+8CyJ=>~*;T2K$NngWDK4JF<_6;;|xO=AKqh%Px zZ;|)CaxZ-#)iPWvP%?AN33&kC5CBbS>Bb4TPFPWLy(E>BwlDaI zfkO27Agj+*lz3gy~^CadahDVB*NOq`x-H?Ee}*R(Vp%28TI!dUZr*K#ND&s z-#ti(Tv@m?Y_Q&7I1SOg4d^jIkJY=f$NRCsO6K@!HgkE3h?>{Kt%r^Gk|WAZt+ zh#xXPfyY;2IGeL&LkGh<(H8t31Zg*8T&_=TTJX&V0#*Xlk#OTA^drcwc}aI2wJonJ zt#{r!N{;>WTdwpBWg|I9{x4*&(~A>7rvCnEE$Yb+EO}w8@jL%U!!pc1tU7$TzIN*s zY*>raQlHuCZ%n<uU*}uN4bAJX%whmt8TI*7I#MV?Tz$(JfolKS_luUd#A;tvAFFNLJ zis{A*aWR2@YuEqYi@JWZJ3dL9E@;00{QFOCVzHsq!CFGwYR$)rc{-r3d(*K@(zlk( z{L9mC*S>k+*3Uh%>s$V~?j@}K$BX0-TK~LKc+c%|d*<-HDQ3<#4UwL>=X+}2$xWkx$)~ND^{>l;%LF2pWQ4eo{e zkyAfv%H1Mf&4?Q)Tvw%q@c#Jq^0*@R(YGzqdy`iHwdXd!3l3R2Uo`r>2mN~A-&W_o zP}FlaoIjNzVAd(*!*=qzRcnaabM=l#pGNRL+l$_NS@s`S6Mpg62BQmBZ7!7{1H14i zpS^c*_qloS<@qjZG(5*LBNY|Pn?#C6)Ju|vND-A)zA&orM2v>hG<0z$R&mJ!TnZfG zSESN80V*2+bR3isvYef2WSAh7{2S8>qyTp=CedmS+Gvy^uuPSM3A>XGcVZ?+Y`kys zCqOjE(v`@gs5BS6t`H zx4Y>|ewG(M^XsDH2_M^%k26)mzuetSzJ2*r6!pmFW&*XRdgb*Y)VVJ30=S+WX#Wq&i_WTrlIN3aUTQRM$Z+vb zo*ZlWk(`(K5TUZpry7q4Z~?t0XaAQzBgG}>t73mmtu&k+IN^qrAE7D$!sLvC(Vy1nU2-E$CMO$pX z>wvpv3Cg1E2~AWbhLKTHGB1*aTA`tH$d*|+APE8~oXkH4aWMyQEGZGXL^>x^k8I*e zn7}k?o1fWQfQ-g}(E*h`2O`<5=B&!L&F|evw*ZJ&gW% z1@OdL8!)_q@ZB#lME#QUWXW}K4FO|kheIR+giwH1F=S6L!SJUvlETt)R8{9p?c|m> zVz$GQVG*k&{kL{|2-LCX##+I@ir;ws9N)Dv`c%XI_PRxPQuf%}R+TaQ|2~s@owISP z0CoO?C$b~4mmmaEfM}Q&Tp|RjIu{{WqYlE5l$d6p78^#TkMY|6L$eupc++MmAW^J<&{WUzDpPDRMR=h?;Yg+=NMapES!0%ujX zyT8l6m%7i=O(g%!=^horRr&1hV(MDs93hsS-Q^z=9vV zroyE_*w6ctu48nWM9w(}CAoa23i|CA;BLXYJ{;E{n&@s4bly0C>t8YcT_A;n2Jr@5 zAegIIqvFuSQ807!c}ZW@p@>emd70fuuazepIy$tJMqGU`n}a9d0p@^QF3J5QvKk=v zCsGrN5J~V@62a<{86S1Pr%{iOtDP83H{o~IL+p~YX@nvUox`aK;MDTIJiodSx47R^ z(RyUdOqErWzzyNeR?j~UK1N29j}$JXHbaOb}$e6BG21qSB8# z-59!(N#yVrN@{}O%)41`c_X-cRodOjlbW0v^2CVD<-i4VCIHA-I4Pa?d%?4=W0;-ZPWc{l ze7?j^Kc_3_wBMTVKK*5WI9WpWx7&(=P58~Xw%|1d5%%_TC?KC&=ulv`v(xp;PP-cf zt;^Lp#qrfzE(%~UH<&nip0F577mu4qFWHaQY4QrF4-BpmO48RXd49qmpa3E z#4;T00azm7_E3P-_K;XVb^E}8rI-Y)ti*7rgCJhda!dBbgOgAbmgY)m-_%Qw#$>2M z6d1ATD?;Fmq1ULf>U(J7{xlpMuQ~BcGw)u~-wJTaLLzgyKw=r3AOPj?p+|U8sl1UV zp{NoRm^}h1ydnP#KKr+)u+!Gak0Uv0M69z>=pJ45`~tJJM*9W=Cj9q^wS{DM;SkG68ch~H=ebe8~;&yZG*tH z7IyZbS8gn*uzW7!GGv>6ib?*0e>1?!*0kfy#R_dj6WeD}>m(R{OahfrBoUDHOSw7vX z+r!fFRCkf@qIMYZBj)eaI(uZ#FfXsQ3A%4Nd}(j_&0wupkG~5V)D{ds8)1q?7|-@3 z`?#o15%R|pK0ei|L+w>l_iJKGii_8unM-`lg)1S~OKan16w=i*cY=XYm=|Z!FGLtC z63y&mqgSHlXak9pZkP!NUS|x1ufyV1+A+&Nqz*{!F(*Akiu>qO4T}fZ;#w9DaH4r( z;u>clYINkM0dqSeF2GS-;_~D(YlV$`?FNap|57Gd$%hM*p@iSm+_!M9bh4$~(xtWB zGGNLM?%fYNiu2~8K6E=l@$ zLN1^Fw9Jg~d$I5bH+$;LzW+|<@_qZWFJLy~$hm>H%Q7wOtHp~xE0R+kXh_&;FN|#m zE*D5Z<&hUP32%2kx?tMnPA1*}S0}rH0#$B{f(l63h>L^aotjX9G!>L^ z(M{3M)|;b<-7QZgGu}FjX;%}5(LQ$ENG-&e!nL7Na+nl1lD1U@W!OVGf@Wi6ea^oPe=go3+7{w~vqqfPYD;C!s zdE$9vy}pG7yY7Y(pkoxysHoCftFZdh zwNNvI1FBKN@l+g$_~#eZ8O1iNCTTC!bru4#KQbvWKwRD_Mic(PjdlJ7?yv9X##Nd= z`dAF-WDBc4!G{qW~H~TspdJ7;LH;hT?+X8QbJAm|3CC7AGj%WD&eM&ZlqTuoY!ru$yhrwuDk&Pb9QN zV4&`vK#IfQi7L6i2hM!ZocjgK182uwRgV|3lP4bJ74bm!4--)rWWUq|UF6kBF%}9( z_z4gKRGhaK1DR-JnNvF5zV*sG{kY4)}@Tb0r=jpsRc7CgbZmaMx@L>0=hs>Xl|a8 zrVqb=-gtvEqZuu$S@xHRVMho>DrgDG87R)Ygj_s%>LFs7Eij_i zZIj6{CI+RN^y_>p*i^?Dk36?|OJTNZBt9sjeolqt|20Rq<78RLE{XKuN8P{le3Y=R ze|9h5>-MRNe4g~QdHw%=%@dRe;?1wJ_pHAlw=BHqs$KDf3>M*HfGMHqU_vGvEl4X! zkwa;Hi;uQBlMRUBIHZUHf|qRx#~{@ajOusvEpQtRI3~bAJR);HFWLqrqXU`sHy+^_ z2P9Udd&_ZN*`{SYK@yQJOS$-_-5eRDX zau=97-8d181bQa0oElHQD8#4=x=AWTq$q3rr3HXQx zyu`kRL7nbj0$fTyvn|r>{JJy?reNdcX6^fln$6l|6PVd%@_8s_I*?7CWbS&EjRa7h zoI{$*|I@SFnKrJYgonj^(yVQ4^wXzmjUyezj=^H-p-BGrEtzK|ib6t3KowWw+94G! zqEYRYV0WX_!j5zyk8QW;WbtvA_Dv;HQwl!pPqw^S)vEsI3ZGMRB6tU(M& z@4aTZowgDO;sukm0p-I1If2wqw=h|%A%P1jFoM{P{%(71)5l_s67<7PfzSy#n4l?7 zbQ%0|N*}K48(JLr)84xPcd1UDs;Z=T3!R z^PPz3fS`b>GqW~ks`MG7X6rWQxxw*xUITK#e1KxWM)U!|!?{vT5Aa;2qPy-c4dQx7OPDVmuCkyMx-JkI<63GykZ`0-)RziT@9(YVmERZW7^;M4Tj6By{9wXf28 z?K4;cLhJY=3xzbi4FMZcVSp;1uu)tG1vyJOpxYyy2F-Vh65fw6!NDASNe|?MmZEeA z8tD5IkGZ+<`SZ7DHT|e+*8UTuX&Zb5US2Wy6GQ|gYszN|%W^8sj|az%%7zJzj=ny$ z8O}Pzm_}v*O$+_j1BtR2aWyiQX3Gc2qXpV07r|o)3=L9-OD&6{G-7;olWai@HJVv~ z6?;V2aY>flYxPy2UZ;_-{Ugt!ywTrXU;R~>(Qn2%nCVilQeu7o@0V{t;)zsReknAh z*ru-x4c#82h)-J}SLQLC3@M7el2jTF5e1-!wG$N4i)j7XgokFu0j#(JlKV?10ov0u zXU@$*_t`2fjZRUZcNY>tr^>yFf2uVYOAWFR%fqqoM^5Ibs4#rz1VDFJXp`C_kO-VT zKP*_rg6p5N7>&Y(sY{tkY?0608F#`5B%PEXRih;@2Ql|7PwV?g>C?&HR3CHvv?}~M zH`j2;FQzcK7!`1yPvnWpQ8wjGxO26Ev&^l2m7QFA4Zqm_4D&cjQn*db(7J7pU{z1+ zyQ#u|mATzjHO2ps{mnRxh^ol>LJxAeuO|g&u!PQ371n?2@D(xiG$8YtXjicmjnh1e zufs$7I#;#phRig34^mYC1*#iOap0NTk^9Jvf)XtA76Ug#WvV7KR{bbtczE$(lqR2f zCJtNy@W?S*vgFcUUd#TI588Cv8q#@;#NM=q1>{{mpH!G!+_sMz^jLiGsaL3P-Fo)f z-2ZuO4FLaZ-eetR^xjqIK8qvJuX6>~Ae%+lu)ei6!kZcv^9Q174IqNVH z@l-g;$>oU<{8Goa@E5g66EgYOz+YUR_yo`l{hlf~X@R=ecf!ShvOU3B49VS`$@k3} ztTyy$$$94Z*EZoENS&NWG6;8X&gobOr)$ZQsg$K_*rGzjT?szMjne25ehCvOjQ&8i z;~CM+ybwt*P1r*H=i!D(C;6=jnCGcvNbx0IC=m-St5X{@Fc+3H7k>GGn&0yE*_-L9 zEC27z$aPIm44;2C`8%0^8unI6iD`qtNS^q~D3S_M+$_2DnsCv}nf(}G1r*FIqpeNM zGYnPlIs(3O%wZ02{sqwzXbR+s>`b}iR+N#EVocaOBNu)EzXmsOB034KxXj*Xo3=}cUB&5OPxTuGgW2@48hAD10lvJ5J1 z)Z3mIZ2lRG>5%@ni^9|&M0%#roZG|XUH5MzN3Vtbm_}{nT=yLa8M>n5u;FnN3?{qw zPfQ$___~9NiD*ss%>F&aVtnxvq{5i@R3fsW zrT-_BVwJEchpm@p?x#gb04$e@55bs3TC`JGU^gE5GOZ##LVu*jcELxTG&fVrnfcYu z#w;vZjN6Gjpr@4{IYa%u@~@_+gV65Jb1P*~i~8+482fj9YW1<&jhUI5lx-0-uu)3d zE9*MFndWF5SBg(cXmZJnCXEFFgOnXC!A zJNg(TxPOxZTm?vLR^~2uV@OoKdeC6yWCsnj+BLSY{b?q}fawM#LoA{O?`@XO0n2N^|Db;}-zwKiUBGBSITr_wDRP(L& zX$j#6u>SxrDoh&=4XuFEP>zE^bqUIbQ@6Iabvs#|;l$UT0CG%5qZS85+oBnIvvvWV z>LB(akr)u%hFJ`gX~HN4P)0sYs$u|Tw!?sl-W~~~9**~Zy&zvb|8%)P-{iepjb(7* zu$MdYJd4AX$*bETkU2Ij?s4?VrGG$aIy{LnFi*-feYVRSvjHdQt8EZ!fc16!f(L3G z{wIxg>H&w)@_40m7+pLf^CW=9CTisJ*>nta2{0-WE;7^pWQq%WWn;=lcBkdd>`&;U zOZG`Zp@!4%r3ObOV}_jhZVRL=)_mi$3a0T-SOmXv7AqAPV7oN4-5k#-w{)WnOL8zI z`xsPadb75de#iDchHz2yk1snWB0Tl=FtigC+a0n^9L$EgpX^=u64gF;55%)XASEA) zl53FKhDah1&=eTh7 z6fk?fyY8)hoU2d|oH*rI{@y0Turld+=pG~Umow+NV8Y=Xh6r@VY;Ue`(xppK#C7-*slAIbf2nR z^!qCqx+ES#G?^jEIdqZlxj>30128uEfd|$!+d~w);V*7G2LLnghpLSC$3h%q)sAv$ zM#Y#2{dWrSGU7?$FY<;VqKt`pT&6oSN~m1k=>4*a=T+frTmde)BAl7 zN^j@ysc-+H!SQjq^WisG)gfc)^`hf+P$s4DKqjW$`$^vK5f|XY-#FG;q`dPGFp=v2 zyHI*&25(S);1n1T!FjoQCv^53N2O$(&kFfIZ7h*9opXKs2{M0)5iJb&{l?y->TLMoL5R4$C}u_fLQ@d9Qk3-KwaO1T0oPD&U{eVyb}jcAZR%F=-#PPirnIn zIWWqN;g7H>m^q2jo!RMLFjKINjcjOHgVo*1O~pX1!Hu}X78j`hbj zVyhm%1~&m9J`LP6ss#HRqNry2@a~`qkfhBCHP?YBM79jrJm^K6@3*meDpv;Hhxw&h z#WF??>xEeIF*i^b(Y$EknOS}41acm{%AxrLHBZwuUvn{LfwLI&&?a2+nWriQ%@u)X zt_wDje)FI^;zTQdHgvH_UZQ)d=N1c?YXh!v0}qJR4x=fxF)I9^-&yS2&S}$`oeX*I zK(wH&GRGIH#A0;?yp_p5`;JaHQyfWoSSaAE-J5~ul4aQXuUh>hOXA%sWD15w2Q0hxcs z0otfrBCO$C7=5qG&>R)nzOTd#<8_n;5$PWc;i#t1-9hY9V5f%36sK&H4;r#|DRS$N zz}5`6`dNo`Np`cq}F@-6a#uD*4PUm{E`yo z|Cvl$9awqM6&t%^_+=Q&T$J%Q6^&~lfdnWUOr7pZLzoG)fHVf0s?y1HM&~T|dl$Zb zp+?bp!Nfm9YUnT!uuTMpRNQFc)ePHsM#>W*%kfY|`HNma&jn@L=~oeelD0CXn{M=N zQ6UG;Qvu6K{G!@}l8+X4y1yEKt-;VU_UyiKkqw{8+_FdT^1k?jBkF3& zg-@f#5;dP#TuC@VnR+qUbQ;J;&?JDZ!C^4Lbo=}M&mk-bn_i?Q?+MGn4PkU|^tq#E zSLD8UV_7#RhDHA-&2I#6&zs8o@u}=`pr`TAvHz|HpSAJcN}QaDMP)l3y{CVlV^>b9KDXVZDHSQ zY`VpigTJPnPTFj0{_)Vj6;esCHAz)rml-M8nsAjZ70Vtxc+O8?fcuO>xM|UjV zQoqE+I+k1ywJmY@xq`DZ4ybnydK;q^#xuCwIdn7nNUBs%qD>3mZQV@7D@go<3ZX=` zU~_^P?~sD{^=wDK*)d9^BGeJS$9EDqb5m6DbfZbXZTZj0>$xpEgyqD(W z!+EoA8dQBq<+>+Ft!HeC|9RFYVUN<;%SSH1QJ6~XVE)wyy5fdvvoSWz-Q690b#AuJ zq;_pA2ASja!SD8WGOs-_m?OZQK{tHiRZHM&a3^)z_y7jb?hw(yh+7}j=`lZa{UFZk zN3Ps(Zr-(?v0j1=Gd1l4tK#u;-(he+I|@dVpAUTl4;nDHe6lU(!zJ5f;?d@aQ*4Nr zi@S&gm%Z55J0IH~9_+pr`sv5UaOl_@o-2Bf}xpi_Q`X>^pE=}dUi>JEI|C6JSf%Ju+MwZhEy6@{T`GK0WM5f zLmI#z1lZ_2aAXKMenSg|q;73?uGVHApx}^j1qO~*I&)GMAckyR;#6XCT_S9)k!F>> z^$PN*w1zq0J0DFNn3SW1?0sgFG>{37-vm3+&g}!V`sbOe|1|Gr>3Qz7Gr5=&cAcz> z4GtCo79JVf0$kp*F_<}a)-G=4x2La4Qzdn?v%2?jpjY*RpVq3LAJUroV7n^(d9qXQFQ+6J-zQDY z&D+MVU0$nEKk-I8W_Aq$;p|4Z9y7PB>~&2#8uRCtbrtxs?!T z&i7oCspd|}cTTR7!h09O6>3ULCXM>VVn4--!9L*80^AB>Xoj5Eo} z@F9F3_7y@}QX@YA@>*E=mh#%_9x?}$Ea5!yT5zb<#5 z>a4PLo3b;|WD7g+Lc&UvXjJ}A2QZu09%)LybQooLqz2g8vC9v*et#;fhP5SsJ}Spf zPstyJZsN>*UF$Cg`zCibGOck)Gjg$c?AMT?3GCti{OXn`SSbBEZTYOK_(VhxuU3wd zOP(8f+6QWOwyttP!Q1$`k8A9oKUbAb4iZ+w|+8Vt2n^~1(Q=jHl$oqHvT&%^+b0cgMum(N zt}Puta%6DH^$@CnbUATH=I^%LYar%C#agik_lc?*DFlMd7L;1EKkG01JiT)EK9*}a zC@W)a)ZC<=lE8bo2rvlp^d-%HZheUherqM?x0E)H{qf(`_=G) zB;Eafvr#miLo(z0X}8602u>6si44CioUkq_ndqY<4Uh7Z*5ME-H^ZK9R6v^_n7Zq7 zBY95K_kG9N{qYJTjX8DtY*kC#`9=EsZ~pH?EWmWmRTY10wQt&nb)K6}k@y5p=2*7!!bZ{PzR#CCJmQ9*suPoa(X1($=MfM2AV?-&NND93n~SS3&N zr$oBoH>81VvDL`d(wb>PFbd$0*kM5tO|Ft9$8ihmF$Bsc==?x1#SIfuDKsJkR2wDw| z4*Z3Qh9dLZ`k1{{{%&uFtz*V;m5bDawk0y;wHl>?SFq=@sQsoN5mA>&)#p&e>`F~G z7Qvg;@3R-nWALJz>FmWK6x<8Fnd!TU)|Br81KEiTCm}8YfS~0(J55vH%j1xUT?{M$ zs~zYRXZKT-MuWm^0TjKsQJ7^#DM*UX4<%oZ!}Fpey*b%F_f|e#{-Qvc3JaQE!G0B} z#mEnVwHwZV4$n)d<6%T6L-Q9!o4}X!Bgdq`k9R7irQ9(}qNru!k#tyADVDDK#MnZY zG#$s`YEN6a7xu<_PWa-by}s zVt-=Y?Ck8i0!-to{GVOr=!#WxbatL-a5wpLWXCDNHIs1ItrC;DFaACBgsUSLG^666 zuTh0x`v<_K@Ljto+_BhFyq0?a_E&6+?!F-BQ=$DF5|oNs++F>t|? z;-$$aWIk9h!;%f|t2WsL|B@w_P`L@6<|+@}NkuP%nP$WX07sd{RdwL`<5q-=ICVCc zJ4p@bvO+MrRtiNC&;3?2-pz0a2u7FLH@A{ht37WSc(aYL%+6LSv6gMeaZ@oif`1Jg zYHDf>OJhEYbf8;;g3Ov;9&~|SGcC4d2H^g)wwdwhvfTH9kJZ3*d|1%jeK6*&^JlPU zaUW)vp8$6e@!IMFD73)u@=&#ncuey%Fxs+Je(Lc0M2Ax3)B63M)rVbUj=zEqef3m8 z`GW+mL)Yw+^!dXcN~RDH>~BZ?#b;Ow3dVh`?wR&Zhv%H z`V;gh)$tXle!%ohtUgjX`lpxE7<_#@TPF^QX_$PhYk$$nvjnJcF`Nz|QW#&O1+* zF`2GWbCqr}W*cV$cI|q;F#EC)6a7T|bk5D)0~dCwSaI}UyQ}3zYoITu&flC>Woleo z=k65XDxM3(IHPsWw#8z^Fv*%(|L7p)KM0;{`p(>eReZ8ZKq;6zNGYB<%#^(@pvNB( z&jqE?ep{I^fNCi{2PyTNBU%<4ad9mc%q;xS+5&9)y$o;4U_^^yt7f$cSS(6Bi$)PHgdntho=-TCYitJ z&a?ARFKj4citgDb-`ug;$-X&?KY!r1q*|VWyZ0HHmZsAkdZuMTn`%UQ)825?3Qjk#8jQaMTZ!(6c&Ke32w?1o09$i8Rl zM=<^B+urN>cj~$sA?@2(UpnSDPq%&P7lkVSF)}vwCLUhJ$#)NwHq)Oamim%_aVl># zaw*Xv0kimc;qJA>tAo3x`izBju`~}#R}e{LAfon%AT?MUP7uslM^Tn@0OXn$7raH8 zxcEE}LTzMvrNiV7aYq+pY2qK~zz$$IiJJq;Hj|B*9?QaIBjd7UZy0?PZp!Gu2WFWJ zI$k0Sh4W8rPw}J;nwZoc-^7Xu+?%cKojfdmEK2L4K>h9X*pMYU1wY>6pdPV2=^B>oL5D~Bn zmx!d>gL%m6DaoT?6!rV*xpT0@;oJPKktH1cb!*UYY1NDCjtWhsBTV5@kPV)W2{nFj zcD79Uned^_z?t@|?t7A_Ealnx(P+u;a+-8~kX?tSawCp^LKXC%SLUcxraX~ei7#;m zoK+;{Iy)9pHBmFoMy5%gh(rEr5a0qoI@oO*lUjbb7zy9S2%`L~aKO(-I^gFH2LYy! zk6u?SNd!@egIM@&t+~d4S=q>H8Mxe#$1IqaP5DGfQ14v+{$EJNqHKi)vop9&OO@fS z<<9qE8QX534DiS!MDd}q@Wgk9=@meX^`1xyLtPQ=h6v}$__*)G>H3bSZ&y2~wjL6A zh;-Yjre{&8xA9SLkOxH$v7WpDD~`7|8)H}>^If0TyG%h=*Z1rv;O#+1eGFD$bdf8- zPb2khZP?1V@AvS za5~^RFDE*KJ!5>0AFxcV;!DqFc~b8u5_N%Rb_gga51*-9q5gwdrkyaFZM?Dkpq*5Q zKX%zb&zFKT=~^Vgcj1Nh5G;=YG%5-YMy@5^hyQ*e4gM=l_(ha>8dM}~LvfuxC)PBa z8BS40s|E|c2}~H0SVhPvfuTFBl9Xl{hqY;4d;e;z{(S?XGv#hOwr{QTNKxz|M6-r^(-6a$WwdcUCOTcgwiWkzq8PqSzG zF$*iSnM#uxAO7ZFy?XTzePT0a4c*E#Ru@#~8W#g?&8v|d*mbif=B@ILDXfvQbJKZ! zOFzir$~#711HyonT2XBi)zk4n2WoL`hRZO z0n8d=G4eFNMYahCVmP@~c_L|Ee*)xLz_4r|-pxTbl)^yq*q`|4zABlES!t2#i77(T z7WQr}p4mw(KrB+h%7{(tfN24ui>IzFAc^;eRLIBCGHAkA=*mKgG~pgH-C z!TGkPIPez@$r27s=)~n^h&AM@Tx)W`=xerqe+65%sI&n%c9PMwV~-)jbLhO=N@cp` z!CX*-p`RSy3#x*VP;UCQttBnj6Eo+Em%S$*8w3c2()-p~CB4UGN#f#6$mM%Q*^F$9 z$QN8&?={C@*TBZx&DH_kir)1_XcSh}cm0~-S*c-bEXg@)h85Z5mOC4A=*U@_*uBON z=7a9uIY?w(NlL?j(&`Dj8P23E(%l6;YUjUR-roH{j3)ZwBwT$?`-lWZFQ_gEGIJYh^si zn)b%BMi0twSqHpi-z9>hyKI=Z1yhrg4v$N>Kt+|I;K{syoTB;0<-ml7CP7@2k+i9V z9FnD&LI~L};Vk(2<%*S#%EL>)kh8@IEI4MS54?!?k?yqEM&Px&clp-x?Hlu3F5yjH z~7J& zUf~HaJOw`*&0u(h)p}eo^XR9`@o@o`;1whj2JM|YO>b0>8~QB`qx_TnK=8!n9gYJ! zC=MAG3;_D~m-p2$ljgOcwdcatVvDj8bZT8hT{)3&HxPfhv${=}7^@)38-nN(y_n^{ zw{vmO2q6`P$a?$sfwJ@Xz}d))-*+u$!N&t`x{Bb9L?vJzcC5Ax`oI54 z8KW^O(O`tPE&Ddv*O@4LC4`6+qfnR-2^ph=P-Mw6*(zIQS||#MvRzA?wWJzZN{wXg zcW&R$@1OVMy*zrCd++OY&UtPpcJ}Xd?aJm28(`Ofu4UP*nDoJKoFpN|6qKHpJ4F@ zW5-xV1Pd3!4qq`&@UKf%%G_Lg_KIgt7`L2nYWtn*Q!1){Mh`Bn6z)F&K+S>8MQ_c~ zsIREp{odZv|2uZz`+vFJ$&BBMD_>Oeli}yt52a}-(SB{ITl2w0xf9(Kx6ZiS5J`)} zuj7RKD5!{V<!<>@U@3(HbJ;nq{NTr3or8y(LR8Bh}3H-qSsbYSrA z2%XfPuEA=eicRckM$}s42!I&wcbn;JM&5&{Jq4HFQ$Y3t-sz5@-NLpdXVz!`bzK*_ zf5vK&Jk0LmQu{{*8(W;YiarVpb}E;`+G3c=oYCh1gTyfhM=^*P_}_B?l(u7gDd$7H z;LoY+o8T8XKSdBoEsQZ+M|$GRMLLbjx|jKE9JwMNalv2&eN;3(7oA+;XfV|9x#+m= z>bt;`W4(iWX(M4O-;)pS=p)L~c&E6FN)Y)^hU3763bBT)^-KYE!b%Wt|2L)g^BcYF zH1VjicOMqoB$0GkaB$y&Hgjo@AK6Eh<>Id^y|bM=)Mc z`iw#DZRf_NxZ?RJ7)&LIy;`Z?C{YB7b=00Dd(DD)oSlnsFjpJxW%y6mWM-+2#1j($ z?G7AR&pzFYZeJ@XLzg4{uVg(1K6`qfH7o|**ub0OXH-^UbZt5OZ8dsSE}Q($ZvGt7 z)|F}bFPk)sLxgO>4Q$p{j0m|l8X#aeCGuD9jy7FX%4J?VlK>XdV@W(OA_ch_VUF0l zJ*lO7cYw7$0;S&UaTT4WB%O;mK%W^TN0MjF)Yf^qwfJvBx{ zIt)tF(%CH&h$7ytO;hf@-Ay~{S3uPyU9t@yAT~lL z8Ptzm$&RKmRvD>iuO!SJ=`m2{uKSx*3bERAQ|BOIm1_yIIk}MMy z!2pmufDVANSOIq|Y>LW28U+DLYC$$l=!q%K!0kI?w?}#A$>L~bdP~;=oW5VoQfyZ< z^xFf8Swj3(f_54PFDc95WBzi};vO+iRM$Yf2sq#2O3fV^@ zQJeW4Y@7licMMXW(+h&ag?wKJ6NCo4oi^j5?|H-N138ig{P&eJA@AsTUVRQV6Kf>{ z86Y*U?di<)w$4j4@O|KAGD;;!AY+e5ubnBfiY(6$JI^pY4vnxM7i(lUn=N_?nivBd@(DE-3&_r7zK7ln zC&3<(taDb(XE`w6^~n;FQ*J48Fl;5pTf*^#Dx6%(lVC2w3a3 znhIMuU!WX7L$fTN#=e2=A`o3R?QfkZ5k|;H%w868S-DK4>VF}i^V{c{!G9WVD`iGE zFFW(|U>uBB5@@yHVau7AVe0kPo4GSQOSf&H-bc`eS`hif2jV>)G?EqNN51$pYyiP0 z09&%HbEzuy>H)eZTRzG#)}C=YO$wvUWD2>-Gw=4L<{$x&7Cx(CyKJfXbR8TNXbqb9 z+xGNMC+=9aSNVGZqjf9Wo8~Xvr z;trCwr$NytR@ZUZy~Py=ZZ&VeNrQR$D}8Lbihuqwl0W840vs1~W0rngpu65c{orfV z&WplRR}g=$nKtw$x25i=EtaQcj2|p>De6>Pj}&HR5Li5b8s5EnQttUJr~o`5Cl*tP z5=V0r9EmV_B;Ho}@lCHe9_trn1&DyF1V((e%aG}heqsR%Fa+Lu8ASGi{{{G`&J#Q7 zzPRX{J+P`FtJtaY-hD*T99jr>cvm12Fif>4fZBxv57a$lJBXdVNgxjol_liwzAJG< z``k+|02cYc2xPw}cXp>NSD?!|&UHbdj*f{9qSu=8HWwA&xbdG^O>vfrE8zSRzimr_ z=UahP@NpNze|gff)_?!Bnf@s~!@eMs`aw`>2O3!P=k%2O)V89`RMWMH-)4J<9t6HG z6d;wny?PC@PI-P7UqDIU9lAUQ{d&7M6}i;G1`3)6Z?r4FnYvn!BEvJI7m$C0?D4dG z#Iw-j7#DaivTxq7qhjD6^SR-X2%8Clp0gf3=~VJl+bKPf&nL*?3a5$iV6?N-JHcz^$McYP-xcWQ1FJBtn~3-bme1A($C2X`{fy)mv&L;jqvos&HavNVU-lH z4##@d-x_$E%o~$P#LUkM{gu?Q#%lR(Jw9NcQ`+85U}j% zRceyjU0?$2kvK!=6PCLuP!Yq;_EG{F?Glpr+1tX#!R-hwqlM;1B~9SPvg?a zVUw-F>evosAy+&(2b41a2@*Xv|Srfw(P6chU{7&^VA2vy3)M*>>x7rK85jOgkIm*JuP2yAMrQG zbC}G&RGkoHg#OX_@!ZEbx;Z1uo9!jDTd(~iA@?&=`z$+FJio8QoIAHwpUrK6TMAjR7^BfZ0xy-9vWAf-cO&PB7+XKM_~i;& zp#KLxF2J8Wr5nwFMd*g@F;=(BILRmPU6L`|4Xj@*UfChmc?o8r^G(TT4*+Zr0qYs2 z!GQyy;ao#r0ejEtJHKHg-sF$hxzJH`YesobHa9}_rRrvAsK-{ft14uIFU^G?gp}$^ z4vKUL1h{UU?d*H)IQg*}-jz?_H1QyxKt2+p?0vj2|GhOk2Y!rs=jK)b^0TKQnu2({ z&+yp2hjsu4zCooXha?gUD#*4}o#Dp~u5ai%=BdDadP9NLK2HqL_0}32suWu3Rq`VD zy8%n>tXLK1smh7yq4P4pw!MTrLz;Z4B8)88R43b3VVMR zMD#r@R?a{>{6|KqUuP&lJK&whTIGEgbjf(J_Wh=HwC+wPeRS{j>Y1C6QTXdikKaxS ztg(2IT905+uz#%13D<3mBAcwbS- zPA%j<5~A~Q%yx@dxDc%cr}ObdJXI&QHB{ za6VLS6^)5hQ`-Fh%H>DGyY;qUHwu9T@{?VbQuhZ=2XP~R?emHj-FyRk^W-C-wNJi+3M9ijn7=x@m~ZJonT45oCux$;br2-u9e z7wk8N09&jzmWMJdgYCf=xY_X%0H^?S952ovc-KRoqEJd~6oj$WNKj(>fz74R?E48% z&pWfWeU&l+e*V2-a=|>emBo}7iJSer^!K*DT2e{>i`bSt&d$JNhlKur`(k>}xyIA@ z?4KW_4N>7BSBEh0lW(i@4I)KQe@B8qHD`SPDLVaRa@e_AH{+<7j$)X7?^3f zkj(I4Iv0eh1<9>vtohfuw8dGmPeKgSlpce3N-xWe@ekhz;2KD^-_YWb{m9!+ptvh6 zn$^O?wEuM(<=-GrY=r)olNhBSPs*{2kYK=vTXljd0fPm!ldq7y{@adH>+<$$)5@@2 zdCUY9MOtU3%@`H3V+Yrbyhz^<_;#G)7&8PapPrXR&%wFf!bj3%#EW$ma1y_n3BnRb zslFEOwBM6CL7J?SV!QBKqkmIq&onzL} zEd7GQ$KD1)Lwl+pdBHVpYK91PP&^h|f-}Q#BG+7~k92Lw%IN0+UyU7g*e)Wy;*%H7 zE?nr_;;3VU42FwDXU2CS{2!i8QF zN==op-9zDKWym#}!58H;(?C)w!Crq0YwY*9msm6+d&=_Jv<>!+zlOl~f2cBy_4nua zta6^j9hT$Zl!b~EL17Lm9w7e+U>j@)IHk$NuqG9Bz8a);90w|W zh)UkZ;7jl8W?tebnRXHLjFSOsHRR@_P1&dE-+^*1iLs~h^XLsE`hVQ z`v_yq@*g{wtq=Zt+qA!GZGPIXQV(wvo_F6k?H8rO&S^ZEH@)7VR?d!{xn{lzOh)Q} zM)9CtHE3?k;C3`c-M6EyA2X1TFGru#Uoe&KWNw0tJoafDRQquB=Bxj--Ve#456229 zrOMP|Lo4!-wP6dw>a)*9ULJzIFlTj{Hxu5N_DB-iWARSlBFoqIy>9YHc(B;2KRM z-@G|?Ai3aU<`Ghqqc*MmoF&|(;3?oRui!|xKBb}YATXwt^w?{`AexIbZEf4y+uF1= zeID19cstF+u<}#v%h7{vO^LTl-UcJ~>{#r~H$7Tfe1IGa9d^CQ3g)S2f^pvbHN%Y$V_o)bmEbV@D`7PruDDdNDpVqEcGJeOUD;Wj z>l&=fy|L}4e*b>tSLiMzV&O)9a0)1$^EfcTD|NA3bYm^itnb9IGNMiNqQ@^Hq^IfA z&~x18G6pKP%k0wu5L-Z_#)}+LX2Mxmo__A!EM?}i1#-1+W9==*-C!zC32@>;|D%4YbHw&GR4^-g} z`1ZC zS<6=u%JwA$dN1v+<=Zbq>QI++$9U(CtIxE@tIyf3WHd@bRrq$fdfVZ%ceQ(WzC9Gm z>D?U~rV|OZV6ki8KJi$tqPf_{=D4HOh|(*3r93HwuCvt31^wEnI*%<>A-J#dXy`-=(KyfdPp`MC9r{V47?ZaR_Kw7MrYvU&n9Ifk&nWu z)%@%A5jtE^p@-6dr=6C?N$`ari*RCo69xsr5v(n=L^?vQwZvDlYQ5Q3Sjxj(z~J2e zn2@wM=RQz`81_0_bEPnOd-s%A9MvGreD(_Ej~58v3U9h0^P?}L_w>pQphQ&pjCpLM zoWe~P1H)&{`n1LRk~2gd;CWEW=SaIs=cE=hyjbf`9D0p5YpcDqSBmAQ_S^T;u|j{) z$B?~aN3D8#L4z=V$e!h#MYzjA>*)Oa?m&@tr3D=>{Mst|-ZpOY)PUFm;P-*8*$b9xvqP-JEp3^?A@cXl^hkYD$)Bd>Lt zE#`P1a=)|Tb-SCQk-VDB^2hJ#{VJ5hJDSl=$+9fn0tA)rJxGs#Ft|C^o-8s5eivSb$)?yxk@E7M^Scr-}%5m#`hNyh- zo^&NaBzrYYlfekTx9z{3M2*`IY&2LV^4p#TqYavA*3b29Xt;96M1}85E5_%AcAv&; zal{gPJLAf50%+Jw6OQzK{NNS$<5}ddayhX08H(EzGId*gmLljgJS8xqw=-m+NaxeY z%T{cMO+_{ru^w9>?P-gcA@i`;W9-POlPAdAqU1>%LyV||+!^^Npb`z7h?Pq8BVSn@ zecOe|vqm6369|Hubf4pT?M=s-4slW#O;Ezh#4z5-G%9?-lR7q1cu)%U(hOJ8+Z?9& zqqh=7OYjY9!fnK+^y^{JPVc<$D}?4Hy*z#(B799p!SSJS*pB^TRD!ldTzWQ^BRH1sabADWFOPDDFbJ z_yy<*(z1~kiS}apA`t+hlBVTt32vm2;n~Xy^g1P-c1>`}5+=Zo|Au@;DslUqooHl| z_kB@dN|?p$uw_ph;NATnURbX$@@2_@F&ju2)P_eh zG(wlh1;!H(ZUjY}M&70uLW6Ep?P2jRQOY2Oal`1BonSn8j7`C&n2;o@eulR|d2IR; zRqJdxyf*@<9UyK>i5gz5znBX0uBoes(pr=sgvzsyvF{cLHst+a#;3#7B$WI+T!dHD zKmcMt4P(m)T{!=w-o6w|bcj20&70S_Mf207^){I=AM&;q&BR54gGYG2%}K{hGPG0E zbnTDKQw62tJR`XXWkRxiK2|qe44Lrfj7o5ofouebTHeUuc%eI?e z0az{v8=c9GlBSeeDGX~cSjZrs>003-)vlS2(Lb6+S%zN`nAIXY1i^6JRJVYK7;j)d zZIq!k6Pw*(_BI?RQF(zkx!UF|NMLc6LwbO^tMp38_hyvb;>k~Ad9kep{Q2L!H%fVK z`}FFtip%Ndt~^7D&Ai?88MjKBH0bJToU^zs$qb!;a^ z)QRu!j_sveqS~w?zZdX>#@(XdO9jj(L|57d`0m^wx#tFWv57x}y3Bbm@)1bAirEz= zB!8M{vxV`(0BB=qcP)VQ;#$JKfYh27)`rxHqRcQj0g{75c5DKSuk8RkYD*dr8DVf` zP{1;_`)m|01uDZWT=WiXNCa*se5ff_n8@i8jZ|4+9y6sy9FV?$qxD&HVEhojg$3(j z9kRewwCdP}NtnbbyB#4Rp}Eqk+kOV?*vgn;#?o=B|Hmr8k#~RAl~FKB4q^~kogpRq z$ReOm*qO6{29mI<54YU22Zh#AW#DeXk*omIo(%(!cS?`Pc8NKEkz?+pT(PI>WT!a| z-jxF8zvqZ5%bRV&V4mKRyIwysV*~%)C-#TB7)Zhr?TUQe z0*zV`IO97QYCqj(c2FcOL=CQf)_cwcWtO&wDSjtIgQM4l#P$-vzVc;=e>He4z@546 zqKH7aQMcwRwWDk^!?yOLr3nUodkil0M(ovI-;XQ)Rero))~dWgeOq7X{68oaUgZ7r z!<~(|3|4|arPDmtQ}hN{r8gI8wsY51UZT7xidV#oPaOQz26Dfdh4*suoL9rUbcYQ! zVd~;Ba{)*hjb?a54-0h~l?ip)VODE^Z$+$1^9#{dXVV1S-#qL#q8Y%!I_=(EOP)Ls ziV4!b>hw>(gsT6-guYp(ZWVHaVTn>Wsk4<=)D3Ox5S&1<6NgUT_X?y#0m#E1B$6V{ zO+^8|e)xjf4Buk|LwA{Dae8e#8q%1z#O&@pY}bqw2eadmnb3VW?1Xz-OoI+REx zZK1(+AVA1O0nKs&P$9z9wP#B2)FWNNkjgvqoE=14C|T<`52aD*ohNXDPFC8?yF$6$ z@<$(IugC&9fz&Cn`ntK%0oD!GU13AgG&q6Xi3~vIfSG$Vm;HXa+S#FPT^21s=i$l(Z-*iF@CRwQ@| zh0Y9=N%W?^!F5@lt(~J2CisGOJXaihlUP9Hqtq&n(H!6`1?*w^vgfjx%&R=L#3m!s zkTX@LcOWTD7NRcBvL*IxH+a`AEhIrKrkw6QC`{O z3yu)-9}rIMMkkr1q`?bL=J*eKJo!0TJ1F~RCunLtRsW%U#!+zZNkIfZ+Mt5Q@}SV* zBI0iaFhf)(IzDqpCKS?tL-eJaDhXwuFc7<>)+4*=mK=yl`uVYAu8P;xd6SzLH(ZEq6=7x z7pa+)x8|W}`LzWZNV9YoJ8WF?yACY-#uhIR{&)Xux#d5U4TiVG9cG`d0mnL_yWXsZ z9BUcLkYnq6Q=g_5KW`X6c=8JfaX<|XZyhMPX^%6d`91(9L&M?4{w_fA%SH-w>y+T7 ztIdf<`e)Ez7^HqU_5A=trxqKyWl&(@&1qsc{Y|LT7di7(wMpE_MGY37(qnH~agd>N zA1-Vvd1&*P2?z-WhxWpG!RTMd!c})gNKz~h4B`*9a9x;6TR89pJ4|H+z^}PqnIp-< z#=fmyoS;uXk5NZX=?-eqEVEi#sOg`JnqX*u%apa-BB3QM5j(l>mXSbZXX7r$11@8& zw4CaX=Lce2LpF>(M2z~}|M$h8Q^;T+Dp-f$%1Ti;%tl!1Dh3p5B0zC`@TXIk#x-2X z2B27a0s4}D>&MRlteH8vqePxV&#aqM2FuYpwy+p53ztvf0g2yZOI+7NgCJx=V&b4#2J#CmP$P6$kVc<9&IMR=a{vg@CB9C~W?xya zA5j5MnNUSWKSF-wt0=>yZGk!TNM*Mr>hSVs_&PRPfmMOi)J=b(!CCvXlR_c5eT6@u zqol#D3t{lMV6Jy#{1%_>BN)6+3TvVsx4?{0gDlG1in(*=n|3truq zKdM;Z@Lk)0l@`}8>a#Bg!5(04Qy``Q;!lIrDUZtq`Wpbe)4;Gc(a$+#qss@(@t*z< z5iL?TC<4y$+p!mOnSp6O1v{ZC_Sj`WzMo-U=@le2BpgCZP>0cEuM*H@5zVqVW8?76 zKGf^g@&nBC zyNuRGTSH+K9tAP|ClL)2@o0^dnF7J?KjP9eeKcv!2fh;b<@X89xB}2s3FXQ$u z_xgCE5?iMB9wcv8qFMx)fhS04#tKauis4bI%bSJDJG{6YU# z0^}3ZDAF1vFV@WGQ#gP%G&}Bsm4J)dScPb^MjZ9r)H%$L_Zy=G+Vr91-Zso)neDH6JQpaGrQ}&b6Y%#hLEpDmn{{I1*$7>?PL{;0 z?`6bX$5tj%6vX+XC6^A3CH`&(s{Xh9Rs+ThZe>r!-R+5Qw4D!a7rRGfQ*>L5SSWw5 zvc;~Jcu&qi!@pIN#t^m}(pRx9KiG>au9NOE`2H@8lGtn3cfFiqi2pV2&x73I%2#zS zubJNXf82~k;BzvytZfm|9^1WxH?kr@nE2poi+G9~8TonPpt}FZTg-nNV$HsKv2b%5?AC+&? z-RhkC`I!;mS`1HoXUO{7`Uhp*f|O+`PkU2Fv4mWl%JaJk;BS&mk&sXk&j-s{&Tk#D z4D~oB&jUEfFZv_65S3d7@psa*=XM7E1G}IqK1z6GJNDAEGtNFDcSBKcoK9sY5q4Y$ z_Zr|Q%^YLjn9%ffna8$>v2${e+WriLQNW{!??Xk;dE(bu4&~;Eic`dsV;M zzY#{&n>1Z%G%*J5LMwJjdb|eA_3h4v+1~@*XS|+2gfn>@jKRl++%!4KbZ~p%9bCLy z!z`Y>!|QI9cWhi$!ThGc1D;V_pIj!+-w;Awhis=T7xOP{X&@%U*UmiL7U9h4UMms4 z*gG#_)xQhVMt!PTzh75Ob8skVN8>IBw<|R3c+5QWz2SYb#;W$eW_~Oax`5G$Pbq7w z%cd(oTE3k|ip*g#^4Dz^2|(i(dR*Tgvl4vH;G5qGh$H}AM%|Lnt#fA{hkvieH^R15 zloFYGvmY2IkeNT^6fT0?s4V6$Xe-o|m9GpFOZ;-i_Ja9Mj$*o6`CWT8%H+)yb9a43 zyn5qW+0jLQez@>l3nlD=ua;bpt&D+_> zF1W(Nxt6?&4rR|Xr=RWHEh(|056;HuMPZk%_IdVIRQn#-U4Rw9lPZ;~A2)tfd;H-W z?fa@ok;_y94y68Bf&fcn@~2a*sC*$uQSWQIb6eAw+h(fJo7=2Nwe8meuz@vfci}Y9 zp;ii{6B7`2evb+2{!kJ{0abVRfYdEoM#AAHA+k&opci8b4@>oPQNI(8((j9cFgeg0 z_a*we;*Hrui%1$gbYIt05js;^Fc4FD)U8(x&m!i2iwz7u)>|rHzYfpM$g9 zWBX+H_O*j!ek3#TNP8c24C0Q=<%Ze@vUt$J(Sghnp9R>rk1&W|P`huAH-v}Dk!nN! zp2k&iM_zRCUpTS^3QCG;lbHUO$r1Vom>nUUOf)jpmo3|_>8?#vXh8-O!{lj+Iaxr8 zJiri>Sf3o5fpC{VLz}IRpf}c_$n7SCka@+}?Xrc)oTg5X_**T#n&&bb`+pg5UB? z$$M708(}~6VwWN;8@2vE8oddYUbZaxPeAM-(Fu|z|KcNcceZ=8b7tjLgf`>v^FGnu zv$}9kL2&Jhp~OTxPmy1>y)Bh!d%-*vgyU782o1y9%ybwZK@sINc*Z;xFyr$uLbdSf z<0y{k@c7rQmLgX|au1Me6+c`lLX>ax= z9EFm`bC39vLG~d-zO?Al)lC$NZ0;9kZ=xq~iO!_Lc{_BRW(6hyS`&ufQCIA3m zfZUhC>`luebde=Q%DQgbym?bx>y<0LlZT4!-*Rj6Hfgd6aXp9qM+^=g+!@KCS}MS! zG5G%ESLFP+oe@7iNK+W-PWzbUp|N*QcY{lFe#QK0{g<9X)92KcKXWU?Crd60DU7S{ z14YfB$(#4zHYaR!En^qO<0Ho}Dp)2H_8mA-a&8JP<3;d1_iubK8aai=$ze9Dx<5!B zxd$l*5B&STz}9Mp>Ar70E9twpTdCjlY*<F^HvWw%F#LJ5n7v^rptdWy?iYbl&J8sF&H2}tWlp@kMUgz{Wn$W?TuSlC5u!+)=VjV+@%LBZn#PePi^Ep+^CM@nT;$2YG&=!B1uJFE?} zE6$tauiLesCmJUU28IiX#iBec%5-$oAEXf17oF58c1mN`gqlF87FZJdomMuFc`Aaq z{dr>88R{ej<5&64bu5{=srN`d_4jub$PB^oP?45! z_*#d6q{-Q@`Qa~=b>ANqvd~z$ao7blJ*;Rz8k?@^g7_o^#k3v1p#sUG91JF9Bk!K~pMR;~x4-+x?Kcja)$!9X+V5V(+G%bZ7_pVweIP_G6PD{l*kLPu))su^kzh|PlM$H zMgvbDaf(NblO0u&z4)9e0vmvRrfDS|lXKbTEvfoi+4(v4R9o}t5 z4aO>0e9hH(O%W={HY4TBQJ`{g;=Cozc zUSAAm+u=w>lT(kE=C9Q#_Jl!|Z18%YMA`G-%HhAWNl&fI|IVwdhli%k$dae+=Tk+K zGpJ`&}d@=eISjj(}x39??>YX01Z`#@vGN* z4u388ODg>+UqUlG;PyH2IBe#}+uHrRW0p9R?djJ1jf=u{!@6TFqovq5 zo;k7G5NCxdN*c2d)EtWL+WGG2?is)5Y%2@LvVjY;>_{jqjv;L0xgFZ+JVa+1h<|AhO;5C z2G)kd5GDcY`f2&+ZcubD$kX664y-nHOIWWzt7DG;0mzcH7Hhi$AI?r^>whqjE5|XdmU==g-quvHz=qpoRcN;cDc_SO8NZf z##>it1A|o1D8mITuo8LOwBr3;U&Lg2n&<5{`kDv$K5v})^(CUoJ5l06uO(R zskRJ&?(5`8V|3IL)PeN*bL5E~9#A}-uQhFemgc(lNfREbRbSNX{cR>!-UQ1MJc6#- z2GgD_ACCC`S0ZZohSQ1dQ@==!znZ5`4lln|mLX4X6q*;A@GNxyHM|0<-)PC(dzD6ExUBU~z$&VAh--$krt)>Qwl}JMIZxEhk-{9+r&i=20~z|ut0%Wj+-VJi zj;8~3V1NVAkZ_F-^JVn27rFSrnRSGH(bXAF+oj$$40vHyGx(kAk*ZL?^yK0hD(v#_VfJw7R$|tXfS@%eJyM&{59FQx+#B> zOk>D$<`k~S3Z9+Jbdlx}-~v}UgAn=7Wh~&qd*4$oBY_VV{hLcl<$HsVPW_G7eR$I& zs`neeLG~%{o2fj`3_y{9eV7E&cV#mV5-;FHDFuy zr?EzY^yIz4k#xP}mbR)$RZG03(fdoFGF-&}r2UBgZI9w+DOOM^wAWTa9QilDu>0yd zy(bUPtuC#QdT;J4-nx4nya*L8E~F=C7emgK*FX+p+*nSbJ+w<}D$In9+n}?pYPU7d zKesfwnEYt!ZH?sU4T8(vx2p?d4i7!{2i8xP}J0 z5+6k7O|LKT#+*+;<_|5>E@dUEdHN(q4at&l3nI8K<(Uhp+VYhw$QZPln(dme?hoFr zQ`)<+ixFibB-R4y^&?bald-6aa9VMoViTX(A#XzCr*v!{vr3Ck{*%@3R3a!)N}O56 zCOiYWkLg9NXKspyd!zDQs-Hg5vRsoi!8DeP+&_EA>PhaWP2fPWsAwJ1CsKTr#Qy80 zg)&vxu?apK0krfY37j^Qjr8N`f-H{W-ZV=FZ{&lH%VB#c;O4a7vyo9ID}cGsi%iGC zvZ}cFctU;;YFfPCyT^P8$nFa=MpBi~G5jp2qZrAj zcGD%lDY}q-`K%1oCixbqBou}V=Bz_NPBj$az7Jl_a3XkTerrSxwo%*43V=-W7)!&%pT^X(c zHZtQFfB)Lmg|@<=w883jdv(fLi^`;I6Dtz6#{g{T>IB`40;b&VVq6a;7 z_ht^Wp>E7~Mt`*8k|o99UFdGj`pxnNE1DntTb?OeMro*$`^>ZPYS{j(<#T$j>&lcp z+PnVz-?6hCAdf=iqa%a(t6mdyd0;}rAN-L{8V)A>_ zZK3w3;We2{3*UPREuiG7-<{Oh;48wZemr}dFJvh2;j!{>1Giw`I$>?=4WCqfUiDG` z^8EIy4G`71w`Ul{=v2G)H+Ns&zGB`upj#?1yx~P`0PK!%FW#vB?KZw=KQp$WxYy9xczJx(A`FBp`PP5l6EU@Ol1-Gc@u;y3)O5M?v7K+d6q=G_GLG6pa}V186^L1!bEnDR_O zT0HIF@R|U*#(BuS^iLc7P&Zc&OtPM7Eq~D2NPXe^8EyusOI08E;8bp?jht}R;9t#uh|!aVfbk_-x1d7;#JKL z11XFEpe&#K+?&{LRi4hNN4cpeDS`pt8-L!gf48XR-zArOmrS$QcfGlHtm8+RoG76v z%p>mN8KWh3F-`B%jU4lMUd_DF56|KzL|yl{r;a|j@!vTE(}urm%L7$(jhBGT*wpMh zTo48pTWier2rtV|iA3E7kgsx$X_cg14PhH6I2tovXpm+Vjp92M z*T;7IQVq+~G)SC~2xmy1aO;XAbS2#orD!KxD#N~5*=}z{RMVgPmn!HZ^Ml(I*{_e9Le|A-&1nRVXdTAzwS#(|_8-m$0KYn6!4hlJbj)q=k4 zS*>*&G1T@{wRd;GF+%|9=U$=G!^7z}Bx6=Ke?LA_ztc27aUg~aH|Cr)nw1I$-bD+0 zXm->+Z*c%i{-vC}RkXi@zcc2stOuf8^Msri3(H~7ol8hRKTi=f-m30s>bGy-=BF3f zkWu^mlJL^6enr@Ek-4-ItE+VX9 zTD*ikAlTK$rXz&6D3o#0Fl_q5!-}5kd~deoE1JRK;pSwz98S5sUo!EF>Y??Yk?m%N z4CfjLlaXyTV-Hn>dbxSor%VcYwdnSC)g%2W?NDj7!iG3-Ur3vZMmmbZc!1O~H3 zo+buy1RTMR02xpV3Im-2JlY#v{t>btDMZ#hHQ}F4DVja1hO;ZLcqi3%_U&=V3az>7 zQ~i_)0@0DZ7plUZAus6=QVei&(#%=OB_o*2r4vL~5sL>zvBxv1r%gzgLL-Lw1;7Fx zMz9lw5~?K}s5w~pkQ_}-=~WRn);XMPKMW3-zO<}5Jifnr5pU)8-+fxy=E}{vznI_X zRTjqz4sEUZCm0{3vf!9~I{Y#rAz_7fOw2G$WwfycZ-_X`$;pxSS7t}FCJA%am04Yp zX9`r}2WD21(h6eM&a8+`eJE1S2bAv*9R|b$2KXKE>ast;LDMNaD6lKkB!?Qx25hkR2at7<=YShBU)N znIs{%x54xbgw_~tnFg{=24LgqXlxBi9q@&i$za5*##0nZO&XB67V!0fQSE(zufG*X4 zA8F`N`_v5q%J+Sumfx*4Ar%y+F^}OX>}R>w_6aKoH|nl~43O7i zJI@{Q(A{krO%(h2ep|rJq)3nYdg8{TYaz`SvkJOy$g_@8pHbCYKYo`lK_zNH;p>Ey z$e|EbsMCHzZr8&0L*v?btAymK6xObGd7RC!!<~~y@cvngc!5mmJtKo%rcU{ zM-jsSac$fDd8YR>e&x^5F6sDesL+2TsOno8E12(aouW;eFsVw-l(DwlGe^VwpIsB;k0Y~CT z|CtLJnY$2L~b2%`~$ZAAN`pZo&R`%J!=IFbgttb5cU1JJXF8_ zi$FQ*B> z)O({#lOkh?`utJ)CEyJbgEtsXYV4)wmzaI|s<4H$on~F}S`3N`! zOHq6jNDgFBNN%6_;U{zhD-aDHS&Ay>!e=Z{Lp+q00CE=nO)b`D9cppvlWLo4!~%y5 z*vtLFd7*wM&i{G&xzLgC*App>4?Cv&qX`XD$aGc2KwK1sqK@eZxlZ}L^~ghss)rq3 z)cdLPGQCx+$MK`5zMf@&=x*lO^)eq?lio4f1pf>O2kpg*H&`ZGK`crJO~n^5vV*Lnw%p}2PyQuNaq1K!LXP0q1bktmWB&-fEly+HLjePdH)>#MyhifOm5 zI5=3#3=aNtx&vZ}OZ{7u%5ZZr!l_Ju&{7NSs*)NCtA|uR& zdI9*6Po`TI{obQsYrd?T0n>XAze@|gzdCjy`gFU^bj2RP9iSa*k@MDXH@ssI>KC3x zN_UqFl;a(=YRmnY>DrRLv$gBZWJ3Od<2TB{J+d@ zJzWeT$chfXef!W)di1F%rEYg}0~c#57T_9uB*|SvWpV2PIKHeqas-(gZka*Y;NIw34H)~#bbjm@dKWl%^e zO~6tyb8eXv7-SnfPrB|5k#6RR_m~4a>NVifdP1k_4Qk1OWb`ExU(&u>ENvS|GXSdr zgIg#r_=2tw=vU%~Vc@5XC$vRo^1+<`=75NRQP<(Oc?L`kD|XweI& z*c3#)s(%1(`dHWMpirT{AgNmt&`%(7B?t6bkTh#oB*Uz)PhLaWVVxgv?S67RmdcQM~fLAlH1M5MWuKGGMXU zvK}ja=_jjQN=(v^t7i%PC5=&#h0iZc%&dvXnZvEYSnljDstK~qTk8IK%Be4|a~?RI zHbX9YDDF3X7%mgw8#LGePjUXeNZ*0Yi6Ng# zKz$U*uOeX3W|#-5$iLp+Jt(Tjb>2gaB7+7$8AaSD_qCH`$74mIL@nrB5MbloTK0uE zAe}O9U@W2Re_Y(|kZOiedy~op3t+L6G~A?ML%EN5a6+s8SoDyzVJt`2_q&iT$y|0IL%2W1u9n&eGxRQg)yM~oCuzI%_VMGe;ho00 zWjyOMaX%N=1+Y88iPciW+*M1q# zUT_&P$y-~?Xne;N*yWp4)5XvJ|+bGsiCP5 zNm4RA8Sgb``vaWv#<&~qQ(65SmdQb;w^*-N65G?{*w7kt;4yVE&+3;Ug4fGQJx)3E zJFJ~7l!5^Pj=U&}bUQ8x;48^1k+=8JZp|cbfH*ffqYcgAN+RqFXZ$eYOs+>6O=|B4 zZ$kt7s5Z#Du%=we+GNh4NjE^x%`*onh5a+V38-~g6CzcT9$FCsX@iptg%3yNnz5@0 ze*~?yYGkDLg`mT@V%X9vgs<=0e?-9odT*(_@KL^6q-lKVRWGUM0vL5$`!d`HpLmMe z^N;q^vG59+wOsSB6*}0SVRP)Cak>H_U>Sh0{K#kH7HO8z>kYsP@@WnaS6!moD}-so zoBBe24_Nm1hnPOLM=`YKzhDIqqN_(&Z5+l?2Lx>lORWjBHoA_yvfgEi8s3&l$B+*I zt&yiPT;*zh{wjB|s_pqA$j0Z3(R0fVs*i6$Ikqb;^-!IEjO>Mbbrs0isGXcp#|WY} zDyXjBqeDIBb;L9vcui&iAL}^-!iD)Xue5!AAi8B74~zu-2k)76ZUIiXF{j|N4G$Y1 zAcq@p?2wW1chB6d@QKa57(O1;j>+_c;_&N4L<~9ZH11>NN{1$$dHSlA1-$E$XNkAe?0@eH8E1pfK9$ym-*{P+@P=g?2x|kA3}* z@K-9!H5;ipJ6!sITw31Yw2$L?q^S0Icgm&*%KpV^G2NZ+XfjYP7oauUgpU-DIW1cNT;5z#pC5jh4My)hrl``UOYeGH@Mtvv z9KN5G9HC6B0zj^uq_{C_wxzEsUEZ|xhGZ~6DL~l8;yH7ncIUo&(ty@g#+wDa^0Uqj ziNULs1rcO0DcL_LG9M%-`p5a5Q4MK`KDP0uEpFw0=^WNr-7O8s4fY zjJ$E$=I+sW@@yfPLLbl1CRVneuSaHG7!+g!2U6cVe%Rof4Q5-#TL`N>W)lhEiZS`Y zvJ1wR_$ytvw+Shr-6}b}BTVY2fp;Nr;GuXF;8*~<`}PA+8PyI9Mu3DKdKnY`x5`ij zB99yv6`}>e=xZ{o5I!N4-_|N0NXXsIipP_@;N_KDW$Wbu!Iv zo!c<#DO_99uoO;sJx5#4`l`gBIG(T)*hl+auae?H4>ySEe+|HfWXi=XQeZo!U(AYT zCIPv{fS$I*-04LJTk+KtuIQEYOBO5$^K&CE15x8a6eU;2r2QeU&gUfL zLYDWVGa&T@Diwi52L(fF!2D_yI6U|@ar>@*H{olz^nU~U0H)z+`sw9Iv0(ON8pSKf z+{6?df3x9I*S$QWIVi^8-TmpZq>jS-oZ)x)%3oP+O|{MNia7(Y?|{lQ04?G&X|pew zqM5`Jt#-iV5==*(jC3A5po`F3Er>_4bGuD@=AE%zIe9_%Pjg#DCjjt!%Wm52E&e&? zgH_u7(RReUQuSVmBhT4C_W@eXSN2c#d>PD5=Xr*~9+J-qjGIB#U}3*+%Uq;_X`=Gj74 zW&bK5tar`MYbRxe3!%bRt2(`e7QjppxN%VcUnC-FDbR#`%D&?iaG+2*h^2&+Hqsmz zC-9Q ztO}i|@-Y!qH?bz>UKp&RKJeK*imnJoT{(!~<~;NAlGt={05Nwr;<Kx@Elm{`q?$JmAy`nvi^3sIWbfa^d5&r%KD>M5fSwuJddD2dSR^i zdRrSLTJLU@b)Z#bU;dodc>hPhBhJxq`hbkL%&8D=yQQx2oCVldnDQrtkIiKnxcgUB_oN3 z+=#}%N61euprt3Dv_y=WkqsEKZs;)#wDSIF+(V6_8 z0lnRa_Mp)6^m{prkDs_{pd()mBxC+%-j{R=U>D214xV{Fl_=zj-N)&_agc5ey(p{u z>CGs)Jpu8vICrfIv3;W}OO>dQ4Cp^Ou5t`|LP(@{4NxL~fx=C(>`Lz`e2HuVWD9nF zAx6ppNF6p(+al>II6^^->qp~HoRVQig%%w#^iO+D0UwH_X#upGahxWNGE2bu?qc0) zz|jgF!xRu8I0dyBG5>Q0s^!Gw_;=6O=u*7@HREZ0+kdDs$%y1r zLlAIg!$JG?RnBnCRptm%T?&hop-P27tx@B@;4}irPb%bufJwtczikk+-Q^3(P)Hm3 zx?2!zsE)`7RpTgScSVrbb{&m-jyI)9h+UF7tp^DQ^e}w4s_k3awR4pvm5y08C)kSE zy3_m;rj2W)ntmXda?TedH0Doe386NY0?nnm(dOFh7MR&&nn^v+pcK92XT3;4NmPlB z=;W9E-Qw+szr@_AYXwJ9nwjPrT&~^2h0$wHQl52n|2WD$d3@l!RiBn zv|Mi8^<*Lj);?NY5jMUUo7tQoSzz4g4ll=TcqluUs($?dC4P>K}?l+s35 zPLxTuAnq&R*Hlj!CEd81hDL#;RGCfpwX7nLsUQKuNg;cjMPM#De=XO)4~X9Ph#2O| z7V(Lg<%4HQN`?b`0OVE+>=~@3{sO6md;&JBfFIy*JT@QF6w9k(_TBjfC_TUZUNK0MF2Twi_gSvrq_JNutIm^yC97sL9x|+_0@-9^=i`AcN7**PhF<5_5;D0O-FutnoV!6Dw?=}O8 zvci(yLNhR&PCx#Wi3;<^=HeN1&`a{&U?F$8$p+%sK8}Te1V_TFCWNa9Ou^2%Xai@E zCQ~6Iv%NJWe3Sk(#-G1YxQdkFbWBiB8!xc2da8Sf_F@zdqH)5CA;dm)kVe9$R5WDA z23(5*Pz~#!w(ERN-Bb$B*0-vK1+aWd}mUkjtkXCctP0h#&&EjGR&Nwfu`~H=jOVAZaW#_>aZa0LGdb@KPL` zd19lx=mElYyQ71zyffJ#9!11)y1u$PS&l;w+ycx25$I$=i(`AmUjbsbhCFk zL?GhW<6AfU&lAM3@IH4u1{4;wZjoNK*Un^epA+ijsec9{rrn{Y(8h~HLtK+h2@Q5t zVU3WUCHzwf5VS3Xk*vuCH=eIO@^6K$ozR)&V(QyxU2Xt38W}lOVuiCN{^$n9t3(2H z6f)_U9CQ_f_&*Wk!K0^&Qiu#rTVxQj*VmC2w5hW$^mAfin;75i^2ynnr`x{S+pL;L zpRlCaz|~NDA0I`u#0#bQ_UcK7q0!aP`J|q*hzzXHk z$s5*&$(DbLidLe7MIBbsXpKZ#NxXiB&?*Li)L;ZTLh^flFzxh!4$()q_X7(D*JwAN zSOj4`E2yEdqqh_XZ6s{0o<6mPeRRXiCwtNwWa1>xy#Bk&9aIM>P9|-nBmO(jReICJ zu9Rd80o=quO39lUjrclNVGZ_Js$5$VM2NRjkt)NdcFKK>g-U{}#YEkb~2mW`_RIh?kyo7hHm+Z1uxWfCf8^CseUvfnTKp_0Llq@+;TLf3 z-RRo8lr4Z|#Y2aA1>Shk=oOejfp@xNjr`|uQL#hLA!A7WXlu-8wq>H<8UwEh)7&CZ6 zY(uX>JvbkigyTiW`rl)NNmOQ6W`FQ`M4}S*O(3xWg~7 zt3!*9oxv_HE}k2wEZC92Wf z!ouqd$0fxPj*_x#YRV7r^)ror_X1*J!26+!n*@RwGbh~f?gHpIHA|oc;|%Qb@>1Hh z2p2Wk);bC9=h;<9UR&Gs>$hlkaC}Oa8I!+*WiOLNz4k2kl5nPjU~Jo+Sz`;w@rw}_ z6}_Zjlf@n!xlASYsWPSsrQ79GhOgzSkv9%lUU*3vfv zwjcf-lo=U>Es`;rCN1UC+WjUCM2~9^HjWl~kqHY_4+T*es7GqU%P#2IVMcbJi#%JZ zIJV(sM_7g?Fju>vNi~nrS<~e2Cg#!=L1n`{vrB_9MFg@A-X?Kd1^oC6|02dC+6&>G z=x9qs{uEr_7}bML1)5?QRn8A4GBZXq2=S04K1KL2MCDeF?69Ja$gh!`@x-0^UXr6` zc)h=|I7dI+fOn&KHZJ#5o3^e`qR;iXy#iq5|^NPMl*CK&fWPir^#{GO?^O-m8Ooz(skPd7grU z<>lpFzjn>2#w8Tz*lC25dl)|-I1%!4#~PirAL3cwd<&In6NtF4Io>Z}1gmUD+i-|c zS^Nu8!A7l%-$aZEBWc)DNuc)-Bh}kv@0q!XSqQd#ED-H@ngZC8+%l+j?;}|Ded2CO zAwiJ?_^8c7Z`c{0JX`cdRGDukt@SSk;w)8%e?J887K6IJ2UVGyPx^EtHZ2j;8F8|9 zD@fhXMa$huW$J`0rZFapVU3}oip^*&(s5o58N?g*Z9{TxljP8MwnI42e>*6@o-4-MUBTruGXCl1!pi3?Obf2jv488@!wk z<5KUD`uE8MVEu_It1)YV1=n+Lyr7`ewtX)$Z$%g*l50t5*Nd0>0eq{b_fs==lTz`b zF${7dMCK4PWoQ(wIhsR$A&3(~xpMatx|~>(ms%0g{sdmFdD9Pm4J|;S$xl5<8tn&9 z2x*@Pi9Cdj#Jjqn(c95GmVz;GWsM@xMa%Fn1VoB5VrSff0)_Oq7Xq>e)%o(LX_ zRN(GlOhLZLCVXVh3Ts23HZUKzlK`c=%Y8}ySL8kDJ1VM0MG`3b+M;TMuQji@SS}J5 zm=}N0Xg*4nt>G|7%_)UhsuexWS=AwmP+d@lPIZx&xDh>@K@ty%ko}g%gD&Lo-SAAk zv2G;6L`Deb1YbT*Q^7Xn_(nj8_Vui1De2=roS;!QD<16i{QyFAGV*%V4ZMp7qXKRw z@0qFP!4LB6R&*;`pp*RsEms{T1f}EQn2HqSCCHlS!s7$}Ym8!B#0ymAXH3me^HLQ7 zxqpu=*A_Ji>BTE^%*>skg7lhaP49e^`ekU#jA;_E>#7cEH__O5Mc>zDxZey=thJn-i)qoi$WACTpudorv6`h!paMBW41MklQ`Ah{_*gfj`fH=!aNW{|?sjZte_&1g&j^Nj?J-pC_|745LW1Qj)=U zDfao1e5)foP=yRlpL&2{AcW*wV+rtKp#yIbD)blWBrdnP$qBMR#vB!&x3d zTS?4~Fo11(2KMRbkH;&Ji$E9d5`id^#T2AhpouSbBdBV?UQoWnubqx0p15JBN8gst zV@@j~{uy%qLA?)!k@KTjbQmv6C!F3pQ@oC9$ofmofPC(Xi?j?stU^-2xkELE2(!sn zQ^FSVi?rcc5i=vrgv~LU8rpwD%-}9`ftSbJY_AW+TB~@?pSIjWL@1$tMKLfReQZ-tq+@t+^&Tj15T#>xlyWA+?Z=tF!uS)Y(&`>_ z?N-H3YB}GAI(}mC-Y0U<^c}}e@Yj`1j=S|x$NtKxSJ8ksy*~IVTt%lEP_Rw?IDx^t zu{J6A5c#ZO>e>N}-4gCnqGJhvaHrSR6@7##3h+p7EM9Hw9{j18fo!c9H}cZ+Si4il z9hv@OYmNCM`Gf?j1iov`IH)J8oqinv|HQXxJ$1|Kd7VyYa61^X^VrHsjWYdxtW2`_7*T13egPE3kGun z_=a$m*Qjr7M49Z;9pA%8>qbB?x$q&gHgCAt7;i{GDwqZO6wtyT87r=J)`n)1G@Vxp zElwH@%GOCsAkc1*{^)`^L4OlKb)uE%8Gnv1#a}JJ7DBhzZc>z4-Or0H*O#BQwU-(# zeS5?6yu29JQ0o``&HaFcj{jM6Pfvqi(q}PNHe5n?@ zUzv^^Ev8Ucx)mCZjHigk_kQ!Q;FlEnSk>ywa$S9@iuWgbD`Gr4Szq6rq-OMvpOvLt zNIr8dK+9E0LyR8%mI{4Oq1h&Z=q8Qk$!3Qh`6e1oPjs|=GoSiV5l1uih@)uppjmyh zHtjQyVbA!q{er^G_e`Z$ma#r|VMsf?+9+JB6jI>5^;#5GxO$tRc6znI>hm`yI{qc> zY`TLZs{T#5Bf}kFP5KfL6!BNxZNH)>4R4f8ZNLNL(%%Gj0Nrwq4SKEZ+xlmJ;e0UW52!{rWi2IjucN> z@1{m8eE6OKHN#L$9#Tx6ViJ&bvHIUuI&)lWVDBcq$?j-ig6@427vt4I*IO>Vm32+z zi_rKb3rSznS=*FP47S45k4`8cwhlJ@7#>nAykCBI-hPW_AbyO+A=Kbt)6udE_pV#2 z$8hH4FWrMa$|tNBoMN{qp@dQG4`1vYIGQ)zHiMLB|6nrSK87x2EBM%bt?!%4w1wNe<;nw++CvbY(Xg9V_1~D^?lZ?Bvu(8ae>;Q?*pITzB(hN z7qVJHcoAvw%6ZuT&8(u$tQSA1y703;sjIXxE!KE7^nQ7yluWf`;!@R9$Q)x~T1~h; zxRTKjvs$w~FOn8a^~by}mIsmHx?bZ~bjX=+B{C^Z?}Ag?Seh z)eC0UFGA8AVK<E3k5&d!Z__Se~ zH_@bCbULBDz8?Q>#)^mjf@kXRRm5gDq^{YHV_Cr}pV%7apY1Mvtjlz$O$ALE=?cue znsdR2ZF+XTSjdFaOxEOH;X9uk8EkOz3Dw>n*3gDr6i&DV;9u1F)T z=wUXCI^bDm2LG#Q#(1P;iJ5Vfv&(5k-^|iheaJ8C>wUOI=wpg7K2LUj5L)-8h4@8d zlQUi8GIJ!Z_OQKG;Z~wyT{WG6aFLybnD4=I!$78Ipe**W-{si47T7|6i>DlS*Z6*c zEwteA8_jkdp<;&V-L(m>+Twee3t#;va#}p~Lsr&Lul&1CHG7I7OQzu3@n3baFTD}e z2lUe3UW)kv$D_cZXD8z7JWAGdbg}S!!CBadDAqyR%sta@#Y*);o>b=Hhcw!Z@$F-> zGVWWCZfxxx(W0V0Pnj z_jhjnL35}ac^x+L5@3EU)XGFuunM&Q&UX4Glt^A-;O=vAJullw#d%6m_)DT)MH*)N z$G*nJb*3T;dc%^LuaZ=>5Q&4^v~DO8wbG`wqc!Nm7h6*0-)64WwN2D-x3NdLk9+() zJ-+^PrPPr%bxiubEn}*_>tX7*h2=UE@1gsUv<}QEk;C)!>hGt;A{k{(V&d%hsO}4; z$>F)ZMQE?SPccG^d%`*)ZzgxG+e1p$cN-xnDPDJ&VY?KNVw%5=ae?MPH}t4>E2F%b zwLTrAJV3s#hi{;ln6x2_3fayozi0iKX~l7FL*IQvI<4-*A^Vrj9E#7QY}~@WDu1SP z)X7p``h&m2G~n)7ktJatSRklRowEHOkJS3}A>rNG9+la)4)!WXh{jI@_Z^PFC^%?X|k zikazfcOWsb6^H3gb_4nHzuy1dVA7bZ!M#@OdS5Y`?kCCNz13vdTRHnX*tFBUPELu+ zy9%zj4<@$(>y{qhlf5y|Dx*CPm6u!^%K}h-PnsFGjbY!D{ZXu)=(gtI2Ay-Xs`i{$ zty}as4U184WD?Lsdn(s^Z8Z$1?{nqYh+B_M^;bI$eAM)n&IoXh!yiBJ=OB4kEpw*p-1FuA z-*tK#l)z(M-lkUy6+9x{v8hW~E(Sr=!PZk{8AApdo)(;IbmV79nO@UtzB=FQ8kE2X z;3T?YnuHnduU4|j$!?2|NEDdICDHOZ=#CG%4BnXt`{S-HYpC_gI^t|(b_mrNK$L)aMSsFJ3D3A>PIbt{P zV2+>ToN`t}72hNEQ0fxY2!o`n2SFzqMM0)rG%MhiAlZqp2?xQUoY<1DA)jJRzj$KL zk8@T!SY_l+cTOms$s=7cbNj&*nQWfNzM#)WSPb`edj#G2kDdTk5;+k;Mdy&`BGy(D z-({>#c|#EUhBAx4i_~v^>gYtZf5JzE@3mF?C)7;&yT|qqyjj0{9>mNlnIU&>5ixkj zZh#m3^g+Dg>HXoHqq_?P*Ny59ruH5`{l~3gK<};Z_O}10)N#|x2SiESRi?dOtm_iK z(ztUPvL$$L5cwG~&T^ppE3Q`1Qh{`iGL_6zZj*n?B(^{$sG zFausWOP8M#>yM(69bm|aCxzudt1?{t!1alB-K9kYKV)rTWdfRFeVAjj~a z_uz=_lp7XkZ_*N8>a_$Hv=>~dUpKM!t~{7gPtkYeg9T6~anMgl=R6jE=>%50|;i_idSt3R!G zs~r3^G6|7$l1IwS6lfJr&cBSJtR8%?pO}x- zqxp?Tw;w;RwcCx*uXPv`6XPuD=(D)q!>2x4zFM==Qyutk;HY)HblS$G+^rBM8eG

    dzb`7Jr)KxX%?rG$<{56Z;WPfyLhPv?Oo8}9(VJD({0~cO_?uWN8uP=35!|HSO zbC#vsU@!IUeysFg3K})h7jo6s-9(>6MRnEsczAytz9&?05nOHlZf$qw`MPk6*vIu9 z&OE1gwwDxzf^Oyg-TW-~YAPLd?X61ZagZUQ#9r3lRm9yqt0N(}mtN><+FuNB49}K@ zMd#wjtJQuWUJ#_mPKiA>N>F`UKt+)jVkyyuH?^Z+Zo!(>>Y^^Xo!p-*pVD{1^o7`| zhH1rV)jmb*Vvi2OKWZD&y+Bb(9-BJ1i|fdiH2U zBH__=yi9n#0n0xr#eA)LPOUm*sB5F@SxJXq17))*%>1FSz}!~#x_I81|l z4tw15JK(8-ev#%>^+kIDwnlt?rQXlY4se%oiN@tSov2?pT+c>GEkf@- z@^0QgS^|hpQh%}K>WzhE)O0{i^}DI_cFv`S39RQwfx8GQ0m;;Lb^jhC=@P+g?L@p)x>y}!e9j`B@@ZRzj}H^-`qdrKE@A>-#IdvAe5 z^dN0ALZG4;4jUmcLv5C)|9$v)aknb&r{6+gtY)jkLxwCF*8AT3co)m6zj#DWA_=H(XGz_7hL;KMQmUI$I65*(sLB=9u#^8QayyinX*WO?$Ga-^^?9t> zIkn5aD9`f{T>jx09rg#*EnB(fFUO&Vt?p0!jQlai%RA>E{|8$%!qqwbX)f<9TM?2* zZ&+*eD=|Ty*{LR@l}H(du@uhXp^7d3oK?i{`luMcqI|-(zF`EwW9|SC_8R_!R#NF2 zh8=fZUTkyn9q!YpN0Y0EuEcM&ZrnZPWZU_>RE$E{RSLO>xY{bWP<60!OzOQo)aDDz zCO?$vaucmpO6B&W(^_QR(;wY+BzqBCBSzpJ-sXNY#|x2x6CeJm8gP&5Q*DV9Z|t!o zPT6i@ZsFEv-YN6F$eNq>*`Y*l?6vbK?1rPj~oR#wUG0 zYiW_x6Rh;kO78ar(IWR9T(!%=7fz*oO|4nZ-i>^a9 zTZ3N7CNHE*@Wa1NY3SKM*0+4p5KyyJ!~`!3C4pw03)uX&VvvS-NwSYf9oE_)dAM`Y*scar!lG|q^ zPc^affFy}~)M~m*f<1HMF|2>cX_axLG41GJ+!c|@TBq$k?UL0$_ozuaGLt!R9uQb> z2$P-+Fz8WLe-KQOc@xO$^e9gJv{x9LMMogdLkc6h03&22X0Zez4QD6w|kb1Gu~>-*tpZS+bZn#NjUbI*7(_cH#wz* zeeht!zu^^$f7x&OE+4Kxo*2U_C@K`GUswMu^7#4v%pV_yGP?N`g$`qYe7964;km2UZ0GQ|#G97Ii(S=)&+SC0ACPa~V8r*mJG$^CA14jNoqOZQx4 zO?WU#NYPckfs1^G%O}s)gdGkHjz&5M1H=Cr^mHOcS2`J%ow^`FkVBk6Q*+EtyMKpu=-~CS7){fnmMz!icMHlj;r+r-ZR+%iwGu9!t&P%6SoL1L2 zVU=ml>uv3pec)*MG`HZT!E0Eg)qhaOIpr;}JekgEkxwg7#icg^lGkl-E%=kmy42{b zmbZ1icw1$+-)Y;gI_)`TG5W!(B8jX9Yw51oN6nB`!dR^l)0dpstQqlV;{hSI*)Zta z(?|0I+rRjy4Z#~u&Qe-knc_o_oyVdIlH{}3PRVqkN9JgzSK!t?LezS8FBia5d2=Fe zqV@fVZhnaQp1EY`K0jCe+tcvboKPJy_p2Jx5HbSB;RU_WZhh3@0nG6 zdbrFv`hHwx@#U!-bSC-5x8;kwNPSPO?wfrF!}n|!ociDNt3J_$R&*b+#?KVLCN490 z=aJ!BgB{r&USM<`9W|*Px|pkLXCKo_BIvdKw-XTaCi9s)k%Q>*{=3a+)gIfi-GByN z4*9w;7iA;HeL0=l?&hu`0|UeAhLI6HGKY@pYj3h?rMr=O(UFN<^UKD57iM+0%Ivjd z3+rFoer}Umn+|s&?Ls7xe^{7H24I2hyhy&aOnqes{`&2?>n`px|2uAY6ueckNSiuL zIowo&ofsO|8T!E#y&^xvO@0miF9ZSN0TUOB!uwL6z_V##LdXg%L+U?HYJAwXG`k5G zGq5<-M!ZW`ZUVZ=^g4b50IuKt4~F-{?3>oOn$}cs$lqf-z1D{A3{xR((C%^BA#GUq zTduc_HS+VJ;d%D414B}II1*i7H0)8%^=z?M)7eGn%@n9+JJ8=NQ@Q zrL^bI88^Lzdr(n%x0fB}Et-~I4rRHmSa?KAR_~J<_Y^*>iSbhx+1AN=KBg#oz@ja; zOY#Rxdiu)wx7#Q42hk)n+|ys*tR6P-7H?`sBq`!;`aY~Q<9bp423$JEzkh!C8}~;V z`ogrb+q>iB#%QZCK|pP&OJxTe?fzSP%V+;urt>W8GTPEScwfI7n5;D^nJE)*{1Zsj zN}TMF)ySqrq4@SZWBqj>V*7s#*ENH3b_(fD2Y zfbNeP@C|vUx1i!0Mzffu?OUV?0H$hMMnSCH4b0njc61lcm^qKFAP}J_3we!6D<|eV z0emu(72FQk&Sv1q+ixVC=u@pRGarS{9c9)9ykh+JML(~NR2AD8Pv<+Zlv(wvYSDX~ zcjf=igcmpsM84dfThP?#<&mm}FbmX|2iuOp-tkD)dPOG->@G*rnBVt)qPToKQ6{6J zQ9Qr=DnC(k6(;)GNcsy=6vhKH_$6c`C0@?^+&TYak#(>vw4lSPPi;28&5Eq{wEq3m z9GI*zLMA4Iy3FX2k^y$7x!?Ul z+j)c4kwPL_LqiptY9U6JQf^%{*|fc_VtP>-967=q-4@;P5u3GiRrWg7FniYg?y9YM z)O=N+nOvw+82uXj=+tnG(_UTNYuNaEp)scaFy5%ba4xR_M&q&PH11rhiP4@T^}IhS z#8tA_Y)UdQ%>R67#J#Q5$}s>!(Y^en*67S6bd#Cyo1x)w`J;ia%72~rryP|<$^X2) z(^oT1S|;wMP8o(+{<}_H{*G(thxV95aAb{GiMUnFdd^XFOZ8jV5jrl5l>Scf00mdp z-VOMgNaF4@d{Zv9{*+7@j=fto`6UXr&veui=_hu%WOK zLa+|j^TY*Io+^+_bemPjLtkS^Ly_^s(R3s@pTNp*y6^fbjc;Z>i-Q6~HE}cpY!3LZu+GiR22E|N+vo2})Htc^>RM=nJxnc$*AMKAg)Ar2ea3kh@!CSB4Kk)#(kYaoTYB&_~0ntOk#RZW=BQ)C@HHVZS za|kiq7Jp&!cbd_b;vaME0`<;yR?-e=D+-eEOw(F!r{l)(t#dV}|Gz?V1Rx6!y?Gmly@#HNOHMpM|H#tT>|*gbg)=>0m*vhj_o(@=&zEA<>{JaDk?sn0<9^1otPiscZ3p z)~KTK*32P2Jsuu3^of$f^R@}LM!n%YXW35#OQ%t8^-LXvZqN+ml7h0QlhINTJrLwU zI8<7lhw*I*%7}*%|3^iBApX}c1hs&3#=#s(@gSOm3<+TDOT7k{Xj3>ttFwef4SXNe zqR3hWnTT-Tj5txGh~XyULJz%2 zv~6n&Q2)?57Jn%yXMTukLI2ibuhk3Z$qt}mNM)Ps{zd3EM0rQvF`?hDtbm^J1l>K& zP1>N7iF^>HHER`4FQeZM{}Z7VSI+#~3hDM;Cq{|llc4v_cFfBlq&__hU%HV3DPMl} zlc+5o3&4O(x`zpZe@HuAZIFv8nt{;_r8GE4pknb+1%V?ZM=NpL}b#U2cABf34}8Bk{j$ zGWtEJo0Uc32lnYU-G%21o)(;b$V%ySLE~u_i0|aye#h*!e?`%%h9Y;p6!%aO0M?TcC`7mZ$VWT8ndKAR~m^) z{TMAJKoV9;*o_PHaZlG{hMa&4E&=Sf*&~@Gdz8&c?a<`X@uZkJ=A96qso5<1c21}Kb5j(7(iL(W;DAYh3Y za~_CE>NdkQ2I+GIpHvajN4v7vV+ACQ2y+BA?tOF@zsQ~cUicvOnA#csvO41_rE2WQ zUdiX_<--RiU##IV*7T!lGS@Wf{`8@+tUS`h86%KyKR4HI@3krWJ1eqQo`1rG{vS-z zq}6G|DQg~;U&An1!Kq>qh?peBXB-k{SB09H4d2?KAx_15Gsq}?FVC*Jz?4^XO>@@4IcyiRSb9df33ecLWuL;$ z{(+G(Yu-wwdu;L^NA*^!R%7DbY;r2{GcVCiXwJRRu)ng9;_&GbD+~);4IeQ>WTuKn zo#zbB`RjLsV^BzHr#vK!y(7{6LkEjQ(p;@3tQ$kl4+=grh??8&4g;qzgcc}sWx#M( zW?zrWFM(69g(uQ8)(t3T-_zx=ksQXKf|Cx(QnsKdiQ>WL2+CDP0QI5IpoycuxT&wP zG8Fb)=OM(CE-R&0M@>~6g3l<7vWi=%^S?*55yHs~@8u2S>BI+xV1%fA3O;kl z4;|0dwu$tDz6Xr{dS4g3qOX23`%X$-{a$d=m zjiv>}Ub*NFOCXY6+uk`{5%v&JT7-Y zJ_7;WK`H&+qg49!HNTt{1y3FgbG$8$>rt>aT{^hZF0XRniWl0 zUt5(Kw4jH}LZ5X|nBP!!+VG52(;qBg&q%-W$ zb+iB1)O*KM9rpj@q|9SPIF3D{NY=?Xw!_J$r8;DWbIfeXDjXv-g^rBl7-cmaWn|A1 z&LMk+aF9?|M*Xht&)xm~`Paka@%DaS*Xw${p6enxYSTR$E_7}0CEw%89cwLgPKU^P za(#rF9gs^8rdPOT=-mjSAaIzC4s6Sh1e;$xQkI2FCiiENC2nM;W7O@g{^{^t&;Fb) z^_Nq%oV&C4<0v(wK(5E1r4QTMZxV}+-337$5S zSe%y00^!oLC_ubpW&*a zln3uR!n$rI_xfmOG$c+vPHnu_PGybP=53678mMXCxpw{Gv6+ha{*8$A8i~W6(!y^s zggjSm5PrSsIl1l1<<)@a+M)$V7WD+v*x7!M#G(leapUUz0J=(X18|BEY{?X zlj=Fhzg}*HUs8J{3I@;b;}f=NV;aby8s4d8qszP9&y+`^LfgXM)}9=gYpohqL8{08 zZii0&9vX4Uv{h;1`K+bdfV`2hTQp+3bPPZ9aFfZ{J#@Kxsg|Z++m6I$`m>I6^hbbk zkIGELdMAnb*M~O$hs`8h=5$RS>zBNw^$wNr!^WG2#a+D{o&8$%b|I_2%8|k;>I&ag z#NXS7dU9rc4_E)VdaZP|nxmwufAV+24)e!5_57>;zhmadXm(@QHKMBCw@b5s8cZ$K zTzD0mYhpG!bj&(RR~Y+V68Eq2Ut&xyQc)O7Y=WEiA4jbwF%$1InKi@dsfiv~4kQb- zf)1z_xU}Ft1WUPYLKm4Fi@KQ{96V=DkI7nSE)tN?DOs>#g9vvHRuyr7=qupRu}d(7 zs@|=Oa-COT$*fQhnB7%RVb^BS_#t*1VCWN-Q`>*$E#F<5mmYefeAY5Qv>FyB)vvK3 zEwB#S|H}DqlJX?+elo*d9I8P;zUMv-7-ajtw5MeU1w7So-+HUfbL;La>Pp*hlaX!f zIjy3PIy|Zi9#mBNV9g-YMeIhEn@44SF6#XFQ~5Kcfi2f^~xjMTf3UKt97?b(tRx@z)(C!utU6@ z7;>8~)nYim0a?==iuf_{RrGr9TXaqM>iZF zbokk4$tMN-P_o@6g~==crs-*@^Snb)i6gfnF;7d_Dy+QhpJD$nYZ-nH>17?d|n)23#a|SIY<-Wl-Dns7g z&-sqpN&e`wHFLvze4x_%iu-{Xb!#qtyBoVRm^qU7Zu($UaORcijA7-KFYHUz2P?9p zH-h@care$why5yYYr6DS>H6?f((^HJ^XpO9=qDTJCXb6fk?cGb)j->@;%P=8xqm{bMZKpwX5GY*^sK>2>C-9 zZEt^b*?Gi8c6@7PqH-p`_*UImT@AO)P3EJ^y&4Ez_!~I%*4TE3D=rX(oYTO>yd%t8$ zclp(4n;6LaPCtUbaXvpl+bvYNM7mQ?rIZ-<-n#14EUYqIg>BCRYKD`jaD(iKnY58|q zhbO;(=wr+Aj;ap?{_ojr*F0vb23KF+BG&L^+F4gqsbO>BZ8Lr7x75)eR>7Ah=(jUH z+b_!S@j{i`j?LEO)k6h<0xO-OxsKV;#JwFuckGv ze41!Z*&X~k&^ul)P`|V-LMXR*SGUR@q8Wbu^$c~tzE9;nkH=V1)8Om+BI|%ktpMzY zPEUc9DVdp|t4}CZ9#-oCO?(syi7Rr;ggGpw2()^wuTk=>qWoOSn$YV1%Dohr9zc@v zHpKOAYep6?kI5s;9tgk@Jv2EoNMvHC4;x0$Nf<9rAg}|rtKk8r$ku1osOGb*KI97TT*8tAF7OWi_3D?+y_X?Vf!2Ak2j=*(SAM%`{6XgG{%==F zwJa|uXM}db_c~|Bj})u_ykV`Lgw+PEX@=~c^mlUpK>V`U7Vfh=Fi2=vFMSu^6#gZn zA>rp!_yhqtk}LDhw0^&4@Q^zI|F(2>5c_R8JBmXmukl*t+X|EQ7BiH^&5W#SRY^~y zP|1FBRg@O#7OAgx=9SAJZ*uKXU0@j-SFZlH+MO0ce=1Y|yk@6)5KOgnp@4PJNpU}? z?p6tM_l3gKF!Sm2w@NB+?b1%O3@0-k+O+h#lXFtX1w&LJ*_gG7clxr~C-2({UNkEk zbh7*~9vJ4u5Tq9N@&@bbKCw8%`?JR#OXD=K7EhG0#m~N15j;2lWl{b^)6nl84ITEx z*?nA*_1$Wcph7h%>fXC0VYe*-$2FBky!W5hYi|CWv~_FS`N=6Mj8OLQ(R}{AI;`T7(jGSOm)YyON0TaEn6*_ZnyWbfLF z+UL?+DT`nw#?#yyn5th%HDa5v82fa~&b62Ya{Y%9xK()&aX^h``F#yqE8hiq-tZ&bg8=5T*;4 zO~jr2E1xBe!Px%6dDW-9c=FFjwukpGXkkAn^}Kt8bipU^Ah#_=H6IY8k6QlW}3C(_X}UItsWKk z?+7B^%r}c_qK*_Drwg>^C9l7@75isMkz1PWnZoW3d%$G1B=GRT4#>mimB)}OU@;zW z^aF8hylt|loH(w0RQ_&11xS}GUJ{S2yna|$-(4Y8H7v^VzrMR0*W08btnsFY^sDL6 zCp5@+$JC5>8x$zwVn{wl%7Iva^jS5!Y!*N^rmd0ZFO304xiT=f$ znh}_z1K}b4{^^o39m99+8)-MJ08^)6qY?Mp5X4M`5fIZnzU=TJ?c~H z#@?j7TVPVJ?B#Rel@rw>ugl08R()qCpz*^~sWsaOnW^UnL}Jj#>TkD)-rjr2u&JS= z(s+nlS}qPEhKZ>y&GZdHl_szwCwksa@!tv^LTHpY_7lz@ynM%K{8H1&Ip;+7O68dK zn0LWMt!u`u{Skb1-N#pFE0^-F3+$P!-Q^cxpYih7CSVOEZFD|Q>K3-(3*F*I=E!pN z|7$95o#_yL-%U5Osj_F%{xKw~7Dy$pcIlobI6y#cJdLBj7ws<|D~WV}>`N0_9ERzQ z(W52mrXqhfGb1iP|3D^S$5f)kQKmVU>Yknc(DN8HmFcwOBi?(x?ftacHB#EDlb-K3 z53i|T-wiD|j?2|r3buqe{zq54w5Dx4LFs7!OmYdk*iL@HUeUPSAa!{3K0VXQCL;Jy zCTI`2_))#T-Yjp#`A7LB>xdcHGu8F}CP`rpaD8B#D1XGnk(S@Z!`-onX~BjA>f1eG zCAn$-#-HTAl*#=Ki}~b3wY9kh+4VPz(_w>t9g9guPyN0#1mfR04iv>6y%Wy*d4@Fc zvBEE}gOu0gHn;6M?NrjsZfv`mo6Udt`luivDdOq07iAxC^apF|6PT}slIe@djoTq} zRX6&5lo}*I?MwyU2@D;6Uf)uY>G_m%zxUqG51*Ga7R)A|iuZoKI+(Rp%1jPP`|Q}U zbN}5j5HfZpV&lf| z+CzDD?SY@S>gJcK>$%63#H>}DIG+yQ8Fa{2sB&Y^p8U2&?DM|tAtkr6_oK>NVq|t` zWL&&tL`bP8aOHBI)VfFUIqcEboQdx&+dSUxKM$|O8di23)r9D2AZj)L2&H;xdfwcg zy|R|!;eB%Bwb^mkcmAxBPz0Nr!U@2Ig*u|Cn~6DEDX2Dw~7{XdaEa zjP;c|EnVeT@A@@5RSdY8E17emxyqKSgym~x%?MM~v^e@Heie;>_(MbM4lrfs(%Zu0 z`I01c+D^sV7703Hu5qFd6_HH?Yy(xfOsrJ``r;SQOOp0Ks(||vN3KPCwr)L}5KR*= z={u9o5b`^Pk({j``Tg`U{}ItP@6+Mo(tyfmkGPZFXIHVhV*ARHptvA&>b%vn2$&1? z7a9^~-b)^M%I%XJwvZh9L2XNcC%A;;y8b%Pyuik%ggX@*#L{W=`GJr3 zynMP#2n=$O8PsQ|nVy>LE!}gdAZv@dJ2>v>{az4M(N=Kv3gvOD89Y-_1`M@ttIOW33}BdqsG6-{gl!3_7Aq&jq?b;Z&0O)uF`>J&Qzy# zWBD_NG9pUlqJIt|H0lFxSgmdd)UjBoQI7TFt_+@g;E~;_;Ym~O7vu3yk*Dw?S{2&R zoU)fA1k0bj!UgPfR`ld5he#eM`j3V~C2-%fo8bYuNW5fN4cBaS2 z_V`~`se(HJl4QXxbPST@6-M-%0dMmHay=Eme*j=UPA+wind|T#YS9CxI}-!STm!fN z?!8>q<4CTOrYBV~ib$CNiWsu3Oh)fINjI_c`t>*f(JWo(Fe2_?SQC@y>h#mrC~zb9 z=?l@|E>7l@$LOMyrs>zw;5P6U^x9=EI;03Gz%%RZzZNj9wLNkAr)nJGwWudF|K#~q z2Vln3#AV2%8S)i0+s-lclCyG+{+fiCedGSZYz%7h$fl#iu*Ek|oc($ZwAb+CnZu$E=KP`L+ zsolPYN8~w1sH`F>n)2lnvkPWU^cASVDiF0|PH+v|IPXX$;Xky$lX`DclgeKMVbmstz?KDS*OJt1Mcx-WpK@p zZ;Pfc|I015#r6$5V}_Io8vdztj&QGPlfJ8fqsIMy@q;j{C#v1gsb#uj=W*@z<==f8s|AB#EM?!)KpU0l}3ZnvaW@d7(eJGkb>eoG;ZfRzDSzWqs+7)l)B9aiB# zj%r}fet*yaK;&&No<2@K7@9&(Dpo*?QwR$vu6VXY%H>L=fF=?E$0X4tO|0nvV=f_GG`U3{-0kD6R zLD9#7R#la$0vO<4ay$Nw9$^0K)?-lfb*6SH#B(j4e^qWtkw^0L@m(uNdwv{vvOA~! z-e?{Z8GfE_>&gWkmW#|+{B|^gr;CFkG;vzIf1LMsw56>lHnwa=+T4HNPv>pA4WyVQ zsx=dA*ZsbnWB5UM;x{9vGq}{K0AR^tJ^=Mv-^N)P6r^$Il=qT9PI;ds^3uql4Gp+_ z*nVxP+&!}HCAS{wMN;rypu=-;Jf2u=gqJV8q=COfJb^^?OPB=@z)e@3HBJ@s$i))p zXSeJhN#eT0Mc#Vd-$2;#zq}SLD~a6u=euez6z%S9XE_xOgqO1RBoFODBS1Uvou+%w zp$pzG`93)I+sUw-$sR4?k}x$xuv?N8(2kgspr+u|V=NrgCHsD=G?U|UOU~cAt38Xf zN9-ym)$=_iTOX%-A#pQi`-cx0FyIQY$lTM%w&*~*ID3}z!EKC2Kl$C2S{5cdm+zz2 z4PKfp_jWdZX#21H$o$qbQ)4nGl9*AB+5GhJsrMw-2XGVnML|PeBn^959MKqI9HOc0uPD@gDSX9}`VZ z-_$XhFuCQQJ@D^E-9Y6t9rC-h0YXk`Wa$Vb$G$ydQ~0=Os2N*j5p(+R>4tNk_kmmY z*82_ei!!^am&JFkH!>mrs$5T^@-8XC8?1sYd&#A$46gyj(hew=c~w9vMpJq&N#h+c zS=6k|GYash2|Q602~?RnqEMf~o~i)KDV~iR)%9E+EiT0RhT?C>(2jAq{is-l?W7UX z8sBXMRtjToaT=`tGfA6u48QlBVJt3t^WuLsP^N_;WF)q%%a@S~b#33%2W5o(c zuC2rhpseJPw1z&&WxcI-JR~EJ{(*q7ek2e@NkfjVEFkA|^gQ%_LXP0yK}5mA$Lo=h z-a)?@>1!o&*4wJHPInMp?2c6HOH5(lh(3R8s|@}j^=1j9oSLU+jz4G z2c}sF=eC`dz#R?Ek)Ipr(7mngmt&ZcjZ#K(W`}4fI948USM>R&LXHe77j+=AFS$7( z4O|u6mm#t@C~x@9+STl(0lyO{jksiwiKCq1PRe94!VQ0;=DQ(K@mhdfg04WN72#|F zA~I<16dsm!4%F)DLZe3+p4b|ntRU-gc?*6$H??(L_TFLm?ZJP{Z~Q3mb$&h!`ryP3cZ$_7CxfDgzA9Wmq4i&DnzpvL@?Dp-<=&(qTn>7)tc zr`ZZSnNMJ9xJ6G@vpyc#2}yb*a3Iw1m2dpLr9*D^uafu|FT#-hr(-Qjl zya@?twugJvBU>^>w&8+w}ku%3zddSK{-s zUDpA_NY>K^IUZk;KOt*_t~3QpA*`C2Kei5K`KR_#MFIfTwgT@{tWVTg?Y1zwG>-l* zrpBsQN? zBpz1mSEDu$xDEVscYuDGAsSQ%DYJBVpV2&zMz22uspwJ}eAaX+r_?Xt#q#~eYWckr zkpCO&B_&xM^gD%Tx&Cm{lH;I7l5r@?x}VdXc7XfYnj-_0Z!N9+!A0>J8v&*?WtSieG3`>#Fu`9!g$b z-GnQ|m16rOBeO+7wEBN6N2b!cRyaFOjijcQ^(_(qzDq=<&=GJ!^MHOdl0UyArWL*^ zFPgIu38`@VN^_P?v743#rg^~>WBHM=ge0=W&~AQEnZY#%@2ZJK&0ho=(8rK7@y1ke zw>mptz9@3N=1z5P**(yBEP0LH?;#Xf&qNaXW26Ki!S_@yEO|)>NjkNX)%t$`5-S>OVgH zQ^0@aq2b<(GnfcG|J8NXJi>=QF}r_?YZhP z#uvJHuRTM?=|>cogSO-}jwcMG*e9AfiS^(~fSUOmyfg-5j~sWy4XxS&-bAY*e`-Bt zTnduLU*T-X;zjZ>NIx-fX6j@QE01^7Ahbf@cA63TN1@YITJ{Hpvnvj}8Y0zlWM}^m_F7Q-~rU0f{v@<08E??4nmMI7-0}lLJOjNunaIq z5QN2{1y7qxHN~XmQZUEW^g|@&$H{u4+&COd3`hP691jCE^$V z1$Rs%FKhe5cF&nTS+JZFcmwng`^j0cC@6^5dRxGa%a~9rJlA#oK7mr}-A-;r&+>8- zFO>hyY)X*i6r7+%rN6-V+>wR_{jKt*{)|@eG^(WvYTll-vXc6?SWA+Wwa}|(( zc4>fi#YZVzf#a*;5RQs4b>*B`&!+z+XEWf;$EH2kuZTRXZLS;S&ON z9$EPg95*VX6Oy(@uNt#Fn@0D6i(wJB1iN|4&gA|1NXgeO+&)!^=Qf{zed31apbxvBuC$4s)D zDZ#fuvn>u_5`5|67e3g?go7~fj(I*Mq;Ug1$HtsW3;D7HFn@5JLbf@{jK)eP6f9pQ zk^Q8c;OD41UL+T3^v(03Qi+_2=5st{e~(cp@q-6^=rgSXzAxYm6E>34UODE=+ za<67TN=(q74^eN8?c@gUg(nnq0cFRNQo#WUv%QURtdQUB)f)rH2&*?wX&(>B-?~8& zL(QklJeLWfBNenPdnZ!v)N;TEx)VCh1TSO#IaQ>L#Q9l~g10N%z7&Xht&vw#QA#$s z4s&Fa*sKyTVr1boDr%$Reh&I4z{Dpji>Z)npFlnk65A=6lP7y zyXpffV!VFr1IkKI4FAwb6H_7&r{EjzhQwCPH8Td)CPm&fxP0LSKfzb!bg_jFdN7oF z^rCtsMP8~R!5Dnqkb!7fR{l+RFZNjZ@)P}Umz`e1?pI4Xa6M1LWbch;|94dm&Tu=Z zEj=lvIOyG(Q#bjYb-IzoV(XD>;;_D}^KFLlNG92&mU9fPVB-jXrC6W&#DeU44lYyX zmr?DZ{aYtgdqfuq3mKTxJ+$WBVltp*agl&s^8>d)0N?Vsnx!<}o=SYfA7(h!_gc7J zE&7pq=sv&AALY~p9Hc@5p^w7}3d#UbVU72)XHfLt&lN}TxyewTY-OO{z60Li*Gf@p zs-y;XJcGv&ui96@G`ND4twn$4C_cCd9!6Wl7TGFEPpk4^x$$4C^WzM-oR4MEWe1=Yj8)x?@F)u;y2(661Zha`cY0Y{?Cv`20f4pYv0%k3^S2QCWOV< zK&q@9Lra`-KaJ3t$oZIrdUt*LMHR(O1wXC$*lnEz!7j5sRORA?L$Dp`sPt?pGyhpE zelUtD0^JbLn5_w^x)6Ga@b;T+nTN-={Qo65IesjYSK#NsVGqsol|nC)0qWu_0doSU zkSLNEbc_gSkS&M;j94WN`g-*HA7(cwpfD~Fs>`Vn&7iFZ-Li{XTn=DH3~=E<&DX94 zccGR9msqY|CA5=gjD&%zc8gG5@mB!xNZp2fKa@&TL~>aH_~Orwk(%{$a02)N=R0aF zL2?q~A8^76E|`MDfx@+sDw;&`*F!&9ZI-CuUK4S^e@~aR$4h5O8sg2(!D5@cAibO4 z;1t8rV`be|L}NT01oux*<|wl;Wmt!4B7!B zuP=cX@1YIFjQ&kV0+81Np@Y(cOm_!J?7SOW?>Pn#THQmQVf{tE{u$!goB*mFz#3dZ z>wyYt5=G8m-SWmja&5+*m4jCTP2v)S6;ZxKi`F$biU8P!R4mHsCm1}!0iZm?L5Ua)x)T`2VY~VPP+X!Ps?%tp5C2A+bx}&KTWznQpJCB zqA46iroYWq7zU$Pf&}S-X7+HDYd5gxff7MWQq8NnFwCso-9O2P_=`K(CSxKg;Oc5< z(ogdEb|97$<$hIvRUYo+V&E2^!3V44F3+azgM^fFU7y*H{_t*TKOveG*zh8M!Y9 z`*@MnFDVey3eU*^GS%b7mj>v*i_Gyc$1;b1Md(W&mqb$I82^2qCMiw*;-X(p9QpB= z3{>^G@H(!04~)QyTSmIBDuTv}D!6`%Q)`QNLvM)yl;dd&Ivs(}C;D_Uklai8(gi=M zNYHHhu+4p9ZpGjU7sM!N-X;fW*wm4v7mx9-6%9(}bdVTIIHLj}4*$W`S)j7JlYGsX z$JFM7n7v@p^GP@YTQHN2V&TFxCgR3$+Vhp9VWq;&N^l&vrdsW<-_Dh+Q@<)NSVECb zatHyl&l7Dk{pSXctln~Vl+f1WUsZ~Fx;v`SyZ;*j?sDsX*dt0JxhBiwDaR39Gt{T# zXl`(z&g!f>tBIgM)&zn~jW-23w_NDzE111bV<9N4Q?2{l#kx6U*$=WJs!d5oE}*Ym zM`j-=AZyFHKhh-O-WK>sqvQOVE2(mv$h@mvYQZ=y5UBf_zhPG?;H~9DLd1~>xVQK> zs{+iG82?s1Nfwzv*c3%h@+TR=a*vm=Vq4RT-3vjoPxiUvMl$lU>2S7SvW6M^?B%jl zym6#R=`bYPzE9b7;$L0+{gy*!aMCm)dWN3{!`LewLJtA3fG&s!^5KNxLGR<fs-VK9#vNRlm?R(i=&bK>|=SB4e|Goc?8;ckq}8^HT!3D z=TC9^0FgdCCpP1aK)wL55z!)%;M4)$fH(LkM-X_(3I(cyAb%)cbw5cSU48S6B1xLN zB8Aer?0o@c63>=K_>ilyV8Ky65#tS?x=vnAP+ zLTgj)sh;RDOfbET(&zh}f~^UJ;0_Mn>9aVJc_p$xwHP_@>JQtsFBI3Cr>xNu*yDpZ z&=tJsa)S+B-9fUKUx*d)h^gxMZ`fJ;*1H&5*dv9_vJhwz<>_zw0j2ORC|GB#z|Mn` zd(MTvLkxHzFdAz=#gAE*&Hh@ zHwlBa*XJ;|)dsHK1<=m|PJIY1T4QA>56+Ry_60qRL7RRoxc2O}!NW|JczuR(xyiD0 zs>mc}IapNny<>CIa4#zA-j}$-OG`PQh0F}pscm2U&0#P3jWt*e@sU`nDc3~oR97u_ALj`ARY@%|Tql7ot}mLs zB8%)MgO|jL_2_zY86ySvaWtT&3&e-#S!d9pDWkC&Jj~TJupJ~4C;5_FOc=0+_5dD< zBN)k`SE;+V(g@qh;eZ8sBZD4H;CWaO{{Rpa?Y@6=IGZfZ{mIZI6Joq2!_?h(-y809 zbEpKIsb$kdj(>5u^F&J4TcEGl>kT6`M}+lF5o;F66{K)wnsRBFUDP695yko_oMbO{ zqf_b>3H*Nt(Z`dQu79y_?%CsRQ`o!&+YE9B(UU$;=>d$qCkPv$_bRuK9Ja@V$-orB z{E$ci1zkL5%bWlT+QT(CAB+|*xYR5OCOkZ$C`8?dQ5X?~v%0R&!rOG8-K-F_7cy4x z6v~T2c2<+`96IiW1w*@5aQXd*(jc9dMwJmY=moaidraI*XsMpyoWh;fRIr_nwG&yL zKo#Sluz47AO$oM2+);9VBpD2AgHLJ|vVaKIBo@E|THXBY14F(F5K{ZshF-Cac?I>U zI!+d2ZWE3q?%TR}G3C=D=cQQ5_^oqEy1;p;|7p)4!H-G@H}xsRpebOA!U6i{Y`5q> z87x#jP_M6Afp22-5kzn+ARlr)Cfuj!WgrD=tQf^9#tk{+u~y0~&N!UamKi7ksk$+_rb+wto z77TsX4QvbW@9D!)STT9l`l3x!ZdYTm4}#g3|)vF<@;zApy&EoIG=e0pEudf279 z1Dbm$pGEU_7RqA0pz|(!$mz86``ta{=bE|yCI)S;EdsYOJ@woX^aPmpmS^H{i!P@9 zU%$3QOVR*!*dYx~(yA&3PzE^#z*80_5SRO!9}Iq+P(UF-iP*n}QORLu&`LigYXEkC zb*=qmC??>Ucx0Vb77MbBOR(+*h7ybWn@uiH5xohrvabbDM4(|CTtPJUq`>D{wK&ndr6yk?CP8QEl)$DjY6CD&x1I1I4SIM?Q9R)^TOw3J}1jZBug9qWuAgB~4q1q+tyM-IV#2nX?j? z1vmiSC#x|8Nuou|v4dZXM~BCnVM>L;EL&E;2GUELfmyG3gjv^w^ac5c0}9%~Hw8sk zNf5HWI>Q!W`JN1zjMyt~Q06dy%{RXCFdU+=RGl0M#@Ct`Q7)KKe$WJ^k!TYoeFe8F zMa>2dbrK~#v1BP$2mJXAE62eaUW;dA8#@k<5=x9R(YL-6Zf@#AT-@<*xBsgL1L?u{ zw`gGDR~1N!Js6B}ag+Y!xrXj7)0y4js)9jhe=EKLG!5wKY|cbm`P;q`AhA~jIh{5t z88!caEL%V2rU?J&3n++W{dC|%z#7nF#JFVzj*3Gu!5%Sj`ZJID{x$d2dzlOOi56D zoFB(TG~kacLP|LBWYB48!N0u~4`g-_0(-^kCI#fbtAc^&ei&w`i2GzdkUxmZgP!iP z#D0AQ15blCd-$b6-K$dsN*m@0|IsDTJ|_*ACwFdA zdsl)1>L^;GzNLZPmt6e}TY^9*GN2~w;`cLoZ zUr=qPSvdt2E~FD&-*xtEXEEU@(Fk@?6~hHP32p)reMSTY|?)=kuy$G9<~$Uk*xD<>M?DS@N@G}|>bGYjaiy&mc^ zWZ|R@x#EXX$*;Pp$ z_2Zqwu%rAYZlPffECKd_f!a@x6(ouqS*YN7SY4mbzj1;~tE*0(G(r@sKP#L{*Sb?I zepyPRL3EjI@P?6qd{SoI$cq5MoNrsMwEi#tKCgF^6_%Lc!220zvx4Az& zQAi?(G<8#XyaK}>u$KV7n>?bSxpfnxP4zQ zspM(NynZRqtDU^Gw+kl!-nDqgTyGGjm6Z0{ev8&Z-IPU>#p0q0x*UVU_8}kg_oh*) zNcRG#USFExAT82uwd7&uq}&KTnqEkSdrUMXjgZZ*39Yj`6oQ0#ZxhB6Y?CWEbi^r} z6-p$a$w`z{fxWeru&(5m&6z`Wf~&m$z1)@9MYrU~1Ua^OfjdNgBtxPtbevPr zNMf8OWS`9Ql?G*jQ%=Nj3yM=t5}gW=@^yJOV-kqlO_nCa2x~V)Mr*y<6^6gB_l-p1 z?j}{alMMY}WD*pcY19*dtS%ZkuQ9vqRH(&f(c~#Vb@AH@$Fcb36^zSz@xS#jNQ>yH ze=m=$5|!0hoBqj`&qr(l`%fK*3P(<26bLzlyviWvE5Zl_d4oVp{ynMSU%p6#@_QzJ zOXjQLRx%;;T-VQJicf`nr&=h-(icOx6rz%LoE7kN-#GV$6t36wZl{mL)t<7{o<`Qp^f0+?X(V!@5Rmoon&DgkA{BHtf}}i z<)={Q^`P??mRmHEHsG1};M8T4<($nEu}74jATBHmG2 zY)%c#bs2d|QR|?pwvwMM&>-_Z`5t=pgG=6z$UYU8Vw7jGJi;)V97X>gUyo8XRZiJ1 zs{-~Zc{~*1=zkmR-?pU12W&1>=h{0}c8rO?-R%9}*g@q(u=PEY)X7xad5X1`;N4`9BIDhdUs4=D^CXLmqF)%iQwg`)BFQ&m2r<5jK;Bh$~Vwqz&6^4G6MfS_`^|;&i=>Q3$9U%K35HF$ICnYB(TB#ru~P%6;ny_{{BS1 zd|qL^7{yCZ9i?QXf)n}~49O;Y7}$yRZLX}0T))l>Ps(M=zak8S=5(rQbSs2m=rGj< z*AsE>b$*(F@mFQ0ERJ$BWkD|-ZA#@~! z>p)p?J3f&+vu?@pl&96oEG}c{`9U|8(DGloLtt+-(_HeDZoI8>gU) zp_HKDJWX&eRpgPm0$NYdL^&jtw1tYeFN=f@JW5qgq&E^5?d4@n|6PBda@I%*6=6Ch z_?nGfBj>9ogm}c1O{JrY?cFT|LSf84NEx>%e&@KX&Ufj NWMHmesb~M-{{sRiZ^Qrq literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 648592e99..44c386846 100644 --- a/index.html +++ b/index.html @@ -33,8 +33,8 @@ - - + +

    - + diff --git a/introduction/index.html b/introduction/index.html index 04f34c35f..808517379 100644 --- a/introduction/index.html +++ b/introduction/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/people/index.html b/people/index.html index f531e8af8..29a6c9690 100644 --- a/people/index.html +++ b/people/index.html @@ -30,8 +30,8 @@ - - + +
    Lily Zhao

    Lily Zhao

    Work
    Work icons created by Freepik - Flaticon
    Reproducible Research Fellow 2019-2020
    City
    World icons created by Freepik - Flaticon
    USA

    # Code Contributors

    Frictionless Data is possible due to our awesome contributor community. You can click on the pictures below to see code contributions in detail. This is only a subset of all the people working on the project - please take a look on our Github Organization (opens new window) to view more. Are you interested in contributing? Check out our Contributing page to get started.

    project

    website

    specs

    datahub.io

    frictionless-py

    frictionless-js

    frictionless-r

    datapackage-py

    tableschema-py

    datapackage-js

    tableschema-js

    datapackage-rb

    tableschema-rb

    datapackage-php

    tableschema-php

    datapackage-java

    tableschema-java

    datapackage-go

    tableschema-go

    datapackage-r

    tableschema-r

    datapackage-swift

    tableschema-swift

    datapackage-jl

    tableschema-jl

    datapackage-clj

    tableschema-clj


    - + diff --git a/projects/index.html b/projects/index.html index 1474f6093..e2ceca3a3 100644 --- a/projects/index.html +++ b/projects/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/rss.xml b/rss.xml index 0f58a2f37..01336e0d8 100644 --- a/rss.xml +++ b/rss.xml @@ -4,7 +4,7 @@ Frictionless Data https://frictionlessdata.io Data software and standards - Tue, 08 Oct 2024 11:36:31 GMT + Thu, 21 Nov 2024 15:53:16 GMT http://blogs.law.harvard.edu/tech/rss https://github.com/webmasterish/vuepress-plugin-feed diff --git a/tag/Clojure/index.html b/tag/Clojure/index.html index 4aa58cee0..a22701c10 100644 --- a/tag/Clojure/index.html +++ b/tag/Clojure/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Command-line/index.html b/tag/Command-line/index.html index 635040ebd..971349615 100644 --- a/tag/Command-line/index.html +++ b/tag/Command-line/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Data CLI/index.html b/tag/Data CLI/index.html index ac81c5989..7013c9810 100644 --- a/tag/Data CLI/index.html +++ b/tag/Data CLI/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Data Package Creator/index.html b/tag/Data Package Creator/index.html index a5db82e52..282312e1f 100644 --- a/tag/Data Package Creator/index.html +++ b/tag/Data Package Creator/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Data Package/index.html b/tag/Data Package/index.html index 51a34fac8..8d2ec7ad3 100644 --- a/tag/Data Package/index.html +++ b/tag/Data Package/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Go/index.html b/tag/Go/index.html index 7c7ed7abe..00be6d55d 100644 --- a/tag/Go/index.html +++ b/tag/Go/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Goodtables CLI/index.html b/tag/Goodtables CLI/index.html index 0221f8a2d..8328a6a28 100644 --- a/tag/Goodtables CLI/index.html +++ b/tag/Goodtables CLI/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Goodtables/index.html b/tag/Goodtables/index.html index 7a23b22b7..591089236 100644 --- a/tag/Goodtables/index.html +++ b/tag/Goodtables/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Java/index.html b/tag/Java/index.html index 5fc33bf32..af3ce6de5 100644 --- a/tag/Java/index.html +++ b/tag/Java/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/JavaScript/index.html b/tag/JavaScript/index.html index b62676db5..756360b0a 100644 --- a/tag/JavaScript/index.html +++ b/tag/JavaScript/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/Python/index.html b/tag/Python/index.html index f2e2d1fc8..7e95d1b52 100644 --- a/tag/Python/index.html +++ b/tag/Python/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/R/index.html b/tag/R/index.html index deb09d2b1..5fe29b55a 100644 --- a/tag/R/index.html +++ b/tag/R/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/case-studies/index.html b/tag/case-studies/index.html index 8aa0a1e0c..5088dac57 100644 --- a/tag/case-studies/index.html +++ b/tag/case-studies/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/case-studies/page/2/index.html b/tag/case-studies/page/2/index.html index ef6ba2f34..adfd49210 100644 --- a/tag/case-studies/page/2/index.html +++ b/tag/case-studies/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/case-studies/page/3/index.html b/tag/case-studies/page/3/index.html index cb5b90fc2..0e7a891d3 100644 --- a/tag/case-studies/page/3/index.html +++ b/tag/case-studies/page/3/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/community-hangout/index.html b/tag/community-hangout/index.html index 9777ebf3b..e8ac887ca 100644 --- a/tag/community-hangout/index.html +++ b/tag/community-hangout/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/community-hangout/page/2/index.html b/tag/community-hangout/page/2/index.html index 9c213720a..fdbbc6336 100644 --- a/tag/community-hangout/page/2/index.html +++ b/tag/community-hangout/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/community-hangout/page/3/index.html b/tag/community-hangout/page/3/index.html index a2ea54798..c1ca04bc7 100644 --- a/tag/community-hangout/page/3/index.html +++ b/tag/community-hangout/page/3/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/community-hangout/page/4/index.html b/tag/community-hangout/page/4/index.html index f1a5b1fcc..b1d9d8ca6 100644 --- a/tag/community-hangout/page/4/index.html +++ b/tag/community-hangout/page/4/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/community-hangout/page/5/index.html b/tag/community-hangout/page/5/index.html index 9c2b08a11..1f02725de 100644 --- a/tag/community-hangout/page/5/index.html +++ b/tag/community-hangout/page/5/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/csv/index.html b/tag/csv/index.html index c776df056..b2e301c73 100644 --- a/tag/csv/index.html +++ b/tag/csv/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/datapackage/index.html b/tag/datapackage/index.html index 4e1038323..8478807bb 100644 --- a/tag/datapackage/index.html +++ b/tag/datapackage/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/index.html b/tag/events/index.html index 7acdcdd12..f11f3ee73 100644 --- a/tag/events/index.html +++ b/tag/events/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/page/2/index.html b/tag/events/page/2/index.html index a487c73fe..2ff82d906 100644 --- a/tag/events/page/2/index.html +++ b/tag/events/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/page/3/index.html b/tag/events/page/3/index.html index c5827e5cf..630f6ce31 100644 --- a/tag/events/page/3/index.html +++ b/tag/events/page/3/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/page/4/index.html b/tag/events/page/4/index.html index 4975d9b3c..643badeea 100644 --- a/tag/events/page/4/index.html +++ b/tag/events/page/4/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/page/5/index.html b/tag/events/page/5/index.html index 12bc982db..60a7a7a48 100644 --- a/tag/events/page/5/index.html +++ b/tag/events/page/5/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/events/page/6/index.html b/tag/events/page/6/index.html index 55b4c83f1..f271ba1ee 100644 --- a/tag/events/page/6/index.html +++ b/tag/events/page/6/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/fellows/index.html b/tag/fellows/index.html index 108fd49db..8c1f89db0 100644 --- a/tag/fellows/index.html +++ b/tag/fellows/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/fellows/page/2/index.html b/tag/fellows/page/2/index.html index 0b9f12698..68988b728 100644 --- a/tag/fellows/page/2/index.html +++ b/tag/fellows/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/field-guide/index.html b/tag/field-guide/index.html index fdc3bf374..337b96ac6 100644 --- a/tag/field-guide/index.html +++ b/tag/field-guide/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/goodtables.io/index.html b/tag/goodtables.io/index.html index baf0d9ae9..f8aa6806d 100644 --- a/tag/goodtables.io/index.html +++ b/tag/goodtables.io/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/grantee-profiles/index.html b/tag/grantee-profiles/index.html index faf71a065..402e2dac1 100644 --- a/tag/grantee-profiles/index.html +++ b/tag/grantee-profiles/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/index.html b/tag/index.html index b8879d0f6..86270e2cf 100644 --- a/tag/index.html +++ b/tag/index.html @@ -30,11 +30,11 @@ - - + + - - + + diff --git a/tag/licenses/index.html b/tag/licenses/index.html index 453e30782..3c7232ce4 100644 --- a/tag/licenses/index.html +++ b/tag/licenses/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/news/index.html b/tag/news/index.html index f840395ca..d278453b5 100644 --- a/tag/news/index.html +++ b/tag/news/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/news/page/2/index.html b/tag/news/page/2/index.html index 2a80330de..1e92af52b 100644 --- a/tag/news/page/2/index.html +++ b/tag/news/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/pilot/index.html b/tag/pilot/index.html index 5eee7aec5..9e94324f2 100644 --- a/tag/pilot/index.html +++ b/tag/pilot/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/pilot/page/2/index.html b/tag/pilot/page/2/index.html index 87cc28ef8..e85c792a6 100644 --- a/tag/pilot/page/2/index.html +++ b/tag/pilot/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/specifications/index.html b/tag/specifications/index.html index 76accce1c..fcd841bbd 100644 --- a/tag/specifications/index.html +++ b/tag/specifications/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/specs/index.html b/tag/specs/index.html index 4e6857afb..838a76113 100644 --- a/tag/specs/index.html +++ b/tag/specs/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/table-schema/index.html b/tag/table-schema/index.html index 0da85f6e3..b214bc04d 100644 --- a/tag/table-schema/index.html +++ b/tag/table-schema/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/tabular-data/index.html b/tag/tabular-data/index.html index c1fca2459..973d16a1e 100644 --- a/tag/tabular-data/index.html +++ b/tag/tabular-data/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/team/index.html b/tag/team/index.html index 695ab17ab..d4b1965ca 100644 --- a/tag/team/index.html +++ b/tag/team/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/tool-fund/index.html b/tag/tool-fund/index.html index 1d027bc05..19f73d19e 100644 --- a/tag/tool-fund/index.html +++ b/tag/tool-fund/index.html @@ -30,8 +30,8 @@ - - + +
    - +

    This blog is part of a series showcasing projects developed during the 2019 Tool Fund.

    +

    + diff --git a/tag/tool-fund/page/2/index.html b/tag/tool-fund/page/2/index.html index 0ee8d64e2..b786256ab 100644 --- a/tag/tool-fund/page/2/index.html +++ b/tag/tool-fund/page/2/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/try.goodtables.io/index.html b/tag/try.goodtables.io/index.html index 5fd3d4d8b..0f34b1895 100644 --- a/tag/try.goodtables.io/index.html +++ b/tag/try.goodtables.io/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/validator/index.html b/tag/validator/index.html index f4988d335..87eed6476 100644 --- a/tag/validator/index.html +++ b/tag/validator/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/tag/views/index.html b/tag/views/index.html index 792275e04..adec5c5fe 100644 --- a/tag/views/index.html +++ b/tag/views/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/universe/index.html b/universe/index.html index 222965de5..9fe14c389 100644 --- a/universe/index.html +++ b/universe/index.html @@ -30,8 +30,8 @@ - - + + - + diff --git a/work-with-us/code-of-conduct/index.html b/work-with-us/code-of-conduct/index.html index 6220b9620..8b2d5579e 100644 --- a/work-with-us/code-of-conduct/index.html +++ b/work-with-us/code-of-conduct/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/work-with-us/contribute/index.html b/work-with-us/contribute/index.html index 2795f13b3..4c1b59d42 100644 --- a/work-with-us/contribute/index.html +++ b/work-with-us/contribute/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/work-with-us/events/index.html b/work-with-us/events/index.html index 66eb906a8..8aa951d4e 100644 --- a/work-with-us/events/index.html +++ b/work-with-us/events/index.html @@ -30,8 +30,8 @@ - - + +
    - + diff --git a/work-with-us/get-help/index.html b/work-with-us/get-help/index.html index df5db74a4..ea7c3f299 100644 --- a/work-with-us/get-help/index.html +++ b/work-with-us/get-help/index.html @@ -30,8 +30,8 @@ - - + +
    - +