@charset "UTF-8";:root{--orange: #ff4f40;--indigo: #635dff;--white: #fff;--light-aluminium: #eaecee;--aluminium: #bdc4cf;--dark-aluminium: #2a2e35;--black: #000000;--yellow: #ebca40;--mandarine: #ff7f38;--pink: #ff44dd;--blue: #3885ff;--aqua: #3ec6eb;--emerald: #1bc99f;--yellow-mandarine-gradient: linear-gradient(153.07deg, var(--yellow) -2.47%, var(--mandarine) 102.78%);--mandarine-orange-gradient: linear-gradient(153.07deg, var(--mandarine) -2.47%, var(--orange) 102.78%);--pink-yellow-gradient: linear-gradient(153.07deg, var(--pink) -2.47%, var(--yellow) 102.78%);--pink-indigo-gradient: linear-gradient(153.07deg, var(--pink) -2.47%, var(--indigo) 102.78%);--indigo-aqua-gradient: linear-gradient(153.07deg, var(--indigo) -2.47%, var(--aqua) 102.78%);--blue-aqua-gradient: linear-gradient(153.07deg, var(--blue) -2.47%, var(--aqua) 102.78%);--aqua-emerald-gradient: linear-gradient(153.07deg, var(--aqua) -2.47%, var(--emerald) 102.78%);--emerald-yellow-gradient: linear-gradient(153.07deg, var(--emerald) -2.47%, var(--yellow) 102.78%);--font-primary: "Inter", sans-serif;--font-secondary: "Space Grotesk", sans-serif;--font-mono: "Fira Code", monospace}*{box-sizing:border-box}html{font-size:10px;text-rendering:geometricPrecision;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{height:100%;width:100%;margin:0;padding:0}body{background-color:var(--black);color:var(--white);font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:scroll}h1,h2,h3,h4,h5,h6{font-family:var(--font-secondary);font-weight:600;color:#000000db}h1,h2,h3{margin-top:3.2rem;margin-bottom:1.6rem}h4,h5,h6{margin-top:1.6rem;margin-bottom:1.6rem}h1{font-size:3.2rem}h2{font-size:2.8rem}h3{font-size:2.4rem}h4{font-size:2rem}h5{font-size:1.6rem}h6{font-size:1.4rem}p{margin:0 0 1.6rem}strong{font-weight:500}small{font-size:1.2rem}body,button,input,select,textarea{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:var(--white);text-decoration:none}figure{margin:0}img{vertical-align:middle;-webkit-user-select:none;user-select:none}code,pre{font-family:var(--font-mono),source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;width:100%}code{color:var(--emerald)}@media only screen and (max-width:640px){.mobile-scroll-lock{overflow:hidden}}.page-layout{display:flex;flex-direction:column;align-items:center;height:100%;width:100%}.page-layout__content{flex:1;flex-basis:auto;flex-shrink:0;display:flex;flex-direction:column;margin-top:8rem;max-width:120rem;width:100%}@media only screen and (max-width:640px){.page-layout__content{margin-top:6.4rem}}.content-layout{flex:1;display:flex;flex-direction:column;flex-shrink:0;width:100%;min-height:640px;padding:48px}.content__title,.content__section{margin-top:0;color:var(--white)}.content__body{font-size:1.6rem;line-height:2.4rem}#page-description{display:flex;flex-direction:column}#page-description span{margin-bottom:1.6rem}#page-description span:last-child{margin-bottom:0}@media only screen and (max-width:768px){.content-layout{padding:2.4rem}}@media only screen and (max-width:480px){.content-layout{padding:1.6rem}.content__title{font-size:2.4rem}}.nav-bar__container{position:fixed;display:flex;justify-content:center;flex-shrink:0;width:100%;box-shadow:#5a5f66 0 -1.5px inset;z-index:300;background-color:var(--black)}.nav-bar{position:relative;flex:1;display:flex;align-items:center;flex-shrink:0;height:80px;max-width:1200px;padding:0 24px;margin:0}.nav-bar__brand{display:flex;align-items:center;height:100%;margin-right:64px}.nav-bar__link{display:flex;align-items:center;height:100%}.nav-bar__logo{height:3.2rem}.nav-bar__brand-name{color:var(--white);font-family:var(--font-secondary);font-size:1.6rem;font-weight:600;margin-left:1rem;letter-spacing:.02em}.nav-bar__page-title{position:absolute;left:50%;transform:translate(-50%);color:var(--white);font-family:var(--font-primary);font-size:1.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40rem;pointer-events:none}@media only screen and (max-width:640px){.nav-bar__page-title{display:none}}@media only screen and (max-width:400px){.nav-bar__brand-name{display:none}}.nav-bar__tabs{flex:1;display:flex;align-items:center;justify-content:flex-end}.nav-bar__tab{display:flex;flex-direction:row;justify-content:center;margin-right:12px;margin-bottom:6px;font-weight:500;font-size:16px;line-height:16px}.nav-bar__tab--active{text-decoration-line:underline;text-decoration-style:solid;text-decoration-color:var(--indigo);text-decoration-thickness:4px;text-underline-offset:8px}.nav-bar__tab:hover{color:var(--white)}.nav-bar__buttons{display:flex;margin-left:24px}@media only screen and (max-width:640px){.nav-bar__container{display:none}}.mobile-nav-bar__container{position:fixed;display:none;justify-content:center;flex-shrink:0;width:100%;box-shadow:#5a5f66 0 -1.5px inset;z-index:300;background-color:var(--black)}.mobile-nav-bar{position:relative;flex:1;display:flex;align-items:center;flex-shrink:0;height:6.4rem;max-width:1200px;padding:.8rem 1.6rem;margin:0}.mobile-nav-bar__brand{flex:1;display:flex;align-items:center;height:100%;margin-right:1.6rem}.mobile-nav-bar__link{display:flex;align-items:center;height:100%}.mobile-nav-bar__logo{height:2.4rem}.mobile-nav-bar__menu{width:50vw;height:fit-content;position:fixed;right:0;top:6.4rem;background-color:var(--black);border:1px solid white;z-index:300}.mobile-nav-bar__toggle{margin-left:2.4rem;font-size:3.6rem;cursor:pointer;-webkit-user-select:none;user-select:none}.mobile-nav-bar__tabs{flex:1;display:flex;align-items:flex-end;justify-content:flex-end;flex-direction:column;width:100%}.mobile-nav-bar__tab{display:flex;flex-direction:column;font-weight:500;font-size:2rem;line-height:32px;padding:3.2rem 2.4rem;background-color:var(--black);color:var(--white);width:100%;box-shadow:#5a5f66 0 -1.5px inset}.mobile-nav-bar__tab:first-child{margin-top:7.2rem}.mobile-nav-bar__tab--active{text-decoration-line:underline;text-decoration-style:solid;text-decoration-color:var(--indigo);text-decoration-thickness:4px;text-underline-offset:8px}.mobile-nav-bar__tab:hover{color:var(--white)}.mobile-nav-bar__buttons{display:flex;justify-content:center;padding:3.2rem;background-color:var(--black)}.mobile-nav-bar__menu--closed{display:none}@media only screen and (max-width:640px){.mobile-nav-bar__container{display:flex}.mobile-nav-bar__menu .nav-bar__buttons{flex-direction:column;margin-left:0;width:100%}.mobile-nav-bar__menu .button__login,.mobile-nav-bar__menu .button__logout,.mobile-nav-bar__menu .button__sign-up{width:100%;margin-right:0;margin-bottom:8px}.mobile-nav-bar__menu .button__login:last-child,.mobile-nav-bar__menu .button__logout:last-child,.mobile-nav-bar__menu .button__sign-up:last-child{margin-bottom:0}}.button__login{min-width:8.4rem;border:.1rem solid var(--indigo);color:var(--white);background:var(--indigo);font-size:1.6rem;margin-right:1.6rem;font-family:var(--font-primary);font-style:normal;font-weight:600;line-height:3.2rem;padding:.8rem 1.2rem;border-radius:.8rem;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .3s ease-out,color .3s ease-out}.button__login:hover{background:#635dffd9}.button__logout{border:.1rem solid var(--aluminium);color:var(--aluminium);background:transparent;font-size:1.4rem;margin-right:1.6rem;font-family:var(--font-primary);font-style:normal;font-weight:500;line-height:2.4rem;padding:.4rem 1rem;border-radius:.8rem;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .3s ease-out,color .3s ease-out}.button__logout:hover{border-color:var(--white);color:var(--white)}.button__sign-up{min-width:8.4rem;border:.1rem solid var(--white);color:var(--white);background-color:transparent;font-size:1.6rem;margin-right:1.6rem;font-family:var(--font-primary);font-style:normal;font-weight:500;line-height:3.2rem;padding:.8rem 1.2rem;border-radius:.8rem;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.button__login:last-child,.button__logout:last-child,.button__sign-up:last-child{margin-right:0}@media only screen and (max-width:640px){.mobile-nav-bar__menu .button__login,.mobile-nav-bar__menu .button__sign-up{padding:8px 0;font-size:14px;line-height:20px;min-width:60px}}.hero-banner{display:flex;flex-direction:column;align-items:center;width:100%;background:var(--yellow-mandarine-gradient);color:var(--black);margin:0 auto;padding:3.2rem 6.4rem}.hero-banner__logo{display:flex;justify-content:center;align-items:center;background-color:var(--white);border-radius:100%;box-shadow:0 2px 4px #0000006e}.hero-banner__image{width:10.8rem;height:10.8rem}.hero-banner__headline{letter-spacing:-1.5px;margin:2.4rem 0 8px;font-size:4.8rem}.hero-banner__description{max-width:58rem;text-align:center;margin-bottom:3.2rem;font-size:20px;line-height:3.2rem}@media only screen and (max-width:540px){.hero-banner{padding:3.2rem 1.6rem}.hero-banner__logo{width:9.6rem;height:9.6rem}.hero-banner__image{width:7.2rem;height:7.2rem}.hero-banner__headline{font-size:3.2rem}.hero-banner__description{font-size:1.6rem;line-height:2.4rem}}.features{padding:3.2rem 6.4rem}.features__title{color:var(--white);font-weight:600;text-align:center;margin-top:0;margin-bottom:4.8rem;font-size:3.2rem;line-height:3.2rem}.features__grid{display:grid;grid-template-columns:1fr 1fr;column-gap:6.4rem;row-gap:6.4rem}.feature{display:block;position:relative;background-color:var(--white);color:var(--black);cursor:pointer;transition:all .3s ease-in-out 0s;padding:4.8rem;border-radius:1.6rem}.feature__lock-icon{position:absolute;top:1.6rem;right:1.6rem;width:2rem;height:2rem}.feature:hover{transform:scale(1.03)}.feature_container{display:flex;align-items:center}.feature__icons{display:flex;align-items:center;gap:.8rem;margin-right:1.6rem;flex-shrink:0}.feature__headline{display:flex;align-items:center;margin-top:0;color:var(--black);font-weight:600;letter-spacing:-.05rem;font-size:2.4rem;line-height:3.2rem}.feature__icon{height:40px;width:auto}.feature:hover .feature__headline{text-decoration:underline solid 2px var(--black);text-underline-offset:2px;transition:all .3s ease-in-out 0s}.feature__description{margin:0;color:#242424;font-weight:500;opacity:.7;font-size:1.6rem;line-height:2.4rem}@media only screen and (max-width:900px){.features__grid{grid-template-columns:1fr;row-gap:3.2rem}.feature{padding:3.2rem;border-radius:.8rem}.feature__headline{font-size:2rem;line-height:2.4rem}.feature__icon{height:3.6rem}.feature__description{font-size:1.4rem;line-height:2.2rem}}@media only screen and (max-width:480px){.features{padding:1.6rem}.features__title{font-size:2rem;line-height:2.8rem;margin-bottom:2.4rem}.features__grid{grid-template-columns:1fr;row-gap:1.6rem}.feature{padding:3.2rem;border-radius:.8rem}.feature__headline{font-size:2rem;line-height:2.4rem}.feature__icon{height:3.6rem}.feature__description{font-size:1.4rem;line-height:2.2rem}}.code-snippet{display:flex;flex-direction:column;width:100%;border-radius:.8rem;margin-top:3.2rem;overflow:hidden}.code-snippet__title{height:4.8rem;width:100%;background-color:var(--aluminium);color:var(--black);font-family:var(--font-mono),source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;font-weight:600;font-size:1.6rem;line-height:2.4rem;padding:1.2rem 1.6rem}.code-snippet__container{background-color:var(--dark-aluminium);overflow-x:auto}.code-snippet__wrapper{display:inline-block;padding:32px}.code-snippet__body{margin:0;color:var(--white);font-size:16px;line-height:32px;word-wrap:break-word;white-space:pre-wrap}@media only screen and (max-width:480px){.code-snippet__title{height:4.4rem;font-size:1.4rem;line-height:2.2rem;padding:1.2rem 1.6rem}.code-snippet__wrapper{padding:1.6rem}.code-snippet__body{font-size:1.4rem;line-height:2.4rem}}.content__body a{color:var(--blue);text-decoration:underline}.content__body a:hover{color:var(--aqua)}.content__body ul,.content__body ol{padding-left:2.4rem;margin-bottom:1.6rem}.content__body li{font-size:1.6rem;line-height:2.6rem;margin-bottom:.4rem}.content__body li ul,.content__body li ol{margin-top:.4rem;margin-bottom:0}.content__body table{width:100%;border-collapse:collapse;margin-bottom:1.6rem;font-size:1.6rem;color:var(--light-aluminium);display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.content__body td,.content__body th{padding:.8rem 1.2rem;border:1px solid var(--aluminium)}.detail{display:block;font-size:1.4rem;color:var(--aluminium);font-weight:400;margin-top:.2rem}.permission-required{color:var(--orange);text-align:center;font-size:1.6rem;margin:2.4rem 0}.permission-required a{color:var(--blue);text-decoration:underline}.diagram-figure{margin:0}.diagram-caption{display:block;text-align:center;font-size:1.3rem;color:var(--aluminium);font-style:italic;margin-top:.8rem}.arch-layers{display:grid;gap:1.6rem;margin:1.6rem 0}.arch-layer{background:var(--dark-aluminium);border-radius:.8rem;padding:2rem 2rem 2rem 2.4rem;border-left:4px solid var(--indigo)}.arch-layer--indigo{border-left-color:var(--indigo)}.arch-layer--aqua{border-left-color:var(--aqua)}.arch-layer--emerald{border-left-color:var(--emerald)}.arch-layer--yellow{border-left-color:var(--yellow)}.arch-layer h3{color:var(--white);font-size:1.8rem;margin:0 0 1.2rem}.arch-layer ul{margin:0;padding-left:1.8rem}.arch-layer p{color:var(--light-aluminium);font-size:1.5rem;line-height:2.4rem;margin:0}.arch-layer li{color:var(--light-aluminium);font-size:1.5rem;line-height:2.4rem}.tech-groups{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;margin:1.6rem 0}.tech-group__label{font-size:1.2rem;font-weight:600;color:var(--aluminium);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}.tech-pills{display:flex;flex-wrap:wrap;gap:.8rem}.tech-pill{display:inline-block;background:#ffffff0f;border:1px solid var(--aluminium);color:var(--light-aluminium);font-family:var(--font-mono);font-size:1.3rem;padding:.3rem 1rem;border-radius:10rem}.event-dl{margin:0}.event-dl dt{font-weight:600;color:var(--white);font-size:1.6rem;margin-top:1.6rem}.event-dl dt:first-child{margin-top:0}.event-dl dd{color:var(--light-aluminium);font-size:1.6rem;line-height:2.4rem;margin-left:0;margin-top:.4rem;padding-left:1.6rem;border-left:3px solid var(--indigo)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;margin:1.6rem 0}.stat-card{background:var(--dark-aluminium);border:1px solid rgba(255,255,255,.08);border-radius:.8rem;padding:2rem 1.6rem;text-align:center}.stat-card__metric{font-family:var(--font-secondary);font-size:2.4rem;font-weight:700;color:var(--indigo);line-height:1;margin-bottom:.8rem}.stat-card__label{font-size:1.4rem;font-weight:600;color:var(--white);margin-bottom:.4rem}.stat-card__sub{font-size:1.2rem;color:var(--aluminium);line-height:1.6rem}.project-meta{margin-top:3.2rem;padding:2rem 2.4rem;background:var(--dark-aluminium);border-radius:.8rem;border-top:3px solid var(--indigo);display:flex;flex-direction:column;gap:1.2rem}.project-meta__repo{display:flex;align-items:center;gap:.8rem;font-size:1.6rem;color:var(--light-aluminium)}.project-meta__repo a{font-weight:600;color:var(--blue);text-decoration:underline}.project-meta__tech{font-size:1.4rem;color:var(--aluminium);line-height:2.2rem}@media only screen and (max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.tech-groups{grid-template-columns:1fr}}@media only screen and (max-width:480px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.stat-card{padding:1.6rem 1rem}.stat-card__metric{font-size:2rem}}@media only screen and (max-width:360px){.stats-grid{grid-template-columns:1fr}}.page-footer{display:flex;justify-content:center;flex-shrink:0;width:100%;margin-top:2.4rem;background-color:var(--dark-aluminium);color:var(--light-aluminium);font-weight:500;text-align:center;font-size:1.6rem;line-height:2.4rem}.page-footer-grid{display:grid;grid-template-rows:auto auto;width:100%;max-width:120rem;padding:3.2rem}.page-footer-grid__brand{display:grid;justify-items:center;grid-template-columns:1fr;margin-top:3.2rem}.page-footer-brand{display:flex;justify-content:center;align-items:center;width:100%}.page-footer__hyperlink,.page-footer__hyperlink:active,.page-footer__hyperlink:visited{color:var(--white)}.page-footer__hyperlink:hover{color:var(--aluminium)}@media only screen and (max-width:480px){.page-footer{font-size:1.4rem;line-height:2.2rem}.page-footer-grid{padding:3.2rem 1.6rem}}
