:root{--body-b-u-font-family:"Sora", Helvetica;--body-b-u-font-size:20px;--body-b-u-font-style:normal;--body-b-u-font-weight:700;--body-b-u-letter-spacing:0px;--body-b-u-line-height:normal;--body-bold-font-family:"Sora", Helvetica;--body-bold-font-size:20px;--body-bold-font-style:normal;--body-bold-font-weight:600;--body-bold-letter-spacing:0px;--body-bold-line-height:normal;--body-r-u-font-family:"Sora", Helvetica;--body-r-u-font-size:20px;--body-r-u-font-style:normal;--body-r-u-font-weight:400;--body-r-u-letter-spacing:0px;--body-r-u-line-height:normal;--body-regular-font-family:"Sora", Helvetica;--body-regular-font-size:20px;--body-regular-font-style:normal;--body-regular-font-weight:400;--body-regular-letter-spacing:0px;--body-regular-line-height:30px;--body-small-font-family:"Sora", Helvetica;--body-small-font-size:16px;--body-small-font-style:normal;--body-small-font-weight:400;--body-small-letter-spacing:0px;--body-small-line-height:30px;--button-shadow:-2px 2px 0px 0px #000;--colour-base-base:#fff;--colour-brand-body-light:#fffbf4;--colour-brand-primary:#f69;--colour-brand-secondary:#000;--colour-decorative-blue-50:#8af1ff;--colour-decorative-blue-70:#b3f6ff;--colour-decorative-blue-90:#d6faff;--colour-decorative-green-50:#76f7ae;--colour-decorative-green-70:#afface;--colour-decorative-green-90:#cffce3;--colour-decorative-pink-70:#ffc6e7;--colour-decorative-pink-90:#ffe2f3;--colour-decorative-purple-50:#b37dff;--colour-decorative-purple-70:#d9beff;--colour-decorative-purple-90:#f0e5ff;--colour-decorative-yellow-50:#ffe959;--colour-decorative-yellow-70:#fff29b;--colour-decorative-yellow-90:#fff8c5;--colour-feedback-danger-50:#ff5454;--colour-feedback-danger-90:#ffd6d6;--colour-feedback-success-50:#3cd39d;--colour-feedback-warning-50:#ff9f69;--colour-feedback-warning-90:#ffead1;--h1-desktop-font-family:"Sora", Helvetica;--h1-desktop-font-size:80px;--h1-desktop-font-style:normal;--h1-desktop-font-weight:700;--h1-desktop-letter-spacing:1.6px;--h1-desktop-line-height:normal;--h1-mobile-font-family:"Sora", Helvetica;--h1-mobile-font-size:48px;--h1-mobile-font-style:normal;--h1-mobile-font-weight:700;--h1-mobile-letter-spacing:0px;--h1-mobile-line-height:normal;--h2-desktop-font-family:"Sora", Helvetica;--h2-desktop-font-size:72px;--h2-desktop-font-style:normal;--h2-desktop-font-weight:700;--h2-desktop-letter-spacing:0px;--h2-desktop-line-height:normal;--h2-mobile-font-family:"Sora", Helvetica;--h2-mobile-font-size:40px;--h2-mobile-font-style:normal;--h2-mobile-font-weight:700;--h2-mobile-letter-spacing:0px;--h2-mobile-line-height:normal;--h3-desktop-font-family:"Sora", Helvetica;--h3-desktop-font-size:56px;--h3-desktop-font-style:normal;--h3-desktop-font-weight:600;--h3-desktop-letter-spacing:0px;--h3-desktop-line-height:normal;--h3-mobile-font-family:"Sora", Helvetica;--h3-mobile-font-size:32px;--h3-mobile-font-style:normal;--h3-mobile-font-weight:600;--h3-mobile-letter-spacing:0px;--h3-mobile-line-height:normal;--h4-desktop-font-family:"Sora", Helvetica;--h4-desktop-font-size:40px;--h4-desktop-font-style:normal;--h4-desktop-font-weight:600;--h4-desktop-letter-spacing:0px;--h4-desktop-line-height:normal;--h4-mobile-font-family:"Sora", Helvetica;--h4-mobile-font-size:28px;--h4-mobile-font-style:normal;--h4-mobile-font-weight:700;--h4-mobile-letter-spacing:0px;--h4-mobile-line-height:normal;--primitives-color-brand-secondary:#000;--small-button-shadow:-1px 1px 0px 0px #000}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}:root{--body-b-u-font-family:"Sora", Helvetica;--body-b-u-font-size:20px;--body-b-u-font-style:normal;--body-b-u-font-weight:700;--body-b-u-letter-spacing:0px;--body-b-u-line-height:normal;--body-bold-font-family:"Sora", Helvetica;--body-bold-font-size:20px;--body-bold-font-style:normal;--body-bold-font-weight:600;--body-bold-letter-spacing:0px;--body-bold-line-height:normal;--body-r-u-font-family:"Sora", Helvetica;--body-r-u-font-size:20px;--body-r-u-font-style:normal;--body-r-u-font-weight:400;--body-r-u-letter-spacing:0px;--body-r-u-line-height:normal;--body-regular-font-family:"Sora", Helvetica;--body-regular-font-size:20px;--body-regular-font-style:normal;--body-regular-font-weight:400;--body-regular-letter-spacing:0px;--body-regular-line-height:30px;--body-small-font-family:"Sora", Helvetica;--body-small-font-size:16px;--body-small-font-style:normal;--body-small-font-weight:400;--body-small-letter-spacing:0px;--body-small-line-height:30px;--brutal-shadow:-2px 4px 0px 0px #000;--button-shadow:-2px 2px 0px 0px #000;--colour-base-base:#fff;--colour-base-grey-30:#7e7c78;--colour-base-grey-50:#b7b1a6;--colour-base-grey-70:#ddd9d4;--colour-brand-body-light:#fffbf4;--colour-brand-primary:#f69;--colour-brand-secondary:#000;--colour-decorative-blue-50:#8af1ff;--colour-decorative-blue-70:#b3f6ff;--colour-decorative-blue-90:#d6faff;--colour-decorative-green-50:#76f7ae;--colour-decorative-green-70:#afface;--colour-decorative-green-90:#cffce3;--colour-decorative-pink-70:#ffc6e7;--colour-decorative-pink-90:#ffe2f3;--colour-decorative-purple-50:#b37dff;--colour-decorative-purple-70:#d9beff;--colour-decorative-purple-90:#f0e5ff;--colour-decorative-yellow-50:#ffe959;--colour-decorative-yellow-70:#fff29b;--colour-decorative-yellow-90:#fff8c5;--colour-feedback-danger-50:#ff5454;--colour-feedback-danger-90:#ffd6d6;--colour-feedback-success-50:#3cd39d;--colour-feedback-warning-50:#ff9f69;--colour-feedback-warning-90:#ffead1;--h1-desktop-font-family:"Sora", Helvetica;--h1-desktop-font-size:80px;--h1-desktop-font-style:normal;--h1-desktop-font-weight:700;--h1-desktop-letter-spacing:1.6px;--h1-desktop-line-height:normal;--h1-mobile-font-family:"Sora", Helvetica;--h1-mobile-font-size:48px;--h1-mobile-font-style:normal;--h1-mobile-font-weight:700;--h1-mobile-letter-spacing:0px;--h1-mobile-line-height:normal;--h2-desktop-font-family:"Sora", Helvetica;--h2-desktop-font-size:72px;--h2-desktop-font-style:normal;--h2-desktop-font-weight:700;--h2-desktop-letter-spacing:0px;--h2-desktop-line-height:normal;--h2-mobile-font-family:"Sora", Helvetica;--h2-mobile-font-size:40px;--h2-mobile-font-style:normal;--h2-mobile-font-weight:700;--h2-mobile-letter-spacing:0px;--h2-mobile-line-height:normal;--h3-desktop-font-family:"Sora", Helvetica;--h3-desktop-font-size:56px;--h3-desktop-font-style:normal;--h3-desktop-font-weight:600;--h3-desktop-letter-spacing:0px;--h3-desktop-line-height:normal;--h3-mobile-font-family:"Sora", Helvetica;--h3-mobile-font-size:32px;--h3-mobile-font-style:normal;--h3-mobile-font-weight:600;--h3-mobile-letter-spacing:0px;--h3-mobile-line-height:normal;--h4-desktop-font-family:"Sora", Helvetica;--h4-desktop-font-size:40px;--h4-desktop-font-style:normal;--h4-desktop-font-weight:600;--h4-desktop-letter-spacing:0px;--h4-desktop-line-height:normal;--h4-mobile-font-family:"Sora", Helvetica;--h4-mobile-font-size:28px;--h4-mobile-font-style:normal;--h4-mobile-font-weight:700;--h4-mobile-letter-spacing:0px;--h4-mobile-line-height:normal;--primitives-color-brand-secondary:#000;--small-button-shadow:-1px 1px 0px 0px #000;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#fffbf4;place-items:center;min-width:320px;min-height:100vh;margin:0;font-family:Sora,Helvetica,sans-serif;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;font-family:inherit}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}#root{text-align:center;max-width:100%;margin:0 auto;padding:0}.logo{will-change:filter;height:6em;padding:1.5em;transition:filter .3s}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:20s linear infinite logo-spin}}.card{padding:2em}.read-the-docs{color:#888}.landing-page-desktop{background-color:var(--colour-brand-body-light);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:1440px;min-height:100vh;margin:0 auto;padding:2rem;display:flex;position:relative;overflow:hidden}.landing-page-desktop .logo-home{z-index:1;width:80%;max-width:764px;height:auto;margin-bottom:2rem}.landing-page-desktop .explore-our-swing{color:#000;letter-spacing:0;text-align:center;z-index:1;width:90%;max-width:793px;margin-bottom:3rem;font-family:Sora,Helvetica,sans-serif;font-size:clamp(20px,3vw,40px);font-weight:400;line-height:1.4}.landing-page-desktop .text-wrapper{color:#000;font-family:Sora,Helvetica,sans-serif;font-weight:400}.landing-page-desktop .span{font-family:Sora,Helvetica,sans-serif;font-weight:700}.landing-page-desktop .button-primary,.landing-page-desktop .button-secondary-home{cursor:pointer;z-index:1;border-radius:50px;justify-content:center;align-items:center;min-width:200px;max-width:330px;margin:.5rem;padding:1.5rem 3rem;transition:transform .2s,box-shadow .2s;display:inline-flex}.landing-page-desktop .button-primary{background-color:var(--colour-brand-secondary);box-shadow:var(--button-shadow);border:1px solid #000}.landing-page-desktop .button-primary:hover{transform:translateY(-2px);box-shadow:-3px 5px #000}.landing-page-desktop .button-text-primary{color:var(--colour-base-base);letter-spacing:0;text-align:center;font-family:Sora,Helvetica,sans-serif;font-size:clamp(20px,2.5vw,40px);font-weight:600;line-height:1}.landing-page-desktop .button-secondary-home{background-color:var(--colour-base-base);box-shadow:var(--brutal-shadow);border:2px solid #000}.landing-page-desktop .button-secondary-home:hover{transform:translateY(-2px);box-shadow:-3px 6px #000}.landing-page-desktop .button-text-secondary{color:var(--colour-brand-secondary);letter-spacing:0;text-align:center;font-family:Sora,Helvetica,sans-serif;font-size:clamp(20px,2.5vw,40px);font-weight:600;line-height:1}.landing-page-desktop .shape-blue{z-index:0;width:233px;height:229px;position:absolute;top:44px;left:97px}.landing-page-desktop .shape-green{z-index:0;width:23.48%;max-width:338px;height:auto;position:absolute;bottom:0;left:0}.landing-page-desktop .shape-yellow{z-index:0;width:297px;height:286px;position:absolute;top:0;right:0}.landing-page-desktop .shape-purple{z-index:0;width:297px;height:306px;position:absolute;bottom:0;right:0}@media (max-width:1024px){.landing-page-desktop .shape-blue,.landing-page-desktop .shape-yellow,.landing-page-desktop .shape-green,.landing-page-desktop .shape-purple{width:150px;height:auto}}@media (max-width:768px){.landing-page-desktop .shape-blue,.landing-page-desktop .shape-yellow{width:100px}.landing-page-desktop .shape-green,.landing-page-desktop .shape-purple{width:120px}.landing-page-desktop .button-primary,.landing-page-desktop .button-secondary-home{min-width:160px;padding:1rem 2rem}}.auth-form-container{box-sizing:border-box;background-color:#fff;border:2px solid #000;border-radius:8px;width:100%;max-width:524px;margin:0 auto;padding:24px;box-shadow:-2px 4px #000}.auth-logo{width:100%;height:auto;margin-bottom:37px;display:block}.auth-title{color:#000;text-align:center;margin-bottom:37px;font-family:Sora,Helvetica,sans-serif;font-size:40px;font-weight:600}.auth-label{color:#000;text-align:left;margin-bottom:.5rem;font-family:Sora,Helvetica,sans-serif;font-size:1rem;font-weight:400;display:block}.auth-input-wrapper{width:100%;position:relative}.auth-input{box-sizing:border-box;background-color:#fff;border:2px solid #000;border-radius:8px;outline:none;width:100%;min-height:50px;padding:.75rem 1rem;font-family:Sora,Helvetica,sans-serif;font-size:1rem;transition:border-color .2s}.auth-input.error{border-color:#ff5454}.auth-input.error-empty{padding-left:2.5rem}.auth-input.error-invalid{padding-right:2.5rem}.auth-error-text{color:#000;text-align:left;margin-top:.5rem;font-family:Sora,Helvetica,sans-serif;font-size:12px;font-weight:600}.auth-icon-left{justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.auth-icon-right{justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-field-group{margin-bottom:24px}.auth-field-group.small-margin{margin-bottom:8px}.auth-message{text-align:center;border-radius:8px;margin-bottom:1.5rem;padding:1rem;font-size:.95rem}.auth-message.error{color:#d63031;background-color:#ffe6e6}.auth-message.success{color:#00b894;background-color:#e6ffe6}.auth-divider{align-items:center;gap:16px;margin:24px 0;display:flex}.auth-divider-line{background-color:#000;flex:1;height:1px}.auth-divider-text{color:#000;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:400}.auth-submit-btn{background-color:var(--colour-brand-secondary,#000);width:100%;color:var(--colour-base-base,#fff);cursor:pointer;border:1px solid #000;border-radius:50px;justify-content:center;align-items:center;padding:17px 0;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:-2px 2px #000}.auth-submit-btn:hover{transform:translateY(-2px);box-shadow:-3px 5px #000}.auth-submit-btn:disabled{cursor:not-allowed;opacity:.7;background-color:#666}.auth-submit-btn:disabled:hover{transform:none;box-shadow:-2px 2px #000}.auth-link{color:#f69;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-footer-text{text-align:center;color:#000;margin-top:37px;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:400;line-height:20px}.auth-forgot-password{text-align:right;margin-bottom:24px}.social-buttons-container{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.social-btn{cursor:pointer;color:#000;background-color:#fff;border:1px solid #000;border-radius:20px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:40px;padding:10px 16px;font-family:Sora,Helvetica,sans-serif;font-size:14px;font-weight:400;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:-1px 1px #000}.social-btn:hover{transform:translateY(-1px);box-shadow:-2px 2px #000}.auth-form-container.with-gap{flex-direction:column;gap:37px;display:flex}.auth-logo.no-margin{margin-bottom:0}.auth-title.no-margin{margin:0}.auth-description{color:#000;text-align:center;margin:0;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:400;line-height:30px}.auth-form{flex-direction:column;gap:37px;display:flex}.auth-back-link{text-align:right}.auth-icon-center{justify-content:center;align-items:center;display:flex}.auth-name-grid{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.auth-required{color:#ff5454}.auth-password-requirements{text-align:left;color:#000;font-family:Sora,Helvetica,sans-serif;font-size:20px;line-height:30px}.auth-password-requirements.small{font-size:16px;line-height:24px}.auth-password-requirements ul{margin:.5rem 0 0;padding-left:1.5rem;list-style-type:disc}.auth-password-requirements li{font-family:Sora,Helvetica,sans-serif}.auth-password-requirements li.invalid{color:#ff5454;font-weight:600;text-decoration:underline}.auth-code-container{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:37px;display:flex}.auth-code-container.has-error{margin-bottom:16px}.auth-code-input{text-align:center;caret-color:#000;background-color:#fff;border:2px solid #000;border-radius:4px;outline:none;width:60px;height:60px;font-family:Sora,Helvetica,sans-serif;font-size:24px;font-weight:600;transition:border-color .2s}.auth-code-input.error{border-color:#ff5454}.auth-verify-error{color:#ff5454;text-align:left;margin:0 0 37px;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-style:italic;font-weight:600}.auth-footer-text.no-margin{margin:0}.dashboard-layout{background-color:var(--colour-brand-body-light,#fffbf4);flex-direction:column;min-height:100vh;font-family:Sora,Helvetica,sans-serif;display:flex}.dashboard-navbar{z-index:100;box-sizing:border-box;background-color:#fff5f8;justify-content:space-between;align-items:center;height:80px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo img{width:auto;height:40px}.navbar-user{position:relative}.user-avatar-btn{cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:4px;padding:0;display:flex}.user-avatar-btn:focus,.user-avatar-btn:focus-visible{box-shadow:none;outline:none}.avatar-container{background-color:#fff;border:1px solid #000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;display:flex;overflow:hidden}.avatar-container img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{background-color:var(--colour-brand-primary,#f69);color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:20px;font-weight:600;display:flex}.user-dropdown{z-index:101;background-color:#fff;border:1px solid #000;border-radius:8px;min-width:224px;margin-top:10px;padding:8px;position:absolute;top:100%;right:0}.dropdown-item{color:#000;cursor:pointer;text-align:left;box-sizing:border-box;background:0 0;border:none;border-radius:4px;align-items:center;gap:10px;width:100%;padding:16px;font-family:Sora,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:20px;text-decoration:none;transition:background-color .2s;display:flex}.dropdown-item:hover{background-color:var(--colour-decorative-pink-90)}.dropdown-item.logout{color:var(--colour-feedback-danger-50,#ff5454)}.dashboard-container{min-height:calc(100vh - 80px);margin-top:80px;display:flex}.dashboard-sidebar{background-color:var(--colour-decorative-purple-90,#f0e5ff);box-sizing:border-box;flex-direction:column;justify-content:space-between;width:260px;padding:40px 24px 24px;display:flex;position:fixed;top:80px;bottom:0;left:0;overflow-y:auto}.sidebar-nav{flex-direction:column;gap:16px;display:flex}.sidebar-nav-item{color:#000;border-radius:8px;align-items:center;gap:20px;padding:8px;font-size:20px;font-weight:400;line-height:30px;text-decoration:none;transition:background-color .2s,font-weight .2s;display:flex}.sidebar-nav-item span{text-align:left;flex:1}.sidebar-nav-item:hover{background-color:var(--colour-decorative-pink-70)}.sidebar-nav-item.active{background-color:#00000014;font-weight:600}.nav-icon{flex-shrink:0;width:32px;height:32px}.sidebar-footer{margin-top:auto}.sidebar-nav-item.settings{gap:33px}.sidebar-nav-item.settings .settings-icon{width:40px;height:40px}.dashboard-content{box-sizing:border-box;flex:1;min-height:calc(100vh - 80px);margin-left:260px;padding:clamp(16px,4vw,48px)}@media (max-width:1024px){.dashboard-sidebar{width:220px;padding:32px 16px 16px}.dashboard-content{margin-left:220px;padding:clamp(12px,3vw,32px)}.sidebar-nav-item{gap:16px;font-size:18px}.nav-icon{width:28px;height:28px}.sidebar-nav-item.settings .settings-icon{width:36px;height:36px}}.desktop-only{display:flex}.mobile-only{display:none}.mobile-menu-btn{cursor:pointer;background-color:#fff;border:2px solid #000;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;padding:0}.mobile-menu-btn:focus{outline:none}.mobile-menu-overlay{background-color:var(--colour-decorative-purple-90,#f0e5ff);z-index:99;box-sizing:border-box;flex-direction:column;justify-content:space-between;padding:24px;display:none;position:fixed;inset:80px 0 0;overflow-y:auto}.mobile-menu-overlay.open{display:flex}.mobile-nav{flex-direction:column;gap:24px;display:flex}.mobile-nav-item{color:#000;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:20px;width:100%;padding:8px;font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:400;line-height:30px;text-decoration:none;display:flex}.mobile-nav-item.active{font-weight:600}.mobile-nav-item.logout{color:var(--colour-feedback-danger-50,#ff5454)}.mobile-nav-item .nav-icon{width:32px;height:32px}.mobile-menu-footer{flex-direction:column;gap:16px;margin-top:auto;padding-top:24px;display:flex}.mobile-user-info{color:#000;align-items:center;gap:16px;padding:8px;text-decoration:none;display:flex}.mobile-user-info .avatar-container{width:50px;height:50px}.mobile-user-info .user-name{font-family:Sora,Helvetica,sans-serif;font-size:20px;font-weight:400}@media (max-width:768px){.desktop-only{display:none}.mobile-only{display:flex}.dashboard-navbar{height:80px;padding:0 24px}.navbar-logo img{height:40px}.dashboard-container{margin-top:80px}.dashboard-sidebar{display:none}.dashboard-content{min-height:calc(100vh - 80px);margin-left:0;padding:24px}.mobile-menu-overlay{top:80px}}@media (max-width:480px){.dashboard-navbar{padding:0 16px}.dashboard-content{padding:16px}.mobile-nav-item{gap:16px;font-size:18px}.mobile-nav-item .nav-icon{width:28px;height:28px}.mobile-user-info .avatar-container{width:40px;height:40px}.mobile-user-info .user-name{font-size:18px}}.welcome-container{background:var(--body-light,#fffbf4);text-align:left;border-radius:16px;max-width:900px;margin:2rem auto;padding:3rem 2rem}.welcome-title{color:#111;margin-bottom:2rem;font-family:Sora,sans-serif;font-size:3rem;font-weight:700}.welcome-body{color:#222;font-family:Sora,sans-serif;font-size:1.25rem;line-height:1.7}.welcome-link{color:var(--primary,#f69);font-weight:600;text-decoration:underline}:root{--body-regular-font-family:"Sora", Helvetica, sans-serif;--body-regular-font-size:20px;--body-regular-line-height:30px;--body-small-font-family:"Sora", Helvetica, sans-serif;--body-small-font-size:16px;--body-small-line-height:30px;--body-bold-font-family:"Sora", Helvetica, sans-serif;--body-bold-font-size:20px;--body-bold-font-weight:600;--body-bold-line-height:normal;--h2-desktop-font-family:"Sora", Helvetica, sans-serif;--h2-desktop-font-size:72px;--h2-desktop-font-weight:700;--h2-desktop-line-height:normal;--colour-brand-primary:#f69;--colour-brand-secondary:#000;--colour-base-base:#fff;--colour-decorative-pink-90:#ffe2f3;--colour-feedback-danger-90:#ffd6d6;--colour-feedback-warning-90:#ffead1;--brutal-shadow:-2px 4px 0px 0px #000;--button-shadow:-2px 2px 0px 0px #000}.calendar-page{max-width:1200px;margin:0 auto;padding:40px;position:relative}.calendar-title{font-family:var(--h2-desktop-font-family);font-size:var(--h2-desktop-font-size);font-weight:var(--h2-desktop-font-weight);color:var(--colour-brand-secondary);text-align:left;margin:0 0 40px}.category-filter-vertical{gap:20px;margin-bottom:40px;display:flex;position:relative}.category-card{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:16px;transition:all .2s;display:flex}.category-icon-wrapper{background-color:#0000;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;width:80px;height:80px;transition:all .2s;display:flex}.category-card .category-icon{object-fit:contain;width:60px;height:60px}.category-label{font-family:var(--body-regular-font-family);font-size:var(--body-regular-font-size);color:var(--colour-brand-secondary);text-align:center}.category-card.active .category-icon-wrapper{background-color:var(--colour-decorative-pink-90);border:2px solid var(--colour-brand-primary)}.category-card.active .category-label{color:var(--colour-brand-primary);font-weight:600}.category-card:hover .category-icon-wrapper{background-color:#ffe2f399}.filter-row{flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:20px;display:flex}.location-filter-inline{background-color:var(--colour-decorative-pink-90);border-radius:50px;align-items:center;gap:10px;width:fit-content;padding:9px 33px;display:inline-flex}.location-filter-inline svg{width:32px;height:32px;color:var(--colour-brand-secondary)}.location-filter-inline span{font-family:var(--body-regular-font-family);font-size:var(--body-regular-font-size);color:var(--colour-brand-secondary);white-space:nowrap}.filter-controls{flex-wrap:wrap;align-items:center;gap:24px;display:inline-flex}.date-dropdown{position:relative}.date-dropdown-trigger{background-color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);min-width:110px;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:8px 12px;display:inline-flex}.date-dropdown-trigger.open{border-color:var(--colour-brand-primary);color:var(--colour-brand-primary)}.date-dropdown-caret{font-size:16px;line-height:1;transition:transform .2s}.date-dropdown-trigger.open .date-dropdown-caret{transform:rotate(180deg)}.date-dropdown-panel{border:2px solid var(--colour-brand-secondary);width:280px;box-shadow:var(--brutal-shadow);z-index:20;box-sizing:border-box;background-color:#fff;border-radius:12px;padding:16px;position:absolute;top:calc(100% + 10px);left:0;overflow:hidden}.date-dropdown-label{margin-bottom:8px;font-family:Sora,Helvetica,sans-serif;font-size:14px;font-weight:600;display:block}.date-dropdown-input{border:1px solid var(--colour-brand-secondary);background-color:var(--colour-base-base);box-sizing:border-box;border-radius:8px;width:100%;max-width:100%;height:42px;padding:8px 10px;font-family:Sora,Helvetica,sans-serif;font-size:14px;display:block}.date-dropdown-actions{gap:10px;margin-top:14px;display:flex}.date-dropdown-apply,.date-dropdown-clear{border:1px solid var(--colour-brand-secondary);cursor:pointer;border-radius:10px;padding:8px 16px;font-family:Sora,Helvetica,sans-serif;font-size:16px}.date-dropdown-apply{background-color:var(--colour-brand-primary);font-weight:600}.date-dropdown-clear{background-color:var(--colour-base-base)}.organiser-dropdown{position:relative}.organiser-dropdown-trigger{background-color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);min-width:180px;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:8px 12px;display:inline-flex}.organiser-dropdown-trigger.open{border-color:var(--colour-brand-primary)}.organiser-dropdown-caret{font-size:16px;line-height:1;transition:transform .2s}.organiser-dropdown-trigger.open .organiser-dropdown-caret{transform:rotate(180deg)}.organiser-dropdown-panel{border:2px solid var(--colour-brand-secondary);width:280px;box-shadow:var(--brutal-shadow);z-index:21;box-sizing:border-box;background-color:#fff;border-radius:12px;padding:12px;position:absolute;top:calc(100% + 10px);left:0}.organiser-dropdown-options{flex-direction:column;gap:8px;display:flex}.organiser-option{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.organiser-option.active{background-color:var(--colour-decorative-pink-90)}.organiser-option input{appearance:none;background-color:var(--colour-base-base);cursor:pointer;border:2px solid #000;border-radius:2px;width:16px;height:16px;margin:0;display:inline-block;position:relative}.organiser-option input:checked{background-color:#b37dff}.organiser-option input:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.organiser-option span{font-family:Sora,Helvetica,sans-serif;font-size:16px;line-height:1.2}.organiser-dropdown-actions{gap:10px;margin-top:12px;display:flex}.organiser-dropdown-apply,.organiser-dropdown-clear{border:1px solid var(--colour-brand-secondary);cursor:pointer;border-radius:10px;padding:8px 14px;font-family:Sora,Helvetica,sans-serif;font-size:16px}.organiser-dropdown-apply{background-color:var(--colour-brand-primary);font-weight:600}.organiser-dropdown-clear{background-color:var(--colour-base-base)}.genre-dropdown{position:relative}.genre-dropdown-trigger{background-color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);min-width:140px;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:8px 12px;display:inline-flex}.genre-dropdown-trigger.open{border-color:var(--colour-brand-primary)}.genre-dropdown-caret{font-size:16px;line-height:1;transition:transform .2s}.genre-dropdown-trigger.open .genre-dropdown-caret{transform:rotate(180deg)}.genre-dropdown-panel{border:2px solid var(--colour-brand-secondary);width:280px;box-shadow:var(--brutal-shadow);z-index:22;box-sizing:border-box;background-color:#fff;border-radius:12px;padding:12px;position:absolute;top:calc(100% + 10px);left:0}.genre-dropdown-options{flex-direction:column;gap:8px;display:flex}.genre-option{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.genre-option.active{background-color:var(--colour-decorative-pink-90)}.genre-option input{appearance:none;background-color:var(--colour-base-base);cursor:pointer;border:2px solid #000;border-radius:2px;width:16px;height:16px;margin:0;display:inline-block;position:relative}.genre-option input:checked{background-color:#b37dff}.genre-option input:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.genre-option span{font-family:Sora,Helvetica,sans-serif;font-size:16px;line-height:1.2}.genre-dropdown-actions{gap:10px;margin-top:12px;display:flex}.genre-dropdown-apply,.genre-dropdown-clear{border:1px solid var(--colour-brand-secondary);cursor:pointer;border-radius:10px;padding:8px 14px;font-family:Sora,Helvetica,sans-serif;font-size:16px}.genre-dropdown-apply{background-color:var(--colour-brand-primary);font-weight:600}.genre-dropdown-clear{background-color:var(--colour-base-base)}.music-format-dropdown{position:relative}.music-format-dropdown-trigger{background-color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);min-width:150px;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:8px 12px;display:inline-flex}.music-format-dropdown-trigger.open{border-color:var(--colour-brand-primary)}.music-format-dropdown-caret{font-size:16px;line-height:1;transition:transform .2s}.music-format-dropdown-trigger.open .music-format-dropdown-caret{transform:rotate(180deg)}.music-format-dropdown-panel{border:2px solid var(--colour-brand-secondary);width:230px;box-shadow:var(--brutal-shadow);z-index:23;box-sizing:border-box;background-color:#fff;border-radius:12px;padding:12px;position:absolute;top:calc(100% + 10px);left:0}.music-format-dropdown-options{flex-direction:column;gap:8px;display:flex}.music-format-option{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.music-format-option.active{background-color:var(--colour-decorative-pink-90)}.music-format-option input{appearance:none;background-color:var(--colour-base-base);cursor:pointer;border:2px solid #000;border-radius:50%;width:16px;height:16px;margin:0;position:relative}.music-format-option input:checked{background-color:#b37dff}.music-format-option input:checked:after{content:"";background-color:#fff;border-radius:50%;width:6px;height:6px;position:absolute;top:3px;left:3px}.music-format-option span{font-family:Sora,Helvetica,sans-serif;font-size:16px;line-height:1.2}.music-format-dropdown-actions{gap:10px;margin-top:12px;display:flex}.music-format-dropdown-apply,.music-format-dropdown-clear{border:1px solid var(--colour-brand-secondary);cursor:pointer;border-radius:10px;padding:8px 14px;font-family:Sora,Helvetica,sans-serif;font-size:16px}.music-format-dropdown-apply{background-color:var(--colour-brand-primary);font-weight:600}.music-format-dropdown-clear{background-color:var(--colour-base-base)}.btn-add-event{background-color:var(--colour-brand-primary);color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);cursor:pointer;box-shadow:var(--button-shadow);text-align:left;border-radius:8px;justify-content:center;align-items:center;gap:19px;width:fit-content;margin:0 0 30px;padding:14px 24px;font-family:Sora-SemiBold,Helvetica,sans-serif;font-size:16px;font-weight:600;transition:background-color .2s;display:flex}.btn-add-event:hover{background-color:#ff5099}.btn-add-event svg{width:20px;height:20px;color:var(--colour-base-base)}.filter-controls>div{flex:none}.btn-apply-filters{background-color:var(--colour-brand-secondary);color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);cursor:pointer;box-shadow:var(--button-shadow);border-radius:8px;padding:14px 8px;font-family:Sora-SemiBold,Helvetica,sans-serif;font-size:16px;font-weight:600;transition:background-color .2s}.btn-apply-filters:hover{background-color:#333}.events-grid{grid-template-columns:repeat(auto-fill,minmax(324px,1fr));gap:24px;margin-top:40px;display:grid}.event-card{background-color:var(--colour-base-base);border:1px solid var(--colour-brand-secondary);box-shadow:var(--brutal-shadow);border-radius:16px;flex-direction:column;min-height:519px;display:flex;position:relative;overflow:hidden}.event-image-wrapper{background-color:var(--colour-decorative-pink-90);border:1px solid var(--colour-brand-secondary);border-bottom:none;border-radius:16px 16px 0 0;justify-content:center;align-items:center;height:168px;display:flex;overflow:hidden}.event-image{object-fit:cover;width:100%;height:100%}.event-content{text-align:left;flex-direction:column;flex:1;padding:24px;display:flex;position:relative}.event-content p,.event-content a,.event-content span,.event-content .attendees-text{text-align:left}.event-date{font-family:var(--body-small-font-family);font-size:var(--body-small-font-size);color:var(--colour-brand-primary);white-space:nowrap;margin:0 0 16px}.event-organizer{color:var(--colour-brand-secondary);margin:0 0 12px;font-family:Sora-Regular,Helvetica,sans-serif;font-size:16px;line-height:21px}.event-organizer span:first-child{color:var(--colour-brand-secondary)}.organizer-name{color:var(--colour-brand-secondary);font-weight:700}.event-title{font-family:var(--body-bold-font-family);font-size:var(--body-bold-font-size);font-weight:var(--body-bold-font-weight);color:var(--colour-brand-secondary);line-height:var(--body-bold-line-height);margin:0 0 20px}.event-attendees{align-items:center;gap:12px;margin-bottom:30px;display:flex}.attendees-text{font-family:var(--body-small-font-family);font-size:var(--body-small-font-size);color:var(--colour-brand-secondary);white-space:nowrap}.avatar-stack{align-items:center;gap:-12px;display:flex}.avatar{border:2px solid #fff;border-radius:50%;width:30px;height:30px;margin-left:-12px}.avatar:first-child{margin-left:0}.event-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;display:flex}.btn-going{background-color:var(--colour-base-base);color:var(--colour-brand-secondary);border:1px solid var(--colour-brand-secondary);cursor:pointer;box-shadow:var(--button-shadow);border-radius:50px;align-items:center;gap:10px;padding:8px 24px;font-family:Sora-SemiBold,Helvetica,sans-serif;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.btn-going:hover{background-color:var(--colour-brand-primary);color:var(--colour-base-base)}.btn-going svg{color:currentColor;width:20px;height:20px}.link-view-event{color:var(--colour-brand-secondary);cursor:pointer;font-family:Sora-SemiBold,Helvetica,sans-serif;font-size:16px;font-weight:600;text-decoration:underline;transition:opacity .2s}.link-view-event:hover{opacity:.7}.btn-edit,.btn-delete{border:1px solid var(--colour-brand-secondary);cursor:pointer;box-shadow:var(--button-shadow);border-radius:50px;align-items:center;gap:10px;height:34px;padding:8px 24px;font-family:Sora-SemiBold,Helvetica,sans-serif;font-size:16px;font-weight:600;transition:all .2s;display:inline-flex}.btn-edit{background-color:var(--colour-feedback-warning-90);color:var(--colour-brand-secondary)}.btn-edit:hover{background-color:#fd9}.btn-delete{background-color:var(--colour-feedback-danger-90);color:var(--colour-brand-secondary)}.btn-delete:hover{background-color:#fcc}.btn-edit svg,.btn-delete svg{color:currentColor;width:24px;height:24px}@media (max-width:768px){.calendar-page{padding:20px}.calendar-title{margin-bottom:20px;font-size:48px}.category-filter-vertical{flex-wrap:wrap;gap:12px}.category-card{padding:12px}.category-icon-wrapper{width:70px;height:70px}.category-card .category-icon{width:50px;height:50px}.filter-row{flex-direction:column;align-items:flex-start}.location-filter-inline{justify-content:flex-start;width:100%}.events-grid{grid-template-columns:1fr}.filter-controls{flex-direction:column;width:100%}.filter-controls>div,.filter-controls button{width:100%}}
