Backport layout / template fixes from PGDayNL to address confreg pages
authorChris Ellis <chris@intrbiz.com>
Sun, 16 Jun 2024 15:46:22 +0000 (16:46 +0100)
committerChris Ellis <chris@intrbiz.com>
Sun, 16 Jun 2024 15:46:22 +0000 (16:46 +0100)
24 files changed:
static/css/main.min.css
static/css/src/base.css
static/css/src/build-css.sh
static/css/src/buttons.css [new file with mode: 0644]
static/css/src/form.css [new file with mode: 0644]
static/css/src/layout.css
static/css/src/responsive.css
static/img/ogp/sponsor-interview-edb.png
templates/base.html
templates/pages/about.html
templates/pages/become-sponsor.html
templates/pages/call-for-papers.html
templates/pages/code-of-conduct.html
templates/pages/contact.html
templates/pages/index.html
templates/pages/organisation.html
templates/pages/registration.html
templates/pages/social.html
templates/pages/sponsor-faq.html
templates/pages/sponsor-interviews.html
templates/pages/sponsors.html
templates/pages/things-to-do.html
templates/pages/venue.html
templates/pages/visa-letter.html

index 486db852dc14fe8892b9302634066a1277d6da73..205e419eb10967f0c5e4657ce2391bdfcdd9b820 100644 (file)
@@ -1 +1 @@
-@font-face{font-family:'Inter';font-style:normal;font-weight:100;src:url(fonts/Inter-Thin.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:200;src:url(fonts/Inter-ExtraLight.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:url(fonts/Inter-Light.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:url(fonts/Inter-Regular.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:url(fonts/Inter-Medium.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:url(fonts/Inter-SemiBold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:url(fonts/Inter-Bold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:url(fonts/Inter-ExtraBold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:url(fonts/Inter-Black.ttf) format('truetype')}:root{--main-font:'Inter',sans-serif;--main-font-weight-normal:400;--main-font-weight-bold:600;--main-font-weight-extra-bold:800;--main-text-colour:#202125;--light-text-colour:#fff;--main-background-colour:#f9f9f9;--section-background-colour:#fff;--primary-colour:#566BD9;--secondary-colour:#d95656;--light-border-colour:#DADBDF}*{padding:0;margin:0}body{font-family:var(--main-font);font-weight:var(--main-font-weight-normal);color:var(--main-text-colour);background-color:var(--main-background-colour);font-size:16px;line-height:1.2}h1,h2,h3,h4,h5,h6{font-weight:var(--main-font-weight-bold);color:var(--main-text-colour);line-height:1.2;width:100%;margin-bottom:1rem}h1{font-size:2.5rem;font-weight:var(--main-font-weight-extra-bold)}h2{font-size:2rem;font-weight:var(--main-font-weight-extra-bold)}h3{font-size:1.5rem}h4{font-size:1.2rem}h5{font-size:1.1rem}h6{font-size:1rem;font-weight:var(--main-font-weight-normal)}p{margin-bottom:1rem;line-height:1.4}a:visited,a{text-decoration:underline;outline:none;color:var(--main-text-colour)}a:hover,a:active,a:focus{color:var(--primary-colour)}ol,ul{list-style:none}main ol,main ul{list-style:disc;padding-left:2rem}div.menu-pane ul{list-style:none;padding-left:0}strong,b{font-weight:var(--main-font-weight-bold)}em{font-style:italic}hr{display:block;width:100%;margin:2rem auto;border:none;border-top:2px solid var(--primary-colour)}main ul,main ol{margin-bottom:1rem}main ul>li,main ol>li{padding:.25rem 0}img{display:block;box-sizing:border-box;border-radius:1rem;margin:1rem 0;width:100%;height:10rem;object-fit:cover}a.button,a.button.hollow.primary{display:block;box-sizing:border-box;padding:1rem;border-radius:1rem;border:2px solid var(--primary-colour);text-decoration:none;color:var(--primary-colour);background-color:var(--section-background-colour);font-size:1.2rem;font-weight:var(--main-font-weight-bold);text-align:center;width:fit-content;margin:0 auto;box-shadow:0 .6rem .8rem -0.2rem rgba(16,24,40,0.08),0 .4rem .6rem -0.2rem rgba(16,24,40,0.03);text-transform:uppercase}a.button:hover,a.button.hollow.primary:hover{color:var(--main-text-colour);background-color:var(--light-border-colour);border:2px solid var(--main-text-colour)}a.button.hollow.secondary{background-color:var(--section-background-colour);border:2px solid var(--secondary-colour);color:var(--secondary-colour)}a.button.hollow.secondary:hover{color:var(--main-text-colour);background-color:var(--light-border-colour);border:2px solid var(--main-text-colour)}a.button.primary{background-color:var(--primary-colour);color:var(--light-text-colour)}a.button.primary:hover{background-color:var(--main-text-colour);border:2px solid var(--main-text-colour)}a.button.secondary{background-color:var(--secondary-colour);border:2px solid var(--secondary-colour);color:var(--light-text-colour)}a.button.secondary:hover{background-color:var(--main-text-colour);border:2px solid var(--main-text-colour)}nav.button-bar{padding:1rem 0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly}nav.button-bar>a{margin:.5rem 0;width:100%}.centred{text-align:center}table{border:2px solid var(--light-border-colour);border-collapse:collapse;margin-bottom:1rem;width:100%;box-sizing:border-box}table td,table th{padding:.5rem 1rem;border:2px solid var(--light-border-colour)}table th{font-weight:var(--main-font-weight-bold)}.container{width:90%;max-width:400px;margin:0 auto}header.main{background-color:var(--section-background-colour);padding:0;border-bottom:1px solid var(--light-border-colour)}header.main>.container{position:relative;display:flex;flex-direction:row;justify-content:space-between}header.main a#logo{display:block;z-index:100}header.main a#logo>img{height:4rem;margin:.5rem 0;object-fit:contain}header.main h1{display:block;position:absolute;top:0;left:0;width:100%;z-index:0;font-size:1.5rem;line-height:2.0rem;text-align:center;text-transform:uppercase;box-sizing:border-box;padding:.5rem 5.5rem}header.main h1>span{display:block}footer.main{margin:2rem 0}footer.main .links{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:start}footer.main .links>ul{display:block;margin:.5rem 0;width:100%;list-style:none;padding:0}footer.main .links>ul>li{padding:.25rem 0}footer.main .links li>a{text-decoration:none}main#content{background-color:var(--section-background-colour)}section{padding:2rem 0 1rem 0}main#content>h1,main#content>h2,main#content>h3,main#content>h4,main#content>h5,main#content>h6,section>h1,section>h2,section>h3,section>h4,section>h5,section>h6{text-align:center}main>section,section.grey{background-color:var(--main-background-colour);padding:2rem 0}section.page,section.header{background-color:var(--section-background-colour);padding:1rem 0}section.header>h1,section.header>h2,section.header>h3,section.header>h4,section.header>h5,section.header>h6,section.header>p{text-align:center}.card,details{background-color:var(--section-background-colour);border:2px solid var(--light-border-colour);border-radius:1rem;padding:1rem}details>summary{list-style:none}details[open]>div,details>summary{border-bottom:1px solid var(--primary-colour)}details[open]>summary{border-bottom:1px solid var(--light-border-colour);margin-bottom:1rem}details>summary::before{display:block;float:right;width:1rem;height:1rem;content:" ";background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTYgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2IDIuODUyLTggOC04LTggMi0yIDYgNiA2LTYgMiAyeiIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjNTY2QkQ5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4K');background-position:top right;background-repeat:no-repeat;background-size:1rem 1rem;transition:.4s}details[open]>summary::before{transform:rotate(180deg)}.card+.card,details+details{margin:1rem 0}section.hero{background-color:var(--section-background-colour);padding:1rem 0;text-align:center}section.hero svg{width:100%;border-radius:1rem;margin:1rem 0}section.hero h2{font-size:3rem;text-transform:uppercase}section.hero h3{font-size:2rem}section.hero h4{font-size:1.8rem}section.news{background-color:var(--main-background-colour);padding:2rem 0}section.sponsors{background-color:var(--section-background-colour);padding:2rem 0}ul.sponsors-list{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0}ul.sponsors-list>li{display:block;margin:1rem 0;width:80%}ul.sponsors-list img{height:120px;width:100%;object-fit:contain}ul.sponsors-list li>a.interview{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem;text-align:center}section.cta{text-align:center;background-color:var(--primary-colour);color:var(--light-text-colour);padding:3rem 0 1rem 0}section.cta h2,section.cta h3,section.cta h4,section.cta h5,section.cta h6{color:var(--light-text-colour)}section.cta h2{text-transform:uppercase}.map>iframe{width:100%;margin-bottom:1rem}section.committe{padding-bottom:1rem}ul.people{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0;padding-left:0}ul.people>li{display:block;background-color:var(--section-background-colour);border-radius:1rem;text-align:center;margin:1rem 0;width:calc(100% - 2rem)}ul.people img{margin:1rem auto;width:12rem;height:12rem;border-radius:50%;object-fit:cover}ul.people li>a.interview{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem;text-align:center}.container.sponsor-options{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly}.container.sponsor-options>div{margin:1rem 0;width:100%}.sponsor-options .card{display:flex;flex-direction:column}.sponsor-options .card .button{margin-top:auto;width:100%}main section.sponsors{background-color:var(--main-background-colour);padding:2rem 0}main section.sponsors>.container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0}main section.sponsors>.container>div{background-color:var(--section-background-colour);border-radius:1rem;box-sizing:border-box;padding:1rem;margin:1rem 0;width:calc(100% - 2rem)}main section.sponsors>.container>div img{height:120px;width:100%;object-fit:contain}main section.sponsors>.container>div a{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem}main section.sponsors>.container>div .description{margin-top:1rem}a.icon.web{line-height:1.5rem;padding-left:2rem!important;background-position:center left;background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE3LjkgMTguMjQyYy0wLjI2LTAuODAwMS0xLjAxLTEuMzktMS45LTEuMzloLTF2LTNjMC0wLjI2NTMtMC4xMDU0LTAuNTE5Ni0wLjI5MjktMC43MDcyLTAuMTg3NS0wLjE4NzUtMC40NDE5LTAuMjkyOC0wLjcwNzEtMC4yOTI4aC02di0yaDJjMC4yNjUyIDAgMC41MTk2LTAuMTA1NCAwLjcwNzEtMC4yOTI5IDAuMTg3NS0wLjE4NzYgMC4yOTI5LTAuNDQxOSAwLjI5MjktMC43MDcxNXYtMmgyYzAuNTMwNCAwIDEuMDM5MS0wLjIxMDcxIDEuNDE0Mi0wLjU4NTc5IDAuMzc1MS0wLjM3NTA3IDAuNTg1OC0wLjg4Mzc4IDAuNTg1OC0xLjQxNDJ2LTAuNDFjMS4xOTY1IDAuNDgyMzcgMi4yNTgyIDEuMjQ3NSAzLjA5NDQgMi4yMjk4IDAuODM2MiAwLjk4MjM2IDEuNDIxOSAyLjE1MjcgMS43MDY5IDMuNDEwOSAwLjI4NTEgMS4yNTgxIDAuMjYxIDIuNTY2Ni0wLjA3MDEgMy44MTM1LTAuMzMxMSAxLjI0NjgtMC45NTk1IDIuMzk0OC0xLjgzMTIgMy4zNDU4em0tNi45IDIuNTRjLTMuOTUtMC40OS03LTMuODUtNy03LjkzIDAtMC42MiAwLjA4LTEuMjIgMC4yMS0xLjc5bDQuNzkgNC43OXYxYzAgMC41MzA0IDAuMjEwNzEgMS4wMzkxIDAuNTg1NzkgMS40MTQyIDAuMzc1MDcgMC4zNzUgMC44ODM4MSAwLjU4NTggMS40MTQyIDAuNTg1OG0xLTE2Yy0xLjMxMzIgMC0yLjYxMzYgMC4yNTg2Ni0zLjgyNjggMC43NjEyMS0xLjIxMzMgMC41MDI1NC0yLjMxNTYgMS4yMzkxLTMuMjQ0MiAyLjE2NzctMS44NzU0IDEuODc1NC0yLjkyODkgNC40MTg5LTIuOTI4OSA3LjA3MTEgMCAyLjY1MjEgMS4wNTM2IDUuMTk1NyAyLjkyODkgNy4wNzEgMC45Mjg1OSAwLjkyODYgMi4wMzEgMS42NjUyIDMuMjQ0MiAyLjE2NzcgMS4yMTMyIDAuNTAyNiAyLjUxMzYgMC43NjEzIDMuODI2OCAwLjc2MTMgMi42NTIyIDAgNS4xOTU3LTEuMDUzNiA3LjA3MTEtMi45MjkgMS44NzUzLTEuODc1MyAyLjkyODktNC40MTg5IDIuOTI4OS03LjA3MSAwLTEuMzEzMy0wLjI1ODctMi42MTM2LTAuNzYxMi0zLjgyNjktMC41MDI2LTEuMjEzMy0xLjIzOTEtMi4zMTU2LTIuMTY3Ny0zLjI0NDItMC45Mjg2LTAuOTI4NTgtMi4wMzEtMS42NjUyLTMuMjQ0My0yLjE2NzctMS4yMTMyLTAuNTAyNTUtMi41MTM2LTAuNzYxMjEtMy44MjY4LTAuNzYxMjF6IiBmaWxsPSIjMDAwIi8+PC9zdmc+Cg==')}a.icon.interview{line-height:1.5rem;padding-left:2rem!important;background-position:center left;background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAgMTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEwLjEgMTguODUyYy0wLjI4MzMzIDAtMC41MjA2Ny0wLjA5Ni0wLjcxMi0wLjI4OHMtMC4yODczMy0wLjQyOTQtMC4yODgtMC43MTJjMC0wLjExNjcgMC4wMjUtMC4yMzc3IDAuMDc1LTAuMzYzIDAuMDUtMC4xMjU0IDAuMTI1LTAuMjM3NyAwLjIyNS0wLjMzN2w0LjYyNS00LjYyNS0wLjcyNS0wLjcyNS00LjYgNC42MjVjLTAuMSAwLjEtMC4yMDgzMyAwLjE3NS0wLjMyNSAwLjIyNXMtMC4yNDE2NyAwLjA3NS0wLjM3NSAwLjA3NWMtMC4yODMzMyAwLTAuNTIwNjctMC4wOTU3LTAuNzEyLTAuMjg3LTAuMTkxMzMtMC4xOTE0LTAuMjg3MzMtMC40MjktMC4yODgtMC43MTMgMC0wLjE2NjcgMC4wMjUtMC4zMDQ0IDAuMDc1LTAuNDEzIDAuMDUtMC4xMDg3IDAuMTE2NjctMC4yMDQ0IDAuMi0wLjI4N2w0LjYyNS00LjYyNS0wLjctMC43MDAwNS00LjYyNSA0LjZjLTAuMSAwLjEtMC4yMDgzMyAwLjE3NS0wLjMyNSAwLjIyNXMtMC4yNSAwLjA3NS0wLjQgMC4wNzVjLTAuMjY2NjcgMC0wLjUtMC4xLTAuNy0wLjNzLTAuMy0wLjQzMzQtMC4zLTAuN2MwLTAuMTMzNCAwLjAyNS0wLjI1ODQgMC4wNzUtMC4zNzUgMC4wNS0wLjExNjcgMC4xMjUtMC4yMjUgMC4yMjUtMC4zMjVsNC42MjUtNC42MjUtMC43MjUtMC43LTQuNiA0LjYyNWMtMC4wODMzMyAwLjA4MzMtMC4xODMzMyAwLjE1LTAuMyAwLjJzLTAuMjU4MzMgMC4wNzUtMC40MjUgMC4wNzVjLTAuMjgzMzMgMC0wLjUyMS0wLjA5Ni0wLjcxMy0wLjI4OHMtMC4yODc2Ny0wLjQyOTQtMC4yODctMC43MTJjMC0wLjEzMzQgMC4wMjUtMC4yNTg0IDAuMDc1LTAuMzc1IDAuMDUtMC4xMTY3IDAuMTI1LTAuMjI1IDAuMjI1LTAuMzI1bDUuNTc1LTUuNTc1IDMuNzUgMy43NzVjMC4xODMzIDAuMTgzMzQgMC40IDAuMzI5MzQgMC42NSAwLjQzOCAwLjI1IDAuMTA4NjcgMC41IDAuMTYyNjcgMC43NSAwLjE2MiAwLjUzMzMgMCAxLTAuMTg3MzMgMS40LTAuNTYyIDAuNC0wLjM3NDY2IDAuNi0wLjg1Mzk5IDAuNi0xLjQzOCAwLTAuMjMzMzQtMC4wNDE3LTAuNDc1LTAuMTI1LTAuNzI1cy0wLjIzMzMtMC40ODMzNC0wLjQ1LTAuN2wtNC40NzUtNC40NzVjMC4yODMzLTAuMjY2NjcgMC42LTAuNDcwNjcgMC45NS0wLjYxMiAwLjM1LTAuMTQxMzQgMC43LTAuMjEyMzQgMS4wNS0wLjIxMyAwLjQzMzMgMCAwLjgzMzMgMC4wNzEgMS4yIDAuMjEzIDAuMzY2NyAwLjE0MiAwLjcgMC4zNjI2NiAxIDAuNjYxOTlsNC4yMjUgNC4yNWMwLjMgMC4zIDAuNTIxIDAuNjMzMzMgMC42NjMgMSAwLjE0MiAwLjM2NjY2IDAuMjEyNyAwLjc5MTY2IDAuMjEyIDEuMjc1IDAgMC4zMzMzNC0wLjA3NSAwLjY3MS0wLjIyNSAxLjAxM3MtMC4zNjY3IDAuNjU0MzQtMC42NSAwLjkzNzA1bC04LjMyNSA4LjM1Yy0wLjEzMzMgMC4xMzMzLTAuMjUgMC4yMTY2LTAuMzUgMC4yNS0wLjEgMC4wMzMzLTAuMjE2NyAwLjA1LTAuMzUgMC4wNXptLTguNTc1LTgtMC42NS0wLjY1Yy0wLjI4MzMzLTAuMjY2NzEtMC41LTAuNTgzMzgtMC42NS0wLjk1MDA1LTAuMTUtMC4zNjY2Ni0wLjIyNS0wLjc0OTk5LTAuMjI1LTEuMTUgMC0wLjQzMzM0IDAuMDgzMzMzLTAuODMzMzQgMC4yNS0xLjIgMC4xNjY2Ny0wLjM2NjY3IDAuMzc1LTAuNjc1IDAuNjI1LTAuOTI1bDQuMjI1LTQuMjVjMC4yNjY2Ny0wLjI2NjY2IDAuNTgzMzMtMC40NzkzMyAwLjk1LTAuNjM4IDAuMzY2NjctMC4xNTg2NiAwLjcyNS0wLjIzNzY2IDEuMDc1LTAuMjM3IDAuNDUgMCAwLjg1IDAuMDYyNjY3IDEuMiAwLjE4OCAwLjM1IDAuMTI1MzQgMC42OTE2NyAwLjM1NDM0IDEuMDI1IDAuNjg3bDUuMTI1IDUuMTI1YzAuMSAwLjA5OTk5IDAuMTc1IDAuMjA4MzMgMC4yMjUgMC4zMjQ5OSAwLjA1IDAuMTE2NjcgMC4wNzUgMC4yNDE2NyAwLjA3NSAwLjM3NSAwIDAuMjY2NjctMC4xIDAuNS0wLjMgMC43cy0wLjQzMzMgMC4zLTAuNyAwLjNjLTAuMTUgMC0wLjI3NS0wLjAyMDY2LTAuMzc1LTAuMDYyLTAuMS0wLjA0MTMzLTAuMjA4My0wLjEyMDY2LTAuMzI1LTAuMjM4bC00LjUtNC40NS03LjA1IDcuMDV6IiBmaWxsPSIjMDAwIi8+PC9zdmc+Cg==')}#main-menu{width:2.5rem;z-index:100}#main-menu>input[type=checkbox]{opacity:0;cursor:pointer;position:absolute}#main-menu>label{display:block;margin-top:1.25rem;width:2.5rem;height:2.5rem;z-index:101;background-color:var(--section-background-colour);background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTMgMTIuOTI2aDE4bS0xOC02aDE4bS0xOCAxMmgxOCIgc3Ryb2tlPSIjMjAyMTI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPgo=');background-position:center right;background-repeat:no-repeat;background-size:2.5rem 2.5rem}#main-menu>input[type=checkbox]:checked ~ label{background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4IDYuOTI2LTEyIDEybTAtMTIgMTIgMTIiIHN0cm9rZT0iIzIwMjEyNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4K')}#main-menu>.menu-pane{padding:.5rem 0;margin:0;list-style:none;position:absolute;top:5rem;right:0;left:0;background:var(--section-background-colour);z-index:10000;display:block;box-shadow:0 1.2rem 1.6rem -0.4rem rgba(16,24,40,0.08),0 .4rem .6rem -0.2rem rgba(16,24,40,0.03);border-top:1px solid var(--light-border-colour);transform-origin:top;transform:scaleY(0);transition:transform .3s ease}#main-menu>input[type=checkbox]:checked ~ .menu-pane{transform:scaleY(1)}#main-menu ul>li{}#main-menu ul>li>a{display:block;text-decoration:none;font-size:1.2rem;padding:.75rem 1rem;box-sizing:border-box}#main-menu ul>li>a:hover{background-color:var(--main-background-colour)}#main-menu ul>li:hover,#main-menu ul>li:focus{cursor:pointer;text-decoration:none}#main-menu ul{padding-bottom:.5rem;border-bottom:1px solid var(--light-border-colour)}ul.socials{display:flex;flex-direction:row;margin:1rem 0}ul.socials li{display:block;margin:0 1rem 0 0;padding:0}ul.socials li a{display:block;width:2rem;height:2rem;background-position:center;background-repeat:no-repeat;background-size:2rem 2rem}.icons.email{background-image:url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzU2NmJkOSI+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMSIvPjxwYXRoIGQ9Im0yMi45OSAxNS44MWMtLjAyLS43NC0uMTU1LTEuNDUtLjM4OC0yLjExNWw4LjM5OC01LjI0OXYtMS40NDZjMC0xLjEwMy0uODk3LTItMi0yaC0yNmMtMS4xMDMgMC0yIC44OTctMiAydjEuNDQ2bDguMzk4IDUuMjQ5Yy0uMjMzLjY2NS0uMzY5IDEuMzc1LS4zODggMi4xMTVsLTguMDEtNS4wMDZ2MTQuMTk2YzAgMS4xMDMuODk3IDIgMiAyaDI2YzEuMTAzIDAgMi0uODk3IDItMnYtMTQuMTk2em0tMy40OSAyLjY5Yy0uNTAxIDAtLjk2Ni0uMTUxLTEuMzU3LS40MDYtLjU0Ni41NTctMS4zMDQuOTA2LTIuMTQzLjkwNi0xLjY1NCAwLTMtMS4zNDYtMy0zczEuMzQ2LTMgMy0zIDMgMS4zNDYgMyAzYzAgLjI3Ni4yMjQuNS41LjVzLjUtLjIyNC41LS41YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0Yy44OCAwIDEuNzA4LS4yNzUgMi4zOTYtLjc5Ni40NDEtLjMzNCAxLjA2OC0uMjQ4IDEuNDAxLjE5Mi4zMzQuNDQuMjQ4IDEuMDY3LS4xOTIgMS40MDEtMS4wMzguNzg3LTIuMjg0IDEuMjAzLTMuNjA1IDEuMjAzLTMuMzA5IDAtNi0yLjY5MS02LTZzMi42OTEtNiA2LTYgNiAyLjY5MSA2IDZjMCAxLjM3OC0xLjEyMiAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+Cg==')}.icons.github{background-image:url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im00OS44NTQgMmMtMjcuMDE1IDAtNDguODU0IDIyLTQ4Ljg1NCA0OS4yMTcgMCAyMS43NTYgMTMuOTkzIDQwLjE3MiAzMy40MDUgNDYuNjkgMi40MjcgMC40OSAzLjMxNi0xLjA1OSAzLjMxNi0yLjM2MiAwLTEuMTQxLTAuMDgtNS4wNTItMC4wOC05LjEyNy0xMy41OSAyLjkzNC0xNi40Mi01Ljg2Ny0xNi40Mi01Ljg2Ny0yLjE4NC01LjcwNC01LjQyLTcuMTctNS40Mi03LjE3LTQuNDQ4LTMuMDE1IDAuMzI0LTMuMDE1IDAuMzI0LTMuMDE1IDQuOTM0IDAuMzI2IDcuNTIzIDUuMDUyIDcuNTIzIDUuMDUyIDQuMzY3IDcuNDk2IDExLjQwNCA1LjM3OCAxNC4yMzUgNC4wNzQgMC40MDQtMy4xNzggMS42OTktNS4zNzggMy4wNzQtNi42LTEwLjgzOS0xLjE0MS0yMi4yNDMtNS4zNzgtMjIuMjQzLTI0LjI4MyAwLTUuMzc4IDEuOTQtOS43NzggNS4wMTQtMTMuMi0wLjQ4NS0xLjIyMi0yLjE4NC02LjI3NSAwLjQ4Ni0xMy4wMzggMCAwIDQuMTI1LTEuMzA0IDEzLjQyNiA1LjA1MmE0Ni45NyA0Ni45NyAwIDAgMSAxMi4yMTQtMS42M2M0LjEyNSAwIDguMzMgMC41NzEgMTIuMjEzIDEuNjMgOS4zMDItNi4zNTYgMTMuNDI3LTUuMDUyIDEzLjQyNy01LjA1MiAyLjY3IDYuNzYzIDAuOTcgMTEuODE2IDAuNDg1IDEzLjAzOCAzLjE1NSAzLjQyMiA1LjAxNSA3LjgyMiA1LjAxNSAxMy4yIDAgMTguOTA1LTExLjQwNCAyMy4wNi0yMi4zMjQgMjQuMjgzIDEuNzggMS41NDggMy4zMTYgNC40ODEgMy4zMTYgOS4xMjYgMCA2LjYtMC4wOCAxMS44OTctMC4wOCAxMy41MjYgMCAxLjMwNCAwLjg5IDIuODUzIDMuMzE2IDIuMzY0IDE5LjQxMi02LjUyIDMzLjQwNS0yNC45MzUgMzMuNDA1LTQ2LjY5MSAwLjA4LTI3LjIxNy0yMS44MzktNDkuMjE3LTQ4Ljc3My00OS4yMTd6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiM1NjZiZDkiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPgo=')}.icons.gitlab{background-image:url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNDIzMDdkO308L3N0eWxlPjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODkuOTczIC04OS41MTcpIiBmaWxsPSIjNTY2YmQ5Ij48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im0yODIuODMgMTcwLjczLTAuMjctMC42OS0yNi4xNC02OC4yMmE2LjgxIDYuODEgMCAwIDAtMi42OS0zLjI0IDcgNyAwIDAgMC04IDAuNDMgNyA3IDAgMCAwLTIuMzIgMy41MmwtMTcuNjUgNTRoLTcxLjQ3bC0xNy42NS01NGE2Ljg2IDYuODYgMCAwIDAtMi4zMi0zLjUzIDcgNyAwIDAgMC04LTAuNDMgNi44NyA2Ljg3IDAgMCAwLTIuNjkgMy4yNGwtMjYuMTkgNjguMTktMC4yNiAwLjY5YTQ4LjU0IDQ4LjU0IDAgMCAwIDE2LjEgNTYuMWwwLjA5IDAuMDcgMC4yNCAwLjE3IDM5LjgyIDI5LjgyIDE5LjcgMTQuOTEgMTIgOS4wNmE4LjA3IDguMDcgMCAwIDAgOS43NiAwbDEyLTkuMDYgMTkuNy0xNC45MSA0MC4wNi0zMCAwLjEtMC4wOGE0OC41NiA0OC41NiAwIDAgMCAxNi4wOC01Ni4wNHoiIGZpbGw9IiM1NjZiZDkiLz48L2c+PC9zdmc+Cg==')}.icons.linkedin{background-image:url('data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB4PSI0LjY5NzUiIHk9IjQuNTg1OCIgd2lkdGg9IjE0LjkyOCIgaGVpZ2h0PSIxNC41MDQiIGZpbGw9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS13aWR0aD0iMCIvPjxwYXRoIGQ9Im0xOS43IDNoLTE1LjRjLTAuNzE4IDAtMS4zIDAuNTgyLTEuMyAxLjN2MTUuNGMwIDAuNzE4IDAuNTgyIDEuMyAxLjMgMS4zaDE1LjRjMC43MTggMCAxLjMtMC41ODIgMS4zLTEuM3YtMTUuNGMwLTAuNzE4LTAuNTgyLTEuMy0xLjMtMS4zem0tMTEuMzYxIDE1LjMzOGgtMi42NzJ2LTguNTloMi42NzJ2OC41OXptLTEuMzM1LTkuNzY0Yy0wLjg1NyAwLTEuNTQ5LTAuNjk0LTEuNTQ5LTEuNTQ4IDAtMC44NTUgMC42OTEtMS41NDggMS41NDktMS41NDggMC44NTQgMCAxLjU0NyAwLjY5NCAxLjU0NyAxLjU0OCAwIDAuODU1LTAuNjkzIDEuNTQ4LTEuNTQ3IDEuNTQ4em0xMS4zMzUgOS43NjRoLTIuNjY5di00LjE3N2MwLTAuOTk2LTAuMDE3LTIuMjc4LTEuMzg3LTIuMjc4LTEuMzg5IDAtMS42MDEgMS4wODYtMS42MDEgMi4yMDZ2NC4yNDloLTIuNjY3di04LjU5aDIuNTU5djEuMTc0aDAuMDM3YzAuMzU2LTAuNjc1IDEuMjI3LTEuMzg3IDIuNTI2LTEuMzg3IDIuNzAzIDAgMy4yMDMgMS43NzkgMy4yMDMgNC4wOTJ2NC43MTF6IiBmaWxsPSIjNTY2YmQ5Ii8+PC9zdmc+Cg==')}.icons.mastodon{background-image:url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwIiBoZWlnaHQ9IjI1MCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjM0LjM4IDIzNC4zNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMjIxLjE4IDEzOS45N2MtMy4xODEyIDE2LjM2Ni0yOC40OTIgMzQuMjc4LTU3LjU2MiAzNy43NDktMTUuMTU5IDEuODA4OC0zMC4wODQgMy40NzEyLTQ1Ljk5OSAyLjc0MTItMjYuMDI4LTEuMTkyNS00Ni41NjUtNi4yMTI1LTQ2LjU2NS02LjIxMjUgMCAyLjUzMzggMC4xNTYyNSA0Ljk0NjIgMC40Njg3NSA3LjIwMjUgMy4zODM4IDI1LjY4NiAyNS40NyAyNy4yMjUgNDYuMzkxIDI3Ljk0MiAyMS4xMTYgMC43MjI1IDM5LjkxOS01LjIwNjIgMzkuOTE5LTUuMjA2MmwwLjg2NzUgMTkuMDlzLTE0Ljc3IDcuOTMxMi00MS4wODEgOS4zOWMtMTQuNTA5IDAuNzk3NS0zMi41MjQtMC4zNjUtNTMuNTA2LTUuOTE4OC00NS41MDgtMTIuMDQ1LTUzLjMzNC02MC41NTQtNTQuNTMxLTEwOS43Ny0wLjM2NS0xNC42MTQtMC4xNC0yOC4zOTQtMC4xNC0zOS45MTkgMC01MC4zMyAzMi45NzYtNjUuMDgyIDMyLjk3Ni02NS4wODIgMTYuNjI4LTcuNjM2MyA0NS4xNTktMTAuODQ4IDc0LjgyLTExLjA5aDAuNzI4NzVjMjkuNjYxIDAuMjQyNSA1OC4yMTEgMy40NTM4IDc0LjgzOCAxMS4wOSAwIDAgMzIuOTc1IDE0Ljc1MiAzMi45NzUgNjUuMDgyIDAgMCAwLjQxMzc1IDM3LjEzNC00LjU5ODggNjIuOTE1IiBmaWxsPSIjNTY2YmQ5Ii8+PHBhdGggZD0ibTE4Ni44OCA4MC45NjN2NjAuOTQxaC0yNC4xNDR2LTU5LjE1YzAtMTIuNDY5LTUuMjQ2Mi0xOC43OTgtMTUuNzQtMTguNzk4LTExLjYwMiAwLTE3LjQxOCA3LjUwNzUtMTcuNDE4IDIyLjM1MnYzMi4zNzZoLTI0LjAwMXYtMzIuMzc2YzAtMTQuODQ1LTUuODE2Mi0yMi4zNTItMTcuNDE5LTIyLjM1Mi0xMC40OTQgMC0xNS43NCA2LjMyODgtMTUuNzQgMTguNzk4djU5LjE1aC0yNC4xNDR2LTYwLjk0MWMwLTEyLjQ1NSAzLjE3MTItMjIuMzUyIDkuNTQxMi0yOS42NzUgNi41Njg4LTcuMzIyNSAxNS4xNzEtMTEuMDc2IDI1Ljg1LTExLjA3NiAxMi4zNTUgMCAyMS43MTEgNC43NDg4IDI3Ljg5OCAxNC4yNDhsNi4wMTM4IDEwLjA4MSA2LjAxNS0xMC4wODFjNi4xODUtOS40OTg4IDE1LjU0MS0xNC4yNDggMjcuODk4LTE0LjI0OCAxMC42NzggMCAxOS4yOCAzLjc1MzggMjUuODUgMTEuMDc2IDYuMzY4OCA3LjMyMjUgOS41NCAxNy4yMiA5LjU0IDI5LjY3NSIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=')}.icons.share{background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTcgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEzLjUgMC4xMDIwNWMtMC40NzU1LTEuNmUtNCAtMC45NDUyIDAuMTA0MDItMS4zNzYxIDAuMzA1MTktMC40MzA4IDAuMjAxMTctMC44MTIzIDAuNDk0NDMtMS4xMTc0IDAuODU5MDktMC4zMDUyIDAuMzY0NjYtMC41MjY2IDAuNzkxODMtMC42NDg3IDEuMjUxNC0wLjEyMiAwLjQ1OTU2LTAuMTQxOCAwLjk0MDMxLTAuMDU3OCAxLjQwODNsLTQuNzMgMy4zMTJjLTAuMDIzNjUgMC4wMTYzNi0wLjA0NjM2IDAuMDM0MDYtMC4wNjggMC4wNTMtMC40Nzk4Ni0wLjM3NTEyLTEuMDU1NS0wLjYwNzg0LTEuNjYxMi0wLjY3MTYzLTAuNjA1NzMtMC4wNjM3OS0xLjIxNzIgMC4wNDM5My0xLjc2NDcgMC4zMTA4NnMtMS4wMDg5IDAuNjgyMzQtMS4zMzE3IDEuMTk4OGMtMC4zMjI4IDAuNTE2NTEtMC40OTM5NiAxLjExMzMtMC40OTM5NiAxLjcyMjQgMCAwLjYwOTA1IDAuMTcxMTYgMS4yMDYgMC40OTM5NiAxLjcyMjQgMC4zMjI4IDAuNTE2NSAwLjc4NDI0IDAuOTMxOSAxLjMzMTcgMS4xOTg4IDAuNTQ3NDggMC4yNjcgMS4xNTkgMC4zNzQ3IDEuNzY0NyAwLjMxMDkgMC42MDU3NC0wLjA2MzggMS4xODE0LTAuMjk2NSAxLjY2MTItMC42NzE2IDAuMDIxNjEgMC4wMTkyIDAuMDQ0MzIgMC4wMzczIDAuMDY4IDAuMDU0bDQuNzMgMy4zMTJjLTAuMTQwNCAwLjc4MjcgMC4wMTEgMS41ODk4IDAuNDI1NyAyLjI2ODQgMC40MTQ2IDAuNjc4NiAxLjA2MzcgMS4xODE2IDEuODI0MyAxLjQxMzhzMS41Nzk5IDAuMTc3NSAyLjMwMjktMC4xNTM4YzAuNzIyOS0wLjMzMTMgMS4yOTkzLTAuOTE2MiAxLjYyLTEuNjQzOXMwLjM2MzUtMS41NDc4IDAuMTIwMi0yLjMwNDljLTAuMjQzMi0wLjc1NzEtMC43NTU3LTEuMzk4OC0xLjQ0MDItMS44MDM1LTAuNjg0Ni0wLjQwNDctMS40OTM4LTAuNTQ0My0yLjI3NDQtMC4zOTI1cy0xLjQ3ODUgMC41ODQ2LTEuOTYxNSAxLjIxNjNsLTQuNDc5LTMuMTM0OWMwLjItMC40MjIgMC4zMTItMC44OTMgMC4zMTItMS4zOTEgMC0wLjQ5OC0wLjExMi0wLjk3LTAuMzEyLTEuMzkxbDQuNDgtMy4xMzZjMC4zMzU2IDAuNDM5MjcgMC43Nzc3IDAuNzg1NjggMS4yODQ1IDEuMDA2NSAwLjUwNjcgMC4yMjA4IDEuMDYxNCAwLjMwODY5IDEuNjExNyAwLjI1NTM2IDAuNTUwMi0wLjA1MzMzIDEuMDc3Ny0wLjI0NjEyIDEuNTMyNi0wLjU2MDE0czAuODIyMy0wLjczODg5IDEuMDY3Mi0xLjIzNDRjMC4yNDUtMC40OTU1NSAwLjM1OTUtMS4wNDU0IDAuMzMyOC0xLjU5NzUtMC4wMjY4LTAuNTUyMTQtMC4xOTM5LTEuMDg4My0wLjQ4NTYtMS41NTc5cy0wLjY5ODQtMC44NTY5Mi0xLjE4MTYtMS4xMjU1Yy0wLjQ4MzEtMC4yNjg1OC0xLjAyNjgtMC40MDk0Ny0xLjU3OTYtMC40MDkzN3ptLTEuNzUgMy4yNWMwLTAuNDY0MTMgMC4xODQ0LTAuOTA5MjUgMC41MTI2LTEuMjM3NCAwLjMyODItMC4zMjgxOCAwLjc3MzMtMC41MTI1NiAxLjIzNzQtMC41MTI1NnMwLjkwOTMgMC4xODQzOCAxLjIzNzQgMC41MTI1NmMwLjMyODIgMC4zMjgxOSAwLjUxMjYgMC43NzMzMSAwLjUxMjYgMS4yMzc0cy0wLjE4NDQgMC45MDkyNS0wLjUxMjYgMS4yMzc0Yy0wLjMyODEgMC4zMjgxOS0wLjc3MzMgMC41MTI1Ni0xLjIzNzQgMC41MTI1NnMtMC45MDkyLTAuMTg0MzctMS4yMzc0LTAuNTEyNTYtMC41MTI2LTAuNzczMzEtMC41MTI2LTEuMjM3NHptLTguMjUgNC43NWMtMC40NjQxMyAwLTAuOTA5MjUgMC4xODQzNy0xLjIzNzQgMC41MTI1Ni0wLjMyODE4IDAuMzI4MTktMC41MTI1NiAwLjc3MzMxLTAuNTEyNTYgMS4yMzc0IDAgMC40NjQxNSAwLjE4NDM4IDAuOTA5MjUgMC41MTI1NiAxLjIzNzQgMC4zMjgxOSAwLjMyODIgMC43NzMzMSAwLjUxMjYgMS4yMzc0IDAuNTEyNnMwLjkwOTI1LTAuMTg0NCAxLjIzNzQtMC41MTI2IDAuNTEyNTYtMC43NzMzIDAuNTEyNTYtMS4yMzc0YzAtMC40NjQxMy0wLjE4NDM3LTAuOTA5MjUtMC41MTI1Ni0xLjIzNzRzLTAuNzczMzEtMC41MTI1Ni0xLjIzNzQtMC41MTI1NnptMTAgNi41Yy0wLjQ2NDEgMC0wLjkwOTIgMC4xODQzLTEuMjM3NCAwLjUxMjVzLTAuNTEyNiAwLjc3MzMtMC41MTI2IDEuMjM3NWMwIDAuNDY0MSAwLjE4NDQgMC45MDkyIDAuNTEyNiAxLjIzNzRzMC43NzMzIDAuNTEyNiAxLjIzNzQgMC41MTI2IDAuOTA5My0wLjE4NDQgMS4yMzc0LTAuNTEyNmMwLjMyODItMC4zMjgyIDAuNTEyNi0wLjc3MzMgMC41MTI2LTEuMjM3NCAwLTAuNDY0Mi0wLjE4NDQtMC45MDkzLTAuNTEyNi0xLjIzNzUtMC4zMjgxLTAuMzI4Mi0wLjc3MzMtMC41MTI1LTEuMjM3NC0wLjUxMjV6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPgo=')}.icons.twitter{background-image:url('data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDAgNDAwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOjU2NmJkOWZmO30KCS5zdDF7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KCgk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSIyMDAiIGN5PSIyMDAiIHI9IjIwMCIgZmlsbD0iIzU2NmJkOSIvPgoKCgk8cGF0aCBjbGFzcz0ic3QxIiBkPSJtMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItMC4xLTYuMiA5LjQtNi44IDE3LjYtMTUuMyAyNC4xLTI1LTguNiAzLjgtMTcuOSA2LjQtMjcuNyA3LjYgMTAtNiAxNy42LTE1LjQgMjEuMi0yNi43LTkuMyA1LjUtMTkuNiA5LjUtMzAuNiAxMS43LTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMi0yNi42IDAtNDguMiAyMS42LTQ4LjIgNDguMiAwIDMuOCAwLjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LTAuMi0xNS4zLTIuNC0yMS44LTZ2MC42YzAgMjMuNCAxNi42IDQyLjggMzguNyA0Ny4zLTQgMS4xLTguMyAxLjctMTIuNyAxLjctMy4xIDAtNi4xLTAuMy05LjEtMC45IDYuMSAxOS4yIDIzLjkgMzMuMSA0NSAzMy41LTE2LjUgMTIuOS0zNy4zIDIwLjYtNTkuOSAyMC42LTMuOSAwLTcuNy0wLjItMTEuNS0wLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiLz4KCjwvc3ZnPgo=')}.profile-card ul.socials{margin:0 auto}#footer ul.socials{margin:.25rem 0}.author-socials ul.socials{margin:1rem auto}@media(min-width:800px){.container{max-width:780px}header.main h1{font-size:3rem;line-height:5rem;padding:0 5.5rem}header.main h1>span{display:inline}header.main h1>span.year:before{content:' - '}footer.main .links>ul{width:calc((100% - 1rem) / 2)}ul.sponsors-list>li{width:calc((100% - 4rem) / 2)}nav.button-bar>a{width:calc((100% - 2rem) / 2)}ul.people>li{width:calc((100% - 4rem) / 2)}.container.sponsor-options>div{width:calc((100% - 4rem) / 2)}main section.sponsors>.container>div{width:calc((100% - 4rem) / 2)}}@media(min-width:1000px){.container{max-width:960px}footer.main .links>ul{width:calc((100% - 3rem) / 4)}ul.sponsors-list>li{width:calc((100% - 4rem) / 2)}nav.button-bar>a{width:calc((100% - 2rem) / 2)}ul.people>li{width:calc((100% - 6rem) / 3)}.container.sponsor-options>div{width:40%}main section.sponsors>.container>div{width:calc((100% - 4rem) / 2)}}@media(min-width:1600px){}
\ No newline at end of file
+@font-face{font-family:'Inter';font-style:normal;font-weight:100;src:url(fonts/Inter-Thin.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:200;src:url(fonts/Inter-ExtraLight.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:300;src:url(fonts/Inter-Light.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:url(fonts/Inter-Regular.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:url(fonts/Inter-Medium.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:url(fonts/Inter-SemiBold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:url(fonts/Inter-Bold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:800;src:url(fonts/Inter-ExtraBold.ttf) format('truetype')}@font-face{font-family:'Inter';font-style:normal;font-weight:900;src:url(fonts/Inter-Black.ttf) format('truetype')}:root{--main-font:'Inter',sans-serif;--main-font-weight-normal:400;--main-font-weight-bold:600;--main-font-weight-extra-bold:800;--main-text-colour:#202125;--light-text-colour:#fff;--main-background-colour:#f9f9f9;--section-background-colour:#fff;--primary-colour:#566BD9;--secondary-colour:#d95656;--light-border-colour:#DADBDF}*{padding:0;margin:0}body{font-family:var(--main-font);font-weight:var(--main-font-weight-normal);color:var(--main-text-colour);background-color:var(--main-background-colour);font-size:16px;line-height:1.2}h1,h2,h3,h4,h5,h6{font-weight:var(--main-font-weight-bold);color:var(--main-text-colour);line-height:1.2;width:100%;margin-bottom:1rem}h1{font-size:2.5rem;font-weight:var(--main-font-weight-extra-bold)}h2{font-size:2rem;font-weight:var(--main-font-weight-extra-bold)}h3{font-size:1.5rem}h4{font-size:1.2rem}h5{font-size:1.1rem}h6{font-size:1rem;font-weight:var(--main-font-weight-normal)}p{margin-bottom:1rem;line-height:1.4}a:visited,a{text-decoration:underline;outline:none;color:var(--main-text-colour)}a:hover,a:active,a:focus{color:var(--primary-colour)}ol,ul{list-style:none}main ol,main ul{list-style:disc;padding-left:2rem}div.menu-pane ul{list-style:none;padding-left:0}strong,b{font-weight:var(--main-font-weight-bold)}em{font-style:italic}hr{display:block;width:100%;margin:2rem auto;border:none;border-top:2px solid var(--primary-colour)}main ul,main ol{margin-bottom:1rem}main ul>li,main ol>li{padding:.25rem 0}img{display:block;box-sizing:border-box;border-radius:1rem;margin:1rem 0;width:100%;height:10rem;object-fit:cover}.centred{text-align:center}table{border:2px solid var(--light-border-colour);border-collapse:collapse;margin-bottom:1rem;width:100%;box-sizing:border-box}table td,table th{padding:.5rem 1rem;border:2px solid var(--light-border-colour)}table th{font-weight:var(--main-font-weight-bold)}input[type=submit],input[type=submit].hollow.primary,input[type=button],input[type=button].hollow.primary,button,button.hollow.primary,a.button,a.button.hollow.primary{display:block;box-sizing:border-box;padding:1rem;border-radius:1rem;border:2px solid var(--primary-colour);text-decoration:none;color:var(--primary-colour);background-color:var(--section-background-colour);font-size:1.2rem;font-weight:var(--main-font-weight-bold);text-align:center;width:fit-content;margin:0 auto;box-shadow:0 .6rem .8rem -0.2rem rgba(16,24,40,0.08),0 .4rem .6rem -0.2rem rgba(16,24,40,0.03);text-transform:uppercase}input[type=submit].hollow.primary:hover,input[type=button]:hover,input[type=button].hollow.primary:hover,button:hover,button.hollow.primary:hover,a.button:hover,a.button.hollow.primary:hover{color:var(--main-text-colour);background-color:var(--light-border-colour);border:2px solid var(--main-text-colour)}input[type=submit].hollow.secondary,input[type=button].hollow.secondary,button.hollow.secondary,a.button.hollow.secondary{background-color:var(--section-background-colour);border:2px solid var(--secondary-colour);color:var(--secondary-colour)}input[type=submit].hollow.secondary:hover,input[type=button].hollow.secondary:hover,button.hollow.secondary:hover,a.button.hollow.secondary:hover{color:var(--main-text-colour);background-color:var(--light-border-colour);border:2px solid var(--main-text-colour)}input[type=submit],input[type=button].primary,button.primary,a.button.primary{background-color:var(--primary-colour);color:var(--light-text-colour)}input[type=submit]:hover,input[type=button].primary:hover,button.primary:hover,a.button.primary:hover{background-color:var(--main-text-colour);border:2px solid var(--main-text-colour);color:var(--light-text-colour)}input[type=submit].secondary,input[type=button].secondary,button.secondary,a.button.secondary{background-color:var(--secondary-colour);border:2px solid var(--secondary-colour);color:var(--light-text-colour)}input[type=submit].secondary:hover,input[type=button].secondary:hover,button.secondary:hover,a.button.secondary:hover{background-color:var(--main-text-colour);border:2px solid var(--main-text-colour)}nav.button-bar{padding:1rem 0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly}nav.button-bar>button,nav.button-bar>a{margin:.5rem 0;width:100%}form{margin-bottom:1rem}input,textarea,select{padding:.5rem;margin:.5rem 0;border:2px solid var(--light-border-colour);border-radius:.5rem;width:100%;box-sizing:border-box}input[type=checkbox]{width:fit-content;margin-right:.5rem}label{margin-top:.5rem;display:block;font-weight:var(--main-font-weight-bold)}input[type=checkbox]+br,label+br{display:none}form>div{margin-bottom:1rem}form>input[type=submit],form>input[type=button]{display:inline-block;width:calc(((100% - 1rem) / 2) - 3px);margin:0;box-sizing:border-box}form>input[type=submit]+input[type=button]{margin-left:1rem}table#speakerprofile_table,table#speakerprofile_table th,table#speakerprofile_table td,table#cfp_table,table#cfp_table th,table#cfp_table td{border:none}label[for=photo512-clear_id]{display:inline-block}.container{width:90%;max-width:400px;margin:0 auto}header.main{background-color:var(--section-background-colour);padding:0;border-bottom:1px solid var(--light-border-colour)}header.main>.container{position:relative;display:flex;flex-direction:row;justify-content:space-between}header.main a#logo{display:block;z-index:100}header.main a#logo>img{height:4rem;margin:.5rem 0;object-fit:contain}header.main h1{display:block;position:absolute;top:0;left:0;width:100%;z-index:0;font-size:1.5rem;line-height:2.0rem;text-align:center;text-transform:uppercase;box-sizing:border-box;padding:.5rem 5.5rem}header.main h1>span{display:block}footer.main{margin:2rem 0}footer.main .links{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:start}footer.main .links>ul{display:block;margin:.5rem 0;width:100%;list-style:none;padding:0}footer.main .links>ul>li{padding:.25rem 0}footer.main .links li>a{text-decoration:none}main#content{background-color:var(--section-background-colour)}section{padding:2rem 0 1rem 0}main#content>h1,main#content>h2,main#content>h3,main#content>h4,main#content>h5,main#content>h6,section>h1,section>h2,section>h3,section>h4,section>h5,section>h6{text-align:center}main>section,section.grey{background-color:var(--main-background-colour);padding:2rem 0}section.page,section.header{background-color:var(--section-background-colour);padding:1rem 0}section.centred>h1,section.centred>h2,section.centred>h3,section.centred>h4,section.centred>h5,section.centred>h6,section.centred>p{text-align:center}.card,details{background-color:var(--section-background-colour);border:2px solid var(--light-border-colour);border-radius:1rem;padding:1rem}details>summary{list-style:none}details[open]>div,details>summary{border-bottom:1px solid var(--primary-colour)}details[open]>summary{border-bottom:1px solid var(--light-border-colour);margin-bottom:1rem}details>summary::before{display:block;float:right;width:1rem;height:1rem;content:" ";background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTYgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2IDIuODUyLTggOC04LTggMi0yIDYgNiA2LTYgMiAyeiIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjNTY2QkQ5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4K');background-position:top right;background-repeat:no-repeat;background-size:1rem 1rem;transition:.4s}details[open]>summary::before{transform:rotate(180deg)}.card+.card,details+details{margin:1rem 0}section.hero{background-color:var(--section-background-colour);padding:1rem 0;text-align:center}section.hero svg{width:100%;border-radius:1rem;margin:1rem 0}section.hero h2{font-size:3rem;text-transform:uppercase}section.hero h3{font-size:2rem}section.hero h4{font-size:1.8rem}section.news{background-color:var(--main-background-colour);padding:2rem 0}section.sponsors{background-color:var(--section-background-colour);padding:2rem 0}ul.sponsors-list{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0}ul.sponsors-list>li{display:block;margin:1rem 0;width:80%}ul.sponsors-list img{height:120px;width:100%;object-fit:contain}ul.sponsors-list li>a.interview{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem;text-align:center}section.cta{text-align:center;background-color:var(--primary-colour);color:var(--light-text-colour);padding:3rem 0 1rem 0}section.cta h2,section.cta h3,section.cta h4,section.cta h5,section.cta h6{color:var(--light-text-colour)}section.cta h2{text-transform:uppercase}.map>iframe{width:100%;margin-bottom:1rem}section.committe{padding-bottom:1rem}ul.people{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0;padding-left:0}ul.people>li{display:block;background-color:var(--section-background-colour);border-radius:1rem;text-align:center;margin:1rem 0;width:calc(100% - 2rem)}ul.people img{margin:1rem auto;width:12rem;height:12rem;border-radius:50%;object-fit:cover}ul.people li>a.interview{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem;text-align:center}.container.sponsor-options{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly}.container.sponsor-options>div{margin:1rem 0;width:100%}.sponsor-options .card{display:flex;flex-direction:column}.sponsor-options .card .button{margin-top:auto;width:100%}main section.sponsors{background-color:var(--main-background-colour);padding:2rem 0}main section.sponsors>.container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;margin-bottom:0}main section.sponsors>.container>div{background-color:var(--section-background-colour);border-radius:1rem;box-sizing:border-box;padding:1rem;margin:1rem 0;width:calc(100% - 2rem)}main section.sponsors>.container>div img{height:120px;width:100%;object-fit:contain}main section.sponsors>.container>div a{font-size:1rem;text-decoration:none;display:block;box-sizing:border-box;padding:.5rem 1rem}main section.sponsors>.container>div .description{margin-top:1rem}a.icon.web{line-height:1.5rem;padding-left:2rem!important;background-position:center left;background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE3LjkgMTguMjQyYy0wLjI2LTAuODAwMS0xLjAxLTEuMzktMS45LTEuMzloLTF2LTNjMC0wLjI2NTMtMC4xMDU0LTAuNTE5Ni0wLjI5MjktMC43MDcyLTAuMTg3NS0wLjE4NzUtMC40NDE5LTAuMjkyOC0wLjcwNzEtMC4yOTI4aC02di0yaDJjMC4yNjUyIDAgMC41MTk2LTAuMTA1NCAwLjcwNzEtMC4yOTI5IDAuMTg3NS0wLjE4NzYgMC4yOTI5LTAuNDQxOSAwLjI5MjktMC43MDcxNXYtMmgyYzAuNTMwNCAwIDEuMDM5MS0wLjIxMDcxIDEuNDE0Mi0wLjU4NTc5IDAuMzc1MS0wLjM3NTA3IDAuNTg1OC0wLjg4Mzc4IDAuNTg1OC0xLjQxNDJ2LTAuNDFjMS4xOTY1IDAuNDgyMzcgMi4yNTgyIDEuMjQ3NSAzLjA5NDQgMi4yMjk4IDAuODM2MiAwLjk4MjM2IDEuNDIxOSAyLjE1MjcgMS43MDY5IDMuNDEwOSAwLjI4NTEgMS4yNTgxIDAuMjYxIDIuNTY2Ni0wLjA3MDEgMy44MTM1LTAuMzMxMSAxLjI0NjgtMC45NTk1IDIuMzk0OC0xLjgzMTIgMy4zNDU4em0tNi45IDIuNTRjLTMuOTUtMC40OS03LTMuODUtNy03LjkzIDAtMC42MiAwLjA4LTEuMjIgMC4yMS0xLjc5bDQuNzkgNC43OXYxYzAgMC41MzA0IDAuMjEwNzEgMS4wMzkxIDAuNTg1NzkgMS40MTQyIDAuMzc1MDcgMC4zNzUgMC44ODM4MSAwLjU4NTggMS40MTQyIDAuNTg1OG0xLTE2Yy0xLjMxMzIgMC0yLjYxMzYgMC4yNTg2Ni0zLjgyNjggMC43NjEyMS0xLjIxMzMgMC41MDI1NC0yLjMxNTYgMS4yMzkxLTMuMjQ0MiAyLjE2NzctMS44NzU0IDEuODc1NC0yLjkyODkgNC40MTg5LTIuOTI4OSA3LjA3MTEgMCAyLjY1MjEgMS4wNTM2IDUuMTk1NyAyLjkyODkgNy4wNzEgMC45Mjg1OSAwLjkyODYgMi4wMzEgMS42NjUyIDMuMjQ0MiAyLjE2NzcgMS4yMTMyIDAuNTAyNiAyLjUxMzYgMC43NjEzIDMuODI2OCAwLjc2MTMgMi42NTIyIDAgNS4xOTU3LTEuMDUzNiA3LjA3MTEtMi45MjkgMS44NzUzLTEuODc1MyAyLjkyODktNC40MTg5IDIuOTI4OS03LjA3MSAwLTEuMzEzMy0wLjI1ODctMi42MTM2LTAuNzYxMi0zLjgyNjktMC41MDI2LTEuMjEzMy0xLjIzOTEtMi4zMTU2LTIuMTY3Ny0zLjI0NDItMC45Mjg2LTAuOTI4NTgtMi4wMzEtMS42NjUyLTMuMjQ0My0yLjE2NzctMS4yMTMyLTAuNTAyNTUtMi41MTM2LTAuNzYxMjEtMy44MjY4LTAuNzYxMjF6IiBmaWxsPSIjMDAwIi8+PC9zdmc+Cg==')}a.icon.interview{line-height:1.5rem;padding-left:2rem!important;background-position:center left;background-repeat:no-repeat;background-size:1.5rem 1.5rem;background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAgMTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEwLjEgMTguODUyYy0wLjI4MzMzIDAtMC41MjA2Ny0wLjA5Ni0wLjcxMi0wLjI4OHMtMC4yODczMy0wLjQyOTQtMC4yODgtMC43MTJjMC0wLjExNjcgMC4wMjUtMC4yMzc3IDAuMDc1LTAuMzYzIDAuMDUtMC4xMjU0IDAuMTI1LTAuMjM3NyAwLjIyNS0wLjMzN2w0LjYyNS00LjYyNS0wLjcyNS0wLjcyNS00LjYgNC42MjVjLTAuMSAwLjEtMC4yMDgzMyAwLjE3NS0wLjMyNSAwLjIyNXMtMC4yNDE2NyAwLjA3NS0wLjM3NSAwLjA3NWMtMC4yODMzMyAwLTAuNTIwNjctMC4wOTU3LTAuNzEyLTAuMjg3LTAuMTkxMzMtMC4xOTE0LTAuMjg3MzMtMC40MjktMC4yODgtMC43MTMgMC0wLjE2NjcgMC4wMjUtMC4zMDQ0IDAuMDc1LTAuNDEzIDAuMDUtMC4xMDg3IDAuMTE2NjctMC4yMDQ0IDAuMi0wLjI4N2w0LjYyNS00LjYyNS0wLjctMC43MDAwNS00LjYyNSA0LjZjLTAuMSAwLjEtMC4yMDgzMyAwLjE3NS0wLjMyNSAwLjIyNXMtMC4yNSAwLjA3NS0wLjQgMC4wNzVjLTAuMjY2NjcgMC0wLjUtMC4xLTAuNy0wLjNzLTAuMy0wLjQzMzQtMC4zLTAuN2MwLTAuMTMzNCAwLjAyNS0wLjI1ODQgMC4wNzUtMC4zNzUgMC4wNS0wLjExNjcgMC4xMjUtMC4yMjUgMC4yMjUtMC4zMjVsNC42MjUtNC42MjUtMC43MjUtMC43LTQuNiA0LjYyNWMtMC4wODMzMyAwLjA4MzMtMC4xODMzMyAwLjE1LTAuMyAwLjJzLTAuMjU4MzMgMC4wNzUtMC40MjUgMC4wNzVjLTAuMjgzMzMgMC0wLjUyMS0wLjA5Ni0wLjcxMy0wLjI4OHMtMC4yODc2Ny0wLjQyOTQtMC4yODctMC43MTJjMC0wLjEzMzQgMC4wMjUtMC4yNTg0IDAuMDc1LTAuMzc1IDAuMDUtMC4xMTY3IDAuMTI1LTAuMjI1IDAuMjI1LTAuMzI1bDUuNTc1LTUuNTc1IDMuNzUgMy43NzVjMC4xODMzIDAuMTgzMzQgMC40IDAuMzI5MzQgMC42NSAwLjQzOCAwLjI1IDAuMTA4NjcgMC41IDAuMTYyNjcgMC43NSAwLjE2MiAwLjUzMzMgMCAxLTAuMTg3MzMgMS40LTAuNTYyIDAuNC0wLjM3NDY2IDAuNi0wLjg1Mzk5IDAuNi0xLjQzOCAwLTAuMjMzMzQtMC4wNDE3LTAuNDc1LTAuMTI1LTAuNzI1cy0wLjIzMzMtMC40ODMzNC0wLjQ1LTAuN2wtNC40NzUtNC40NzVjMC4yODMzLTAuMjY2NjcgMC42LTAuNDcwNjcgMC45NS0wLjYxMiAwLjM1LTAuMTQxMzQgMC43LTAuMjEyMzQgMS4wNS0wLjIxMyAwLjQzMzMgMCAwLjgzMzMgMC4wNzEgMS4yIDAuMjEzIDAuMzY2NyAwLjE0MiAwLjcgMC4zNjI2NiAxIDAuNjYxOTlsNC4yMjUgNC4yNWMwLjMgMC4zIDAuNTIxIDAuNjMzMzMgMC42NjMgMSAwLjE0MiAwLjM2NjY2IDAuMjEyNyAwLjc5MTY2IDAuMjEyIDEuMjc1IDAgMC4zMzMzNC0wLjA3NSAwLjY3MS0wLjIyNSAxLjAxM3MtMC4zNjY3IDAuNjU0MzQtMC42NSAwLjkzNzA1bC04LjMyNSA4LjM1Yy0wLjEzMzMgMC4xMzMzLTAuMjUgMC4yMTY2LTAuMzUgMC4yNS0wLjEgMC4wMzMzLTAuMjE2NyAwLjA1LTAuMzUgMC4wNXptLTguNTc1LTgtMC42NS0wLjY1Yy0wLjI4MzMzLTAuMjY2NzEtMC41LTAuNTgzMzgtMC42NS0wLjk1MDA1LTAuMTUtMC4zNjY2Ni0wLjIyNS0wLjc0OTk5LTAuMjI1LTEuMTUgMC0wLjQzMzM0IDAuMDgzMzMzLTAuODMzMzQgMC4yNS0xLjIgMC4xNjY2Ny0wLjM2NjY3IDAuMzc1LTAuNjc1IDAuNjI1LTAuOTI1bDQuMjI1LTQuMjVjMC4yNjY2Ny0wLjI2NjY2IDAuNTgzMzMtMC40NzkzMyAwLjk1LTAuNjM4IDAuMzY2NjctMC4xNTg2NiAwLjcyNS0wLjIzNzY2IDEuMDc1LTAuMjM3IDAuNDUgMCAwLjg1IDAuMDYyNjY3IDEuMiAwLjE4OCAwLjM1IDAuMTI1MzQgMC42OTE2NyAwLjM1NDM0IDEuMDI1IDAuNjg3bDUuMTI1IDUuMTI1YzAuMSAwLjA5OTk5IDAuMTc1IDAuMjA4MzMgMC4yMjUgMC4zMjQ5OSAwLjA1IDAuMTE2NjcgMC4wNzUgMC4yNDE2NyAwLjA3NSAwLjM3NSAwIDAuMjY2NjctMC4xIDAuNS0wLjMgMC43cy0wLjQzMzMgMC4zLTAuNyAwLjNjLTAuMTUgMC0wLjI3NS0wLjAyMDY2LTAuMzc1LTAuMDYyLTAuMS0wLjA0MTMzLTAuMjA4My0wLjEyMDY2LTAuMzI1LTAuMjM4bC00LjUtNC40NS03LjA1IDcuMDV6IiBmaWxsPSIjMDAwIi8+PC9zdmc+Cg==')}#main-menu{width:2.5rem;z-index:100}#main-menu>input[type=checkbox]{opacity:0;cursor:pointer;position:absolute}#main-menu>label{display:block;margin-top:1.25rem;width:2.5rem;height:2.5rem;z-index:101;background-color:var(--section-background-colour);background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTMgMTIuOTI2aDE4bS0xOC02aDE4bS0xOCAxMmgxOCIgc3Ryb2tlPSIjMjAyMTI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPgo=');background-position:center right;background-repeat:no-repeat;background-size:2.5rem 2.5rem}#main-menu>input[type=checkbox]:checked ~ label{background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4IDYuOTI2LTEyIDEybTAtMTIgMTIgMTIiIHN0cm9rZT0iIzIwMjEyNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4K')}#main-menu>.menu-pane{padding:.5rem 0;margin:0;list-style:none;position:absolute;top:5rem;right:0;left:0;background:var(--section-background-colour);z-index:10000;display:block;box-shadow:0 1.2rem 1.6rem -0.4rem rgba(16,24,40,0.08),0 .4rem .6rem -0.2rem rgba(16,24,40,0.03);border-top:1px solid var(--light-border-colour);transform-origin:top;transform:scaleY(0);transition:transform .3s ease}#main-menu>input[type=checkbox]:checked ~ .menu-pane{transform:scaleY(1)}#main-menu ul>li{}#main-menu ul>li>a{display:block;text-decoration:none;font-size:1.2rem;padding:.75rem 1rem;box-sizing:border-box}#main-menu ul>li>a:hover{background-color:var(--main-background-colour)}#main-menu ul>li:hover,#main-menu ul>li:focus{cursor:pointer;text-decoration:none}#main-menu ul{padding-bottom:.5rem;border-bottom:1px solid var(--light-border-colour)}ul.socials{display:flex;flex-direction:row;margin:1rem 0}ul.socials li{display:block;margin:0 1rem 0 0;padding:0}ul.socials li a{display:block;width:2rem;height:2rem;background-position:center;background-repeat:no-repeat;background-size:2rem 2rem}.icons.email{background-image:url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzU2NmJkOSI+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMSIvPjxwYXRoIGQ9Im0yMi45OSAxNS44MWMtLjAyLS43NC0uMTU1LTEuNDUtLjM4OC0yLjExNWw4LjM5OC01LjI0OXYtMS40NDZjMC0xLjEwMy0uODk3LTItMi0yaC0yNmMtMS4xMDMgMC0yIC44OTctMiAydjEuNDQ2bDguMzk4IDUuMjQ5Yy0uMjMzLjY2NS0uMzY5IDEuMzc1LS4zODggMi4xMTVsLTguMDEtNS4wMDZ2MTQuMTk2YzAgMS4xMDMuODk3IDIgMiAyaDI2YzEuMTAzIDAgMi0uODk3IDItMnYtMTQuMTk2em0tMy40OSAyLjY5Yy0uNTAxIDAtLjk2Ni0uMTUxLTEuMzU3LS40MDYtLjU0Ni41NTctMS4zMDQuOTA2LTIuMTQzLjkwNi0xLjY1NCAwLTMtMS4zNDYtMy0zczEuMzQ2LTMgMy0zIDMgMS4zNDYgMyAzYzAgLjI3Ni4yMjQuNS41LjVzLjUtLjIyNC41LS41YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0Yy44OCAwIDEuNzA4LS4yNzUgMi4zOTYtLjc5Ni40NDEtLjMzNCAxLjA2OC0uMjQ4IDEuNDAxLjE5Mi4zMzQuNDQuMjQ4IDEuMDY3LS4xOTIgMS40MDEtMS4wMzguNzg3LTIuMjg0IDEuMjAzLTMuNjA1IDEuMjAzLTMuMzA5IDAtNi0yLjY5MS02LTZzMi42OTEtNiA2LTYgNiAyLjY5MSA2IDZjMCAxLjM3OC0xLjEyMiAyLjUtMi41IDIuNXoiLz48L2c+PC9zdmc+Cg==')}.icons.github{background-image:url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im00OS44NTQgMmMtMjcuMDE1IDAtNDguODU0IDIyLTQ4Ljg1NCA0OS4yMTcgMCAyMS43NTYgMTMuOTkzIDQwLjE3MiAzMy40MDUgNDYuNjkgMi40MjcgMC40OSAzLjMxNi0xLjA1OSAzLjMxNi0yLjM2MiAwLTEuMTQxLTAuMDgtNS4wNTItMC4wOC05LjEyNy0xMy41OSAyLjkzNC0xNi40Mi01Ljg2Ny0xNi40Mi01Ljg2Ny0yLjE4NC01LjcwNC01LjQyLTcuMTctNS40Mi03LjE3LTQuNDQ4LTMuMDE1IDAuMzI0LTMuMDE1IDAuMzI0LTMuMDE1IDQuOTM0IDAuMzI2IDcuNTIzIDUuMDUyIDcuNTIzIDUuMDUyIDQuMzY3IDcuNDk2IDExLjQwNCA1LjM3OCAxNC4yMzUgNC4wNzQgMC40MDQtMy4xNzggMS42OTktNS4zNzggMy4wNzQtNi42LTEwLjgzOS0xLjE0MS0yMi4yNDMtNS4zNzgtMjIuMjQzLTI0LjI4MyAwLTUuMzc4IDEuOTQtOS43NzggNS4wMTQtMTMuMi0wLjQ4NS0xLjIyMi0yLjE4NC02LjI3NSAwLjQ4Ni0xMy4wMzggMCAwIDQuMTI1LTEuMzA0IDEzLjQyNiA1LjA1MmE0Ni45NyA0Ni45NyAwIDAgMSAxMi4yMTQtMS42M2M0LjEyNSAwIDguMzMgMC41NzEgMTIuMjEzIDEuNjMgOS4zMDItNi4zNTYgMTMuNDI3LTUuMDUyIDEzLjQyNy01LjA1MiAyLjY3IDYuNzYzIDAuOTcgMTEuODE2IDAuNDg1IDEzLjAzOCAzLjE1NSAzLjQyMiA1LjAxNSA3LjgyMiA1LjAxNSAxMy4yIDAgMTguOTA1LTExLjQwNCAyMy4wNi0yMi4zMjQgMjQuMjgzIDEuNzggMS41NDggMy4zMTYgNC40ODEgMy4zMTYgOS4xMjYgMCA2LjYtMC4wOCAxMS44OTctMC4wOCAxMy41MjYgMCAxLjMwNCAwLjg5IDIuODUzIDMuMzE2IDIuMzY0IDE5LjQxMi02LjUyIDMzLjQwNS0yNC45MzUgMzMuNDA1LTQ2LjY5MSAwLjA4LTI3LjIxNy0yMS44MzktNDkuMjE3LTQ4Ljc3My00OS4yMTd6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiM1NjZiZDkiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPgo=')}.icons.gitlab{background-image:url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNDIzMDdkO308L3N0eWxlPjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODkuOTczIC04OS41MTcpIiBmaWxsPSIjNTY2YmQ5Ij48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im0yODIuODMgMTcwLjczLTAuMjctMC42OS0yNi4xNC02OC4yMmE2LjgxIDYuODEgMCAwIDAtMi42OS0zLjI0IDcgNyAwIDAgMC04IDAuNDMgNyA3IDAgMCAwLTIuMzIgMy41MmwtMTcuNjUgNTRoLTcxLjQ3bC0xNy42NS01NGE2Ljg2IDYuODYgMCAwIDAtMi4zMi0zLjUzIDcgNyAwIDAgMC04LTAuNDMgNi44NyA2Ljg3IDAgMCAwLTIuNjkgMy4yNGwtMjYuMTkgNjguMTktMC4yNiAwLjY5YTQ4LjU0IDQ4LjU0IDAgMCAwIDE2LjEgNTYuMWwwLjA5IDAuMDcgMC4yNCAwLjE3IDM5LjgyIDI5LjgyIDE5LjcgMTQuOTEgMTIgOS4wNmE4LjA3IDguMDcgMCAwIDAgOS43NiAwbDEyLTkuMDYgMTkuNy0xNC45MSA0MC4wNi0zMCAwLjEtMC4wOGE0OC41NiA0OC41NiAwIDAgMCAxNi4wOC01Ni4wNHoiIGZpbGw9IiM1NjZiZDkiLz48L2c+PC9zdmc+Cg==')}.icons.linkedin{background-image:url('data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB4PSI0LjY5NzUiIHk9IjQuNTg1OCIgd2lkdGg9IjE0LjkyOCIgaGVpZ2h0PSIxNC41MDQiIGZpbGw9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxLjUiIHN0cm9rZS13aWR0aD0iMCIvPjxwYXRoIGQ9Im0xOS43IDNoLTE1LjRjLTAuNzE4IDAtMS4zIDAuNTgyLTEuMyAxLjN2MTUuNGMwIDAuNzE4IDAuNTgyIDEuMyAxLjMgMS4zaDE1LjRjMC43MTggMCAxLjMtMC41ODIgMS4zLTEuM3YtMTUuNGMwLTAuNzE4LTAuNTgyLTEuMy0xLjMtMS4zem0tMTEuMzYxIDE1LjMzOGgtMi42NzJ2LTguNTloMi42NzJ2OC41OXptLTEuMzM1LTkuNzY0Yy0wLjg1NyAwLTEuNTQ5LTAuNjk0LTEuNTQ5LTEuNTQ4IDAtMC44NTUgMC42OTEtMS41NDggMS41NDktMS41NDggMC44NTQgMCAxLjU0NyAwLjY5NCAxLjU0NyAxLjU0OCAwIDAuODU1LTAuNjkzIDEuNTQ4LTEuNTQ3IDEuNTQ4em0xMS4zMzUgOS43NjRoLTIuNjY5di00LjE3N2MwLTAuOTk2LTAuMDE3LTIuMjc4LTEuMzg3LTIuMjc4LTEuMzg5IDAtMS42MDEgMS4wODYtMS42MDEgMi4yMDZ2NC4yNDloLTIuNjY3di04LjU5aDIuNTU5djEuMTc0aDAuMDM3YzAuMzU2LTAuNjc1IDEuMjI3LTEuMzg3IDIuNTI2LTEuMzg3IDIuNzAzIDAgMy4yMDMgMS43NzkgMy4yMDMgNC4wOTJ2NC43MTF6IiBmaWxsPSIjNTY2YmQ5Ii8+PC9zdmc+Cg==')}.icons.mastodon{background-image:url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwIiBoZWlnaHQ9IjI1MCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjM0LjM4IDIzNC4zNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMjIxLjE4IDEzOS45N2MtMy4xODEyIDE2LjM2Ni0yOC40OTIgMzQuMjc4LTU3LjU2MiAzNy43NDktMTUuMTU5IDEuODA4OC0zMC4wODQgMy40NzEyLTQ1Ljk5OSAyLjc0MTItMjYuMDI4LTEuMTkyNS00Ni41NjUtNi4yMTI1LTQ2LjU2NS02LjIxMjUgMCAyLjUzMzggMC4xNTYyNSA0Ljk0NjIgMC40Njg3NSA3LjIwMjUgMy4zODM4IDI1LjY4NiAyNS40NyAyNy4yMjUgNDYuMzkxIDI3Ljk0MiAyMS4xMTYgMC43MjI1IDM5LjkxOS01LjIwNjIgMzkuOTE5LTUuMjA2MmwwLjg2NzUgMTkuMDlzLTE0Ljc3IDcuOTMxMi00MS4wODEgOS4zOWMtMTQuNTA5IDAuNzk3NS0zMi41MjQtMC4zNjUtNTMuNTA2LTUuOTE4OC00NS41MDgtMTIuMDQ1LTUzLjMzNC02MC41NTQtNTQuNTMxLTEwOS43Ny0wLjM2NS0xNC42MTQtMC4xNC0yOC4zOTQtMC4xNC0zOS45MTkgMC01MC4zMyAzMi45NzYtNjUuMDgyIDMyLjk3Ni02NS4wODIgMTYuNjI4LTcuNjM2MyA0NS4xNTktMTAuODQ4IDc0LjgyLTExLjA5aDAuNzI4NzVjMjkuNjYxIDAuMjQyNSA1OC4yMTEgMy40NTM4IDc0LjgzOCAxMS4wOSAwIDAgMzIuOTc1IDE0Ljc1MiAzMi45NzUgNjUuMDgyIDAgMCAwLjQxMzc1IDM3LjEzNC00LjU5ODggNjIuOTE1IiBmaWxsPSIjNTY2YmQ5Ii8+PHBhdGggZD0ibTE4Ni44OCA4MC45NjN2NjAuOTQxaC0yNC4xNDR2LTU5LjE1YzAtMTIuNDY5LTUuMjQ2Mi0xOC43OTgtMTUuNzQtMTguNzk4LTExLjYwMiAwLTE3LjQxOCA3LjUwNzUtMTcuNDE4IDIyLjM1MnYzMi4zNzZoLTI0LjAwMXYtMzIuMzc2YzAtMTQuODQ1LTUuODE2Mi0yMi4zNTItMTcuNDE5LTIyLjM1Mi0xMC40OTQgMC0xNS43NCA2LjMyODgtMTUuNzQgMTguNzk4djU5LjE1aC0yNC4xNDR2LTYwLjk0MWMwLTEyLjQ1NSAzLjE3MTItMjIuMzUyIDkuNTQxMi0yOS42NzUgNi41Njg4LTcuMzIyNSAxNS4xNzEtMTEuMDc2IDI1Ljg1LTExLjA3NiAxMi4zNTUgMCAyMS43MTEgNC43NDg4IDI3Ljg5OCAxNC4yNDhsNi4wMTM4IDEwLjA4MSA2LjAxNS0xMC4wODFjNi4xODUtOS40OTg4IDE1LjU0MS0xNC4yNDggMjcuODk4LTE0LjI0OCAxMC42NzggMCAxOS4yOCAzLjc1MzggMjUuODUgMTEuMDc2IDYuMzY4OCA3LjMyMjUgOS41NCAxNy4yMiA5LjU0IDI5LjY3NSIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=')}.icons.share{background-image:url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTcgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEzLjUgMC4xMDIwNWMtMC40NzU1LTEuNmUtNCAtMC45NDUyIDAuMTA0MDItMS4zNzYxIDAuMzA1MTktMC40MzA4IDAuMjAxMTctMC44MTIzIDAuNDk0NDMtMS4xMTc0IDAuODU5MDktMC4zMDUyIDAuMzY0NjYtMC41MjY2IDAuNzkxODMtMC42NDg3IDEuMjUxNC0wLjEyMiAwLjQ1OTU2LTAuMTQxOCAwLjk0MDMxLTAuMDU3OCAxLjQwODNsLTQuNzMgMy4zMTJjLTAuMDIzNjUgMC4wMTYzNi0wLjA0NjM2IDAuMDM0MDYtMC4wNjggMC4wNTMtMC40Nzk4Ni0wLjM3NTEyLTEuMDU1NS0wLjYwNzg0LTEuNjYxMi0wLjY3MTYzLTAuNjA1NzMtMC4wNjM3OS0xLjIxNzIgMC4wNDM5My0xLjc2NDcgMC4zMTA4NnMtMS4wMDg5IDAuNjgyMzQtMS4zMzE3IDEuMTk4OGMtMC4zMjI4IDAuNTE2NTEtMC40OTM5NiAxLjExMzMtMC40OTM5NiAxLjcyMjQgMCAwLjYwOTA1IDAuMTcxMTYgMS4yMDYgMC40OTM5NiAxLjcyMjQgMC4zMjI4IDAuNTE2NSAwLjc4NDI0IDAuOTMxOSAxLjMzMTcgMS4xOTg4IDAuNTQ3NDggMC4yNjcgMS4xNTkgMC4zNzQ3IDEuNzY0NyAwLjMxMDkgMC42MDU3NC0wLjA2MzggMS4xODE0LTAuMjk2NSAxLjY2MTItMC42NzE2IDAuMDIxNjEgMC4wMTkyIDAuMDQ0MzIgMC4wMzczIDAuMDY4IDAuMDU0bDQuNzMgMy4zMTJjLTAuMTQwNCAwLjc4MjcgMC4wMTEgMS41ODk4IDAuNDI1NyAyLjI2ODQgMC40MTQ2IDAuNjc4NiAxLjA2MzcgMS4xODE2IDEuODI0MyAxLjQxMzhzMS41Nzk5IDAuMTc3NSAyLjMwMjktMC4xNTM4YzAuNzIyOS0wLjMzMTMgMS4yOTkzLTAuOTE2MiAxLjYyLTEuNjQzOXMwLjM2MzUtMS41NDc4IDAuMTIwMi0yLjMwNDljLTAuMjQzMi0wLjc1NzEtMC43NTU3LTEuMzk4OC0xLjQ0MDItMS44MDM1LTAuNjg0Ni0wLjQwNDctMS40OTM4LTAuNTQ0My0yLjI3NDQtMC4zOTI1cy0xLjQ3ODUgMC41ODQ2LTEuOTYxNSAxLjIxNjNsLTQuNDc5LTMuMTM0OWMwLjItMC40MjIgMC4zMTItMC44OTMgMC4zMTItMS4zOTEgMC0wLjQ5OC0wLjExMi0wLjk3LTAuMzEyLTEuMzkxbDQuNDgtMy4xMzZjMC4zMzU2IDAuNDM5MjcgMC43Nzc3IDAuNzg1NjggMS4yODQ1IDEuMDA2NSAwLjUwNjcgMC4yMjA4IDEuMDYxNCAwLjMwODY5IDEuNjExNyAwLjI1NTM2IDAuNTUwMi0wLjA1MzMzIDEuMDc3Ny0wLjI0NjEyIDEuNTMyNi0wLjU2MDE0czAuODIyMy0wLjczODg5IDEuMDY3Mi0xLjIzNDRjMC4yNDUtMC40OTU1NSAwLjM1OTUtMS4wNDU0IDAuMzMyOC0xLjU5NzUtMC4wMjY4LTAuNTUyMTQtMC4xOTM5LTEuMDg4My0wLjQ4NTYtMS41NTc5cy0wLjY5ODQtMC44NTY5Mi0xLjE4MTYtMS4xMjU1Yy0wLjQ4MzEtMC4yNjg1OC0xLjAyNjgtMC40MDk0Ny0xLjU3OTYtMC40MDkzN3ptLTEuNzUgMy4yNWMwLTAuNDY0MTMgMC4xODQ0LTAuOTA5MjUgMC41MTI2LTEuMjM3NCAwLjMyODItMC4zMjgxOCAwLjc3MzMtMC41MTI1NiAxLjIzNzQtMC41MTI1NnMwLjkwOTMgMC4xODQzOCAxLjIzNzQgMC41MTI1NmMwLjMyODIgMC4zMjgxOSAwLjUxMjYgMC43NzMzMSAwLjUxMjYgMS4yMzc0cy0wLjE4NDQgMC45MDkyNS0wLjUxMjYgMS4yMzc0Yy0wLjMyODEgMC4zMjgxOS0wLjc3MzMgMC41MTI1Ni0xLjIzNzQgMC41MTI1NnMtMC45MDkyLTAuMTg0MzctMS4yMzc0LTAuNTEyNTYtMC41MTI2LTAuNzczMzEtMC41MTI2LTEuMjM3NHptLTguMjUgNC43NWMtMC40NjQxMyAwLTAuOTA5MjUgMC4xODQzNy0xLjIzNzQgMC41MTI1Ni0wLjMyODE4IDAuMzI4MTktMC41MTI1NiAwLjc3MzMxLTAuNTEyNTYgMS4yMzc0IDAgMC40NjQxNSAwLjE4NDM4IDAuOTA5MjUgMC41MTI1NiAxLjIzNzQgMC4zMjgxOSAwLjMyODIgMC43NzMzMSAwLjUxMjYgMS4yMzc0IDAuNTEyNnMwLjkwOTI1LTAuMTg0NCAxLjIzNzQtMC41MTI2IDAuNTEyNTYtMC43NzMzIDAuNTEyNTYtMS4yMzc0YzAtMC40NjQxMy0wLjE4NDM3LTAuOTA5MjUtMC41MTI1Ni0xLjIzNzRzLTAuNzczMzEtMC41MTI1Ni0xLjIzNzQtMC41MTI1NnptMTAgNi41Yy0wLjQ2NDEgMC0wLjkwOTIgMC4xODQzLTEuMjM3NCAwLjUxMjVzLTAuNTEyNiAwLjc3MzMtMC41MTI2IDEuMjM3NWMwIDAuNDY0MSAwLjE4NDQgMC45MDkyIDAuNTEyNiAxLjIzNzRzMC43NzMzIDAuNTEyNiAxLjIzNzQgMC41MTI2IDAuOTA5My0wLjE4NDQgMS4yMzc0LTAuNTEyNmMwLjMyODItMC4zMjgyIDAuNTEyNi0wLjc3MzMgMC41MTI2LTEuMjM3NCAwLTAuNDY0Mi0wLjE4NDQtMC45MDkzLTAuNTEyNi0xLjIzNzUtMC4zMjgxLTAuMzI4Mi0wLjc3MzMtMC41MTI1LTEuMjM3NC0wLjUxMjV6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPgo=')}.icons.twitter{background-image:url('data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDAgNDAwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOjU2NmJkOWZmO30KCS5zdDF7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KCgk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSIyMDAiIGN5PSIyMDAiIHI9IjIwMCIgZmlsbD0iIzU2NmJkOSIvPgoKCgk8cGF0aCBjbGFzcz0ic3QxIiBkPSJtMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItMC4xLTYuMiA5LjQtNi44IDE3LjYtMTUuMyAyNC4xLTI1LTguNiAzLjgtMTcuOSA2LjQtMjcuNyA3LjYgMTAtNiAxNy42LTE1LjQgMjEuMi0yNi43LTkuMyA1LjUtMTkuNiA5LjUtMzAuNiAxMS43LTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMi0yNi42IDAtNDguMiAyMS42LTQ4LjIgNDguMiAwIDMuOCAwLjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LTAuMi0xNS4zLTIuNC0yMS44LTZ2MC42YzAgMjMuNCAxNi42IDQyLjggMzguNyA0Ny4zLTQgMS4xLTguMyAxLjctMTIuNyAxLjctMy4xIDAtNi4xLTAuMy05LjEtMC45IDYuMSAxOS4yIDIzLjkgMzMuMSA0NSAzMy41LTE2LjUgMTIuOS0zNy4zIDIwLjYtNTkuOSAyMC42LTMuOSAwLTcuNy0wLjItMTEuNS0wLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiLz4KCjwvc3ZnPgo=')}.profile-card ul.socials{margin:0 auto}#footer ul.socials{margin:.25rem 0}.author-socials ul.socials{margin:1rem auto}@media(min-width:800px){.container{max-width:780px}header.main h1{font-size:3rem;line-height:5rem;padding:0 5.5rem}header.main h1>span{display:inline}header.main h1>span.year:before{content:' - '}footer.main .links>ul{width:calc((100% - 1rem) / 2)}ul.sponsors-list>li{width:calc((100% - 4rem) / 2)}nav.button-bar>input[type=submit],nav.button-bar>input[type=button],nav.button-bar>button,nav.button-bar>a{width:calc((100% - 2rem) / 2)}ul.people>li{width:calc((100% - 4rem) / 2)}.container.sponsor-options>div{width:calc((100% - 4rem) / 2)}main section.sponsors>.container>div{width:calc((100% - 4rem) / 2)}}@media(min-width:1000px){.container{max-width:960px}footer.main .links>ul{width:calc((100% - 3rem) / 4)}ul.sponsors-list>li{width:calc((100% - 4rem) / 2)}nav.button-bar>input[type=submit],nav.button-bar>input[type=button],nav.button-bar>button,nav.button-bar>a{width:calc((100% - 2rem) / 2)}ul.people>li{width:calc((100% - 6rem) / 3)}.container.sponsor-options>div{width:40%}main section.sponsors>.container>div{width:calc((100% - 4rem) / 2)}}@media(min-width:1600px){}
\ No newline at end of file
index e974ea949b1b01a9bffcf63634bd94e248faaffc..05c21478a0de4aab0fa1efc4f7be476e246c6a03 100644 (file)
@@ -118,80 +118,6 @@ img {
    object-fit: cover;
 }
 
-/* Buttons */
-a.button,
-a.button.hollow.primary {
-   display: block;
-   box-sizing: border-box;
-   padding: 1rem;
-   border-radius: 1rem;
-   border: 2px solid var(--primary-colour);
-   text-decoration: none;
-   color: var(--primary-colour);
-   background-color: var(--section-background-colour);
-   font-size: 1.2rem;
-   font-weight: var(--main-font-weight-bold);
-   text-align: center;
-   width: fit-content;
-   margin: 0 auto;
-   box-shadow: 0 0.6rem 0.8rem -0.2rem rgba(16, 24, 40, 0.08), 0 0.4rem 0.6rem -0.2rem rgba(16, 24, 40, 0.03);
-   text-transform: uppercase;
-}
-
-a.button:hover,
-a.button.hollow.primary:hover {
-   color: var(--main-text-colour);
-   background-color: var(--light-border-colour);
-   border: 2px solid var(--main-text-colour);
-}
-
-a.button.hollow.secondary {
-   background-color: var(--section-background-colour);
-   border: 2px solid var(--secondary-colour);
-   color: var(--secondary-colour);
-}
-
-a.button.hollow.secondary:hover {
-   color: var(--main-text-colour);
-   background-color: var(--light-border-colour);
-   border: 2px solid var(--main-text-colour);
-}
-
-a.button.primary {
-   background-color: var(--primary-colour);
-   color: var(--light-text-colour);
-}
-
-a.button.primary:hover {
-   background-color: var(--main-text-colour);
-   border: 2px solid var(--main-text-colour);
-}
-
-a.button.secondary {
-   background-color: var(--secondary-colour);
-   border: 2px solid var(--secondary-colour);
-   color: var(--light-text-colour);
-}
-
-a.button.secondary:hover {
-   background-color: var(--main-text-colour);
-   border: 2px solid var(--main-text-colour);
-}
-
-nav.button-bar {
-   padding: 1rem 0;
-   display: flex;
-   flex-direction: row;
-   flex-wrap: wrap;
-   justify-content: space-evenly;
-   
-}
-
-nav.button-bar > a {
-   margin: 0.5rem 0;
-   width: 100%;
-}
-
 .centred {
    text-align: center;
 }
index 062da4bc07d96a6fade36eb3c2f02f61ec9e3b6f..393b6ac16792d0bb65701e20b4d6a86474c08dad 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
 
 echo "/* Building CSS */"
-cat ./font.css ./base.css ./layout.css ./menu.css ./socials.css ./responsive.css | cssmin > ../main.min.css
+cat ./font.css ./base.css ./buttons.css ./form.css ./layout.css ./menu.css ./socials.css ./responsive.css | cssmin > ../main.min.css
 
diff --git a/static/css/src/buttons.css b/static/css/src/buttons.css
new file mode 100644 (file)
index 0000000..6196bb9
--- /dev/null
@@ -0,0 +1,106 @@
+
+/* Buttons */
+input[type=submit],
+input[type=submit].hollow.primary,
+input[type=button],
+input[type=button].hollow.primary,
+button,
+button.hollow.primary,
+a.button,
+a.button.hollow.primary {
+   display: block;
+   box-sizing: border-box;
+   padding: 1rem;
+   border-radius: 1rem;
+   border: 2px solid var(--primary-colour);
+   text-decoration: none;
+   color: var(--primary-colour);
+   background-color: var(--section-background-colour);
+   font-size: 1.2rem;
+   font-weight: var(--main-font-weight-bold);
+   text-align: center;
+   width: fit-content;
+   margin: 0 auto;
+   box-shadow: 0 0.6rem 0.8rem -0.2rem rgba(16, 24, 40, 0.08), 0 0.4rem 0.6rem -0.2rem rgba(16, 24, 40, 0.03);
+   text-transform: uppercase;
+}
+
+input[type=submit].hollow.primary:hover,
+input[type=button]:hover,
+input[type=button].hollow.primary:hover,
+button:hover,
+button.hollow.primary:hover,
+a.button:hover,
+a.button.hollow.primary:hover {
+   color: var(--main-text-colour);
+   background-color: var(--light-border-colour);
+   border: 2px solid var(--main-text-colour);
+}
+
+input[type=submit].hollow.secondary,
+input[type=button].hollow.secondary,
+button.hollow.secondary,
+a.button.hollow.secondary {
+   background-color: var(--section-background-colour);
+   border: 2px solid var(--secondary-colour);
+   color: var(--secondary-colour);
+}
+
+input[type=submit].hollow.secondary:hover,
+input[type=button].hollow.secondary:hover,
+button.hollow.secondary:hover,
+a.button.hollow.secondary:hover {
+   color: var(--main-text-colour);
+   background-color: var(--light-border-colour);
+   border: 2px solid var(--main-text-colour);
+}
+
+input[type=submit],
+input[type=button].primary,
+button.primary,
+a.button.primary {
+   background-color: var(--primary-colour);
+   color: var(--light-text-colour);
+}
+
+input[type=submit]:hover,
+input[type=button].primary:hover,
+button.primary:hover,
+a.button.primary:hover {
+   background-color: var(--main-text-colour);
+   border: 2px solid var(--main-text-colour);
+   color: var(--light-text-colour);
+}
+
+input[type=submit].secondary,
+input[type=button].secondary,
+button.secondary,
+a.button.secondary {
+   background-color: var(--secondary-colour);
+   border: 2px solid var(--secondary-colour);
+   color: var(--light-text-colour);
+}
+
+input[type=submit].secondary:hover,
+input[type=button].secondary:hover,
+button.secondary:hover,
+a.button.secondary:hover {
+   background-color: var(--main-text-colour);
+   border: 2px solid var(--main-text-colour);
+}
+
+nav.button-bar {
+   padding: 1rem 0;
+   display: flex;
+   flex-direction: row;
+   flex-wrap: wrap;
+   justify-content: space-evenly;
+   
+}
+
+nav.button-bar > button,
+nav.button-bar > a {
+   margin: 0.5rem 0;
+   width: 100%;
+}
+
diff --git a/static/css/src/form.css b/static/css/src/form.css
new file mode 100644 (file)
index 0000000..c7f773f
--- /dev/null
@@ -0,0 +1,60 @@
+/* Forms */
+form {
+   margin-bottom: 1rem;
+}
+
+input, textarea, select {
+   padding: 0.5rem;
+   margin: 0.5rem 0;
+   border: 2px solid var(--light-border-colour);
+   border-radius: 0.5rem;
+   width: 100%;
+   box-sizing: border-box;
+}
+
+input[type=checkbox] {
+   width: fit-content;
+   margin-right: 0.5rem;
+}
+
+label {
+   margin-top: 0.5rem;
+   display: block;
+   font-weight: var(--main-font-weight-bold);
+}
+
+/* Work around CFP Form HTML */
+input[type=checkbox] + br,
+label + br {
+   display: none;
+}
+
+form > div {
+   margin-bottom: 1rem;
+}
+
+form > input[type=submit],
+form > input[type=button] {
+   display: inline-block;
+   width: calc( ((100% - 1rem) / 2) - 3px );
+   margin: 0;
+   box-sizing: border-box;
+}
+
+form > input[type=submit] + input[type=button] {
+   margin-left: 1rem;
+}
+
+
+table#speakerprofile_table,
+table#speakerprofile_table th,
+table#speakerprofile_table td,
+table#cfp_table,
+table#cfp_table th,
+table#cfp_table td {
+   border: none;
+}
+
+label[for=photo512-clear_id] {
+   display: inline-block;
+}
index 559d97d6353f9ec2fd05ebc57e65b343ec150560..fd46adb9014958520a8a1e5c9c7b54efabe35d72 100644 (file)
@@ -104,7 +104,7 @@ section.header {
     padding: 1rem 0;
 }
 
-section.header > h1, section.header > h2, section.header > h3, section.header > h4, section.header > h5, section.header > h6, section.header > p {
+section.centred > h1, section.centred > h2, section.centred > h3, section.centred > h4, section.centred > h5, section.centred > h6, section.centred > p {
     text-align: center;
 }
 
index 63448eb0d31caa74b8ff63b6616161638d571e33..2a5acb1bf0fbe45c23f973395445b016ac0cef78 100644 (file)
@@ -26,6 +26,9 @@
        width: calc((100% - 4rem) / 2);\r
    }\r
    /* Button Nav */\r
+   nav.button-bar > input[type=submit],\r
+   nav.button-bar > input[type=button],\r
+   nav.button-bar > button,\r
    nav.button-bar > a {\r
        width: calc((100% - 2rem) / 2);\r
    }\r
@@ -57,6 +60,9 @@
        width: calc((100% - 4rem) / 2);\r
    }\r
    /* Button Nav */\r
+   nav.button-bar > input[type=submit],\r
+   nav.button-bar > input[type=button],\r
+   nav.button-bar > button,\r
    nav.button-bar > a {\r
        width: calc((100% - 2rem) / 2);\r
    }\r
index 84855a29065b2de152e4d9f740094425b6fc2f01..4f12ab27e8cc3dc39ccac2dc503d06d02ab40504 100644 (file)
Binary files a/static/img/ogp/sponsor-interview-edb.png and b/static/img/ogp/sponsor-interview-edb.png differ
index 0b769310858500d6bab0d8e60c8bda72e8bc666a..c8efe5307884d60fa324cbce9ee33d1247a9ff07 100644 (file)
     
     <!-- main content -->
     <main id="content">
-      <!-- Page content -->
-      {% block content %}{% endblock %}
+      {% if pagemode == 'page' %}
+        <!-- content page layouts -->
+        <section class="header">
+          <h2>{% block pagetitle %}{% endblock %}</h2>
+          <h5>{% block pagesubtitle %}{% endblock %}</h5>
+          <div class="container">
+            {% block pageintro %}{% endblock %}
+          </div>
+        </section>
+      {% elif pagemode == 'custom' %}
+        <!-- custom content layouts -->
+        {% block pageprimary %}{% endblock %}
+      {% else %}
+        <!-- Back compat mode -->
+        <section class="page">
+          <div class="container">
+            {% block content %}{% endblock %}
+          </div>
+        </section>
+      {% endif %}
+      <!-- Page sections -->
+      {% block pagesections %}{% endblock %}
     </main>
     
     <!-- Shared sections across all pages -->
     {% endif %}
     <!-- Sponsors panel end -->
     <!-- Shared sections end -->
-    
+    {% block bottomsections %}{% endblock %}
     <!-- footer -->
     <footer class="main">
       <div class="container">
           <ul>
             <li><a href="{{ link("organisation/") }}">Organisation</a></li>
             <li><a href="{{ link("code-of-conduct/") }}">Code of Conduct</a></li>
+            <li><a href="{{ link("visa-letter/") }}">Visa Letter</a></li>
             <li><a href="{{ link("contact/") }}">Contact Us</a></li>
           </ul>
         </div>
index a0b739e5814eb47c1400685ae986d997fee7fd87..dbeeaeb9b7c76123d24cf8de2eeeb86a50faac95 100644 (file)
@@ -1,18 +1,18 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
+
 {% block title %}About{% endblock %}
-{% block content %}
-<section class="header">
-  <div class="container centred">
-    <h2>About {{ confname }} {{ year }}</h2>
-    <h6>
-      This year's conference is the {{ nth }} Annual {{ confname }}, and for this year we are going to {{ location }}
-    </h6>
-    <p>
-      {{ confname }} is a unique chance for UK and European PostgreSQL users and developers to catch up, learn, build relationships, get to know each other and consolidate a real network of professionals that use and work with PostgreSQL.
-    </p>
-  </div>
-</section>
 
+{% block pagetitle %}About {{ confname }} {{ year }}{% endblock %}
+{% block pagesubtitle %}This year's conference is the {{ nth }} Annual {{ confname }}, and for this year we are going to {{ location }}{% endblock %}
+
+{% block pageintro %}
+  <p>
+    {{ confname }} is a unique chance for UK and European PostgreSQL users and developers to catch up, learn, build relationships, get to know each other and consolidate a real network of professionals that use and work with PostgreSQL.
+  </p>
+{% endblock %}
+
+{% block pagesections %}
 <section>
   <h3>Great Content Everywhere</h3>
   <div class="container">
index 7d7741c5572f431f10481996083072692f609060..ca86c6736b08a10b69262c5ea26154ab736d4a19 100644 (file)
@@ -1,3 +1,4 @@
+{% set pagemode = 'page' %}
 {% set show_main_cta = "hide" %}
 {% set show_sponsors_panel = "hide" %}
 {% extends "base.html" %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Call for Sponsors">
 {%- endblock %}
 
-{% block content %}
+{% block pagetitle %}Become a Sponsor{% endblock %}
+{% block pagesubtitle %}The perfect opportunity to reach PostgreSQL users and developers, or to just give back{% endblock %}
 
-<section class="page">
-  <a name="become-a-sponsor"></a>
-  <h2>Become a Sponsor</h2>
-  <h5>
-    The perfect opportunity to reach PostgreSQL users and developers, or to just give back
-  </h5>
-  <div class="container">
+{% block pageintro %}
     <p>
       We are offering two sponsorship levels this year, Partner, and Supporter. While the
       levels for this year are set, we are always interested in discussing options if you have
@@ -60,9 +56,9 @@
       {% if cfs.open and not cfs.closed %}<a class="button primary" href="{{ sponsor_signup_base }}">Sign up as sponsor!</a>{% endif %}
       <a class="button" href="{{ link("sponsors/") }}">See All Sponsors</a>
     </nav>
-  </div>
-</section>
+{% endblock %}
 
+{% block pagesections %}
 <section>
   <h3>Sponsorship Options</h3>
   <div class="container sponsor-options">
index 2d4325cdb0cf4c5a20722569e44122e542536454..a2d1b196467a06c4d06d1aac9d387942124ec9b8 100644 (file)
@@ -1,6 +1,8 @@
+{% set pagemode = 'page' %}
 {% set show_main_cta = "hide" %}
 {% extends "base.html" %}
-{% block title %}Call for papers{% endblock %}
+
+{% block title %}Call For Papers{% endblock %}
 
 {% block ogptitle -%}<meta property="og:title" content="Call for Papers – {{ confname }} {{ year }}">{%- endblock %}
 {% block ogpurl -%}<meta property="og:url" content="https://{{ year }}.pgday.uk/call-for-papers/">{%- endblock %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Call for Papers">
 {%- endblock %}
 
-{% block content %}
-
-<section class="header">
-  <h2>Call for Papers</h2>
-
+{% block pagetitle %}Call For Papers{% endblock %}
+{% block pagesubtitle %}
   {% if cfp.open and not cfp.closed %}
-    <h6>
-      We are now accepting proposals for {{ confname }} {{ year }}!
-    </h6>
-  {%endif%}
-  <div class="container centred">
-    {% if cfp.open and not cfp.closed %}
-      <p>
-        All selected speakers will get free entry to the conference but do need to
-        register. We do not in general cover travel and accommodations for speakers,
-        but may be able to do so in limited cases. If you require assistance with
-        funding to be able to attend, please make a note of this in the
-        <em>submission notes</em> field.
-      </p>
-      <p>
-        Each session is 45 minutes after which there will be time for questions.
-        All presentations have to be in English.
-      </p>
-      <p>
-        <strong>The submission deadline is {{ cfp.deadline|datetimeformat("%B %-d, %Y") }}
-        at 23:59:59 in {{ location }}</strong>.  Selected speakers will be notified before
-        {{ cfp.notification_date|datetimeformat("%B %-d, %Y") }}.
-      </p>
-      <nav class="button-bar">
-        <a class="button primary" href="{{ syslink("callforpapers") }}">Submit a presentation!</a>
-      </nav>
-    {% elif not cfp.closed %}
-      {%if cfp.opening_date %}
-        <h5>We will be accepting submissions starting {{ cfp.opening_date|datetimeformat("%B %-d, %Y") }}.</h5>
-      {%else%}
-        <h5>The call for papers will open soon. Stay tuned!</h5>
-      {%endif%}
-    {% else %}
-      <h5>The call for papers has ended.</h5>
-    {% endif %}
-  </div>
-</section>
+    We are now accepting proposals for {{ confname }} {{ year }}!
+  {% elif not cfp.closed %}
+    {%if cfp.opening_date %}
+      We will be accepting submissions starting {{ cfp.opening_date|datetimeformat("%B %-d, %Y") }}
+    {%else%}
+      The call for papers will open soon. Stay tuned!
+    {%endif%}
+  {% else %}
+    The call for papers has ended.
+  {% endif %}
+{% endblock %}
+
+{% block pageintro %}
+    <div class="centred">
+      {% if cfp.open and not cfp.closed %}
+        <p>
+          All selected speakers will get free entry to the conference but do need to
+          register. We do not in general cover travel and accommodations for speakers,
+          but may be able to do so in limited cases. If you require assistance with
+          funding to be able to attend, please make a note of this in the
+          <em>submission notes</em> field.
+        </p>
+        <p>
+          Each session is 45 minutes after which there will be time for questions.
+          All presentations have to be in English.
+        </p>
+        <p>
+          <strong>The submission deadline is {{ cfp.deadline|datetimeformat("%B %-d, %Y") }}
+          at 23:59:59 in {{ location }}</strong>.  Selected speakers will be notified before
+          {{ cfp.notification_date|datetimeformat("%B %-d, %Y") }}.
+        </p>
+        <nav class="button-bar">
+          <a class="button primary" href="{{ syslink("callforpapers") }}">Submit a presentation!</a>
+        </nav>
+      {% endif %}
+    </div>
+{% endblock %}
 
+{% block pagesections %}
 <section class="page">
   <h3>Suggested Topics</h3>
   <div class="container">
index 82db2399829fde621f15ce96a849de6a664ea0ef..e9257b96ae72aea626b09a207e76ccfe1e9b5097 100644 (file)
@@ -1,10 +1,12 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
-{% block title %}Code of Conduct{% endblock %}
-{% block content %}
-<!-- Page Content -->
-<section class="page">
-  <h2>Code of Conduct</h2>
-  <div class="container">
+
+{% block title %}Code Of Conduct{% endblock %}
+
+{% block pagetitle %}Code Of Conduct{% endblock %}
+{% block pagesubtitle %}A safe space for everybody attending{% endblock %}
+
+{% block pageintro %}
     <p>
       {{ confname }} {{ year }} is dedicated to providing a safe, harassment-free and enjoyable conference experience for everyone.
       Please be helpful, considerate, friendly, and respectful towards all other participants and venue staff.
@@ -39,9 +41,9 @@
     <p>
       Thank you for your help in making {{ confname }} {{ year }} fun and enjoyable for everyone!
     </p>
-  </div>
-</section>
+{% endblock %}
 
+{% block pagesections %}
 <section class="committe coc">
   <h3>Code of Conduct Committee</h3>
   <div class="container">
index b57af006c8cbb3cf364fd5d757fe6e4b11ab3316..71b3f5d0407fb09660d09e8ed2de345006eef60f 100644 (file)
@@ -1,13 +1,15 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
 
 {% block title %}Contact{% endblock %}
 
-{% block content %}
-<section class="header">
-  <h2>Contact Us</h2>
-  <h4>Keep in touch, we'd love to hear from you!</h4>
-</section>
+{% block pagetitle %}Contact Us{% endblock %}
+{% block pagesubtitle %}Keep in touch, we'd love to hear from you!{% endblock %}
+
+{% block pageintro %}
+{% endblock %}
 
+{% block pagesections %}
 <section>
   <h3>Contact {{ confname }} Organisers</h3>
   <div class="container">
index 4c9e97492b6a877e53882ff0a3a9b05da5ebc211..ebf3951ace6c0582961d1d855535ef174103f81d 100644 (file)
@@ -1,9 +1,11 @@
+{% set pagemode = 'custom' %}
 {% extends "base.html" %}
+
 {% block title %}{{ confname }} {{ year }}{% endblock %}
 {% block titlesuffix %}{% endblock %}
 {% block headline %}{{ confname }} {{ year }}{% endblock %}
 
-{% block content %}
+{% block pageprimary %}
   <section class="hero">
     <div class="container">
     
@@ -44,7 +46,9 @@
       {% endif %}
     </div>
   </section>
+{% endblock %}
 
+{% block pagesections %}
   {% if newsurl %}
   <!-- News -->
   <section class="news">
index ad12f2baed1ca5f12ef467de38e925a096d42bdb..4154e1931b87990f8bb9c5d72a1bb0356cb805fe 100644 (file)
@@ -1,17 +1,17 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
+
 {% block title %}Organisation{% endblock %}
 
-{% block content %}
-<!-- Page Content -->
-<section class="header">
-  <h2>Organisation</h2>
-  <p>
-    {{ confname }} {{ year }} is organised by the following people.
-  </p>
-</section>
+{% block pagetitle %}Organising Committee{% endblock %}
+{% block pagesubtitle %}{{ confname }} {{ year }} is organised by the following people.{% endblock %}
+
+{% block pageintro %}
+{% endblock %}
 
+{% block pagesections %}
 <section class="committe organisers">
-  <h3>Organising Committee</h3>
+  <h3></h3>
   <div class="container">
     <ul class="people">
       {% for m in organisers %}
index 88fc936b60d4cbcccbee503cd5c2c6f4a622a7c3..8fa847356ca1184dfda091aa5fddde7b7ef74e8f 100644 (file)
@@ -1,5 +1,7 @@
+{% set pagemode = 'page' %}
 {% set show_main_cta = "hide" %}
 {% extends "base.html" %}
+
 {% block title %}Registration{% endblock %}
 
 {% block ogptitle -%}<meta property="og:title" content="Registration – {{ confname }} {{ year }}">{%- endblock %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Registration">
 {%- endblock %}
 
-{% block content %}
-<section class="header">
-  <h2>Registration</h2>
-  <div class="container centred">
-    {% if cfr.open %}
-      <p>
-        We are now accepting registrations for {{ confname }} {{ year }}!
-      </p>
-    {% else %}
-      <p>
-        {%if cfr.opening_date %}
-        Registration is scheduled to open on {{ cfr.opening_date|datetimeformat("%A, %B&nbsp;%-d,&nbsp;%Y at&nbsp;%-H:%M&nbsp;%Z") }}!
-        {%else%}
-        Registration will open soon. Stay tuned!
-        {%endif%}
-      </p>
+{% block pagetitle %}Registration{% endblock %}
+{% block pagesubtitle %}
+  {% if cfr.open %}
+    We are now accepting registrations for {{ confname }} {{ year }}!
+  {% else %}
+    {%if cfr.opening_date %}
+    Registration is scheduled to open on {{ cfr.opening_date|datetimeformat("%A, %B&nbsp;%-d,&nbsp;%Y at&nbsp;%-H:%M&nbsp;%Z") }}!
+    {%else%}
+    Registration will open soon. Stay tuned!
     {%endif%}
-  </div>
-</section>
+  {%endif%}
+{% endblock %}
+
+{% block pageintro %}
+{% endblock %}
 
+{% block pagesections %}
 {% if cfr.open %}
 <section>
   <div class="container">
index 80a1541832be5fb98c88287bbc57c5a26a307c51..839a649d32c5513cceee7598700029618b29eb65 100644 (file)
@@ -1,15 +1,19 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
+
 {% block title %}Social Events{% endblock %}
-{% block content %}
-<section class="page">
-  <h2>Social Event</h2>
-  <div class="container">
-    <p>
-      The {{ year }} conference in {{ city }} will not have an official social event,
-      however we encourage attendees to meet with each other for drinks or dinner in
-      local establishments to continue the hallway track after the closing session
-      of the conference.
-    </p>
-  </div>
-</section>
+
+{% block pagetitle %}Social Event{% endblock %}
+{% block pagesubtitle %}A chance for attendees, sponsors and speakers to network{% endblock %}
+
+{% block pageintro %}
+  <p>
+    The {{ year }} conference in {{ city }} will not have an official social event,
+    however we encourage attendees to meet with each other for drinks or dinner in
+    local establishments to continue the hallway track after the closing session
+    of the conference.
+  </p>
+{% endblock %}
+
+{% block pagesections %}
 {% endblock %}
index 7a308c4049e41e6ede5e06361bf1af4b6f7d8480..21c599f35974a1dbc8e24e052aaa23e927af464e 100644 (file)
@@ -1,3 +1,4 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
 
 {% block title %}Sponsor FAQ{% endblock %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Sponsor FAQ">
 {%- endblock %}
 
-{% block content %}
-<section>
-  <h2>Sponsor FAQ</h2>
-  <div class="container">
-    {% for qa in sponsor_faq %}
-      <div class="card">
-        <a name="{{ qa.Q | slugify }}"></a>
-        <h4>{{ qa.Q }}</h4>
-        <p>{{ qa.A }}</p>
-      </div>
-    {% endfor %}
-  </div>
-</section>
+{% block pagetitle %}Sponsor FAQ{% endblock %}
+{% block pagesubtitle %}All you need to know about sponsoring {{ confname }}{% endblock %}
+
+{% block pageintro %}
+  {% for qa in sponsor_faq %}
+    <div class="card">
+      <a name="{{ qa.Q | slugify }}"></a>
+      <h4>{{ qa.Q }}</h4>
+      <p>{{ qa.A }}</p>
+    </div>
+  {% endfor %}
+{% endblock %}
+
+{% block pagesections %}
 {% endblock %}
index dcfc409d3e139ffc6046a9cf780359795b7a8b99..e9b28c59137bdfce84b3dae90e1e8a987309ee3d 100644 (file)
@@ -1,4 +1,6 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
+
 {% block title %}Sponsor Interviews{% endblock %}
 
 {% block ogptitle -%}<meta property="og:title" content="{{ confname }} {{ year }} Sponsor Interviews">{%- endblock %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Sponsor Interviews">
 {%- endblock %}
 
-{% block content %}
-<section class="header">
-  <h2>Sponsor Interviews</h2>
-  <div class="container">
-    <p>
-      Here you can read interviews that {{ confname }} has conducted
-      with its sponsors.
-    </p>
-    <ul>
-    {% for s in sponsors %}
-      {% for c in s.companies if c.visible and c.interview %}
-        <li><a href="{{ link("sponsor-interviews/" + c.name|slugify + "/") }}">{{ c.name }}</a></li>
-      {% endfor %}
+{% block pagetitle %}Sponsor Interviews{% endblock %}
+{% block pagesubtitle %}Find out more about our sponsors{% endblock %}
+
+{% block pageintro %}
+  <p>
+    Here you can read interviews that {{ confname }} has conducted
+    with its sponsors.
+  </p>
+  <ul>
+  {% for s in sponsors %}
+    {% for c in s.companies if c.visible and c.interview %}
+      <li><a href="{{ link("sponsor-interviews/" + c.name|slugify + "/") }}">{{ c.name }}</a></li>
     {% endfor %}
-    </ul>
-  </div>
-</section>
+  {% endfor %}
+  </ul>
+{% endblock %}
 
+{% block pagesections %}
 {% endblock %}
index 2c97942afd37122766eed13d432f41a8a6b6cd69..a2e9d53cebc2fe5b1fa44e184011f21a441d3922 100644 (file)
@@ -1,6 +1,7 @@
+{% set pagemode = 'page' %}
 {% set show_sponsors_panel = "hide" %}
-
 {% extends "base.html" %}
+
 {% block title %}Sponsors{% endblock %}
 
 {% block ogptitle -%}<meta property="og:title" content="{{ confname }} {{ year }} Sponsors">{%- endblock %}
 <meta property="og:image:alt" content="{{ confname }} {{ year }} Sponsors">
 {%- endblock %}
 
-{% block content %}
-<section class="header">
-  <h2>Our Sponsors</h2>
-  <div class="container centred">
-    <p>
+{% block pagetitle %}Our Sponsors{% endblock %}
+{% block pagesubtitle %}{{confname}} would not be possible without our sponsors{% endblock %}
+
+{% block pageintro %}
+    <p class="centred">
       {{ confname }} wouldn't be possible without support from our generous sponsors.
       Thank you all very much!
     </p>
     {% if cfs.open and not cfs.closed %}
-    <p>
+    <p class="centred">
       Interested in joining these companies in their support for {{ confname }}? See our <a href="/become-sponsor/">sponsorship opportunities</a> or <a href="{{ sponsor_signup_base }}">sign up</a> directly on the site!
     </p>
     {% endif %}
-  </div>
-</section>
+{% endblock %}
 
+{% block pagesections %}
 {% for s in sponsors %}
 <section class="sponsors {{ s.level }}">
   <h3 id="{{ s.level | slugify }}">Our {{ s.level }} Sponsors</h3>
index 6c042b32df3994bfde00703adee55ab200b52cc3..f5d3f52d044482f3d1cd5d000a1ec275c12dd143 100644 (file)
@@ -1,3 +1,4 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
 
 {% block title %}Things to do in {{ city }}{% endblock %}
     <meta property="og:image:alt" content="{{ confname }} – Things to Do in {{ city }}">
 {%- endblock %}
 
-{% block content %}
-<section class="header">
-  <h3>Things to do in {{ city }}</h3>
-  <div class="container centred">
-    <p>
-      Like any capital city London is full of places to visit and history to explore.  Far too many to list here, so these are some highlights near to the venue.
-    </p>
-  </div>
-</section>
+{% block pagetitle %}Things to do in {{ city }}{% endblock %}
+{% block pagesubtitle %}Some places to visit while you're in {{ city }}{% endblock %}
+
+{% block pageintro %}
+  <p>
+    Like any capital city London is full of places to visit and history to explore.  Far too many to list here, so these are some highlights near to the venue.
+  </p>
+{% endblock %}
 
+{% block pagesections %}
 <section>
   <h3>Parks And Sights</h3>
   <div class="container">
   </div>
 </section>
 
-{% endblock content %}
+{% endblock %}
index fab2ee5b4b39ac08b33605e58aa60a042c075270..45aadfe71f39b861d585ad8a491f009055f3bcfc 100644 (file)
@@ -1,31 +1,26 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
 
 {% block title %}Venue{% endblock %}
 
-{% block content %}
-<!-- Page Content -->
-<section class="header">
-  <h2>Venue</h2>
-  <h3>{{ venue.name }}</h3>
-  <h6>
-    This year, {{ confname }} will be held at the
-    <a href="{{ venue.url }}" target="_blank">{{ venue.name }}</a>.
-  </h6>
-  <div class="container">
-    <div class="map">
-      <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2482.6603135922787!2d-0.14824902287807415!3d51.519447671815975!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48761ad4178f9133%3A0x658323e5ae6e69d4!2s22%20Duchess%20Mews%2C%20London%20W1G%209DT!5e0!3m2!1sen!2suk!4v1707737297944!5m2!1sen!2suk" width="100%" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
-      <h5>{{ venue.name }}</h5>
-      <p>{{ venue.address }}</p>
-      <p>
-        The venue is located in the west end of London, with easy access from the main terminus stations via the Underground, bus or taxi.  In general the London Underground is the fastest way to travel around central London.
-      </p>
-      <p>
-        The <a href="https://tfl.gov.uk/plan-a-journey/">TFL travel planner</a> will show comprehensive options, using the destination postcode: <em>W1W 6JJ</em>.
-      </p>
-    </div>
+{% block pagetitle %}{{ venue.name }}{% endblock %}
+{% block pagesubtitle %}This year, {{ confname }} will be held at the <a href="{{ venue.url }}" target="_blank">{{ venue.name }}</a>{% endblock %}
+
+{% block pageintro %}
+  <div class="map">
+    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2482.6603135922787!2d-0.14824902287807415!3d51.519447671815975!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48761ad4178f9133%3A0x658323e5ae6e69d4!2s22%20Duchess%20Mews%2C%20London%20W1G%209DT!5e0!3m2!1sen!2suk!4v1707737297944!5m2!1sen!2suk" width="100%" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
+    <h5>{{ venue.name }}</h5>
+    <p>{{ venue.address }}</p>
+    <p>
+      The venue is located in the west end of London, with easy access from the main terminus stations via the Underground, bus or taxi.  In general the London Underground is the fastest way to travel around central London.
+    </p>
+    <p>
+      The <a href="https://tfl.gov.uk/plan-a-journey/">TFL travel planner</a> will show comprehensive options, using the destination postcode: <em>W1W 6JJ</em>.
+    </p>
   </div>
-</section>
-  
+{% endblock %}
+
+{% block pagesections %}
 <section class="travel">
   <h3>Getting To {{ venue.name }}</h3>
   <div class="container">
   </div>
 </section>
 
-{% endblock content %}
+{% endblock %}
index 295849e991af592a846233dab0cd53b1e0443dea..7d5b7fe06f659cf39b06902118854d9ac3c0de1d 100644 (file)
@@ -1,9 +1,12 @@
+{% set pagemode = 'page' %}
 {% extends "base.html" %}
+
 {% block title %}VISA Letter of Invitation{% endblock %}
-{% block content %}
-<section class="page">
-  <h2>Letter of Invitation for VISA</h2>
-  <div class="container">
+
+{% block pagetitle %}Letter of Invitation for VISA{% endblock %}
+{% block pagesubtitle %}We can help if you need a letter of invitation from us{% endblock %}
+
+{% block pageintro %}
     <p>
       In case you need a letter of invitation from us for the purpose of applying for a
       United Kingdom visa, the information below is <strong>required</strong> in order for us
@@ -34,6 +37,7 @@
     <p>
       Please send the information to <a href="mailto:{{ mailto }}">{{ mailto }}</a> for processing.
     </p>
-</div>
-</section>
+{% endblock %}
+
+{% block pagesections %}
 {% endblock %}