')}.alert-danger:before{background-image:url('data:image/svg+xml;charset=utf-8, ')}.alert-success:before{background-image:url('data:image/svg+xml;charset=utf-8, ')}.alert-info:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23aeaeae' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E")}.alert-note:before{background-image:url('data:image/svg+xml;utf8, ')}.alert-tip:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23d859a1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5M9 18h6M10 22h4'/%3E%3C/svg%3E")}button.alert-close{appearance:none;background-color:transparent;border:0;box-shadow:none;color:inherit;padding:.75rem 1.25rem;position:absolute;right:0}button.alert-close:hover{box-shadow:none;outline:none}button.alert-close.active,button.alert-close:hover .icon{color:initial}.alert-close .icon{cursor:pointer;font-size:1rem}.badge{color:#fff;padding:3px 6px}.badge-warning{background-color:var(--color-warning)}.badge-danger{background-color:var(--color-danger)}.badge-success{background-color:var(--color-success)}p .badge{margin-left:4px;margin-right:4px;top:0}.alert .ref-docs{color:#fff}.alert .ref-cross{background-color:transparent;color:initial;outline:1px solid var(--color-primary)}.alert .ref-cross:hover{color:var(--color-primary)}.alert .ref-cross .icon:first-child{background-color:var(--color-primary);color:#fff}.toast{bottom:0;box-shadow:0 0 1px rgba(67,90,111,.3),0 8px 10px -4px rgba(67,90,111,.47);left:50%;left:0;margin:0 auto;position:fixed;right:0;text-align:left;transform:translateY(100px);transition:all .3s cubic-bezier(.175,.885,.32,1.275);visibility:hidden;width:auto;width:300px;z-index:100}.toast.show{transform:translateY(-30px);visibility:visible}.toast.hide{transform:translateY(100px)}.toast-success{border-left:8px solid var(--color-success)}.toast-success .icon,.toast-success a{color:var(--color-success)}.toast-warning{border-left:8px solid var(--color-danger)}.toast-warning .icon,.toast-warning a{color:var(--color-danger)}.toast-danger{border-left:8px solid var(--color-danger)}.toast-danger .icon,.toast-danger a{color:var(--color-danger)}.mock-ui-c-holder{display:inline-flex;flex-direction:column;margin-right:100px;position:relative}.mock-ui-c-holder-end{margin-right:0}.mock-ui-c-holder.mock-ui-c-holder-row{align-items:flex-start;flex-direction:row;margin-right:0}.mock-ui-c-selectbox{align-items:center;background-color:#fff;border-radius:4px;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);color:var(--color-primary);display:inline-flex;justify-content:space-between;max-width:200px;min-width:150px;padding:.35rem 1rem;position:relative;white-space:nowrap}.mock-ui-c-selectbox .icon{margin-left:1rem;transform:translateY(2px) scale(.7);transition:transform .2s ease-in-out}.mock-ui-c-selectbox.active{background-color:var(--color-primary);color:#fff}.mock-ui-c-selectbox.active .icon{transform:translateY(2px) scale(.7) rotate(180deg)}.mock-ui-c-selectbox.mock-ui-c-search{padding:.35rem}.mock-ui-c-selectbox.mock-ui-c-search .icon{margin-left:0}.mock-ui-c-connector{border-bottom:2px solid #7e8185;border-bottom-left-radius:9px;border-left:2px solid #cfd7df;height:2px;left:100%;position:absolute;top:calc(50% - 1px);width:100px;z-index:3}.mock-ui-c-connector-down{height:136px;left:calc(50% - 1px);top:calc(100% - 3px);width:2px}.mock-ui-c-connector:before{left:0;top:0}.mock-ui-c-connector:after,.mock-ui-c-connector:before{background-color:#fff;border:2px solid #cfd7df;border-radius:50%;content:"";height:12px;position:absolute;transform:translate(-50%,-50%);width:12px;z-index:5}.mock-ui-c-connector:after{left:100%;top:100%}.mock-ui-c-header{border-bottom:1px solid #ccc}.mock-ui-c-header-dark{background-color:color-mix(in srgb,var(--color-primary),#000 20%);border-bottom:1px solid color-mix(in srgb,var(--color-primary),#000 20%);border-top-left-radius:4px;border-top-right-radius:4px}.mock-ui-c-header p{font-size:1rem}.mock-ui-c-header .button-xtiny{font-size:.85rem}.mock-ui-c-section{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);min-width:250px}.mock-ui-c-section-dark{background-color:color-mix(in srgb,var(--color-primary),#000 20%)}.mock-ui-c-textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);min-height:150px;min-width:250px;padding:2rem;width:100%}.mock-ui-c-dummy-content{background-color:rgba(77,85,106,.1);border-radius:8px;height:8px}.mock-ui-c-section-dark .mock-ui-c-dummy-content{background-color:var(--color-primary-dark)}.mock-ui-c-selectbox-options{background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);display:flex;flex-direction:column;left:0;position:absolute;top:100%;width:100%;z-index:10}.mock-ui-c-selectbox-options li{color:var(--color-primary);font-size:.85rem;padding:.35rem 1rem}.mock-ui-flow{grid-gap:0;border-bottom:1px solid var(--color-primary-light);display:grid;grid-template-columns:265px 400px 220px 120px}.mock-ui-flow p .icon{color:#ccc;margin-left:.5rem}.mock-ui-c-section-capabilities{position:relative;transform:translate(-1rem,-1rem);z-index:5}.mock-ui-c-capabilities{grid-gap:1rem;display:grid;grid-template-columns:repeat(3,1fr)}.mock-ui-c-capabilities svg{height:auto;margin-bottom:1rem;max-height:50px;max-width:50px}.mock-ui-c-capabilities-item{text-align:center}.mock-ui-c-capabilities-item i{font-size:1.5rem}.mock-ui-c-capabilities-item p{font-size:.75rem;line-height:1}.mock-ui-c-alarm-status{align-items:center;background-color:var(--color-success);border-radius:4px;display:inline-flex;justify-content:space-between;padding:.25rem 1rem}.mock-ui-c-alarm-status-alarm,.mock-ui-c-alarm-status-alarm:focus,.mock-ui-c-alarm-status-alarm:hover{background-color:#cb2d2b}.mock-ui-c-alarm-status-inactive{background-color:color-mix(in srgb,var(--color-primary),#000 30%)}.mock-ui-c-alarm-status-text{color:#fff;font-size:.75rem}.mock-ui-c-alarm-status-pulse{background-color:var(--color-success);border-radius:50%;cursor:pointer;display:inline-flex;height:10px;position:relative;width:10px;will-change:transform}.mock-ui-c-alarm-status-alarm .mock-ui-c-alarm-status-pulse:before{animation:alarm_pulse 1.5s infinite;background-color:var(--color-danger);border-radius:100%;content:"";height:100%;left:0;position:absolute;top:0;width:100%;will-change:transform;z-index:-1}.mock-ui-c-alarm-status-alarm .mock-ui-c-alarm-status-pulse{background-color:var(--color-danger)}.mock-ui-c-section:first-child .mock-ui-c-alarm-status-pulse{animation-delay:1.5s}.mock-ui-c-section:nth-child(2) .mock-ui-c-alarm-status-pulse{animation-delay:3s}.mock-ui-c-section:nth-child(3) .mock-ui-c-alarm-status-pulse{animation-delay:4.5s}.mock-ui-c-section:nth-child(4) .mock-ui-c-alarm-status-pulse{animation-delay:6s}.mock-ui-c-section:nth-child(5) .mock-ui-c-alarm-status-pulse{animation-delay:7.5s}.mock-ui-c-section:nth-child(6) .mock-ui-c-alarm-status-pulse{animation-delay:9s}.mock-ui-c-section:nth-child(7) .mock-ui-c-alarm-status-pulse{animation-delay:10.5s}.mock-ui-c-section:nth-child(8) .mock-ui-c-alarm-status-pulse{animation-delay:12s}.mock-ui-c-section:nth-child(9) .mock-ui-c-alarm-status-pulse{animation-delay:13.5s}.mock-ui-c-section:nth-child(10) .mock-ui-c-alarm-status-pulse{animation-delay:15s}.severity{border:1px solid var(--color-primary);border-radius:2rem;color:#fff;display:inline-flex;font-family:Roboto-Medium;letter-spacing:.01em;padding:.1rem 1rem;pointer-events:none;text-align:center;text-transform:uppercase}.severity-indeterminate,.severity-warning{border:1px solid var(--color-warning);color:var(--color-warning)}.severity-major{border:1px solid #cb2d2b;color:#cb2d2b}.severity-critical{background-color:#cb2d2b;border:1px solid #cb2d2b;color:#fff}.severity-minor{border:1px solid salmon;color:salmon}.severity-cleared{border:1px solid var(--color-success);color:var(--color-success)}.mock-ui-c-admin-dashboard{background-color:#424a56}.mock-ui-c-admin-dashboard-grid-container{--min:6em;--gap:1rem;grid-gap:var(--gap);display:grid;grid-template-columns:repeat(2,1fr)}@media(min-width:52em){.section-alarms .mock-ui-c-section{min-width:250px}}.mock-ui-c-alarms-modal{background-color:#fdf7f7;height:440px;max-height:200px;max-width:200px;overflow:hidden;position:absolute;right:1rem;top:2rem;width:300px}@media(min-width:40em){.mock-ui-c-alarms-modal{max-height:340px;top:-6rem}}@media(min-width:52em){.mock-ui-c-alarms-modal{height:440px;left:auto;max-height:none;overflow:initial;right:2rem;top:-8rem;width:300px}}.mock-ui-c-alarms-modal-simple{background-color:#fdf7f7}.mock-ui-c-alarms-modal-regular{background-color:#fafafa}@media(min-width:52em){.mock-ui-c-alarms-modal-regular{height:max-content;right:-2rem;top:-3rem}}.mock-ui-c-alarms-modal-line{display:none;left:58%;position:absolute;top:-50px;transform:scaleX(1) scaleY(-1)}@media(min-width:40em){.mock-ui-c-alarms-modal-line{display:block;left:44%}}@media(min-width:64em){.mock-ui-c-alarms-modal-line{left:34%}}.mock-ui-c-alarms-modal-card{background:#fff;border:1px solid #f6f6f6;border-radius:6px;box-shadow:0 3px 8px 0 rgba(0,0,0,.12)}.mock-ui-c-alarms-modal-card-heading{background-color:#cb2d2b;border-top-left-radius:6px;border-top-right-radius:6px;color:#fff}ol.alarms-impacted-resources-list{counter-reset:item}.alarms-impacted-resources-list li{list-style-type:none;margin:10px 0;position:relative}.alarms-impacted-resources-list .collapsed{display:none}.alarms-impacted-resources-list li button{margin-left:auto}.alarms-impacted-resources-list>li:before{display:none}.alarms-impacted-resources-list li:before{border-bottom:1px solid #ddd;border-left:1px solid #ddd;content:"";counter-increment:item;height:35px;left:-30px;position:absolute;top:-10px;width:30px}.alarms-impacted-resources-list li:after{border-left:1px solid #ddd;content:"";height:100%;left:-30px;position:absolute;top:5px;width:30px}.alarms-impacted-resources-list li:last-child:after{display:none}.alarms-impacted-resources-list li span{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#666;display:block;display:flex;justify-content:space-between;padding:10px;position:relative;text-decoration:none}.alarm-impacted-resources-line-reverse-x{transform:scaleX(-1)}.alarm-impacted-resources-line-line{stroke:var(--color-danger);stroke-width:1;stroke-dasharray:8;animation-delay:.95s;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.alarm-impacted-resources-line-line-reversed,.alarm-impacted-resources-line-reverse-xy .alarm-impacted-resources-line-line,.alarm-impacted-resources-line-reverse-y .alarm-impacted-resources-line-line{animation-direction:reverse}.alarm-impacted-resources-line-arrow{fill:var(--color-danger)}.mock-ui-c-impact-icon{padding:1rem 0 1rem 1rem}@media(min-width:52em){.mock-ui-c-impact-icon{padding:3rem 0 3rem 3rem}}.mock-ui-c-impact-icon svg g{transform:scale(.8);transform-origin:center center}.mock-ui-c-impact-tree{padding:1rem 1rem 1rem 0}@media(min-width:52em){.mock-ui-c-impact-tree{padding:3rem 3rem 3rem 0}}.mock-ui-c-browser aside{flex:0 0 30%}.mock-ui-c-browser main{flex:0 0 70%}.mock-ui-c pre{background-color:#f6f6f6;color:#000}.mock-ui-c-federated-login{border:1px solid var(--color-primary);max-width:260px;min-width:260px;transform:scale(.85)}.mock-ui-c-federated-login-federated{left:2rem;max-width:280px;min-width:280px;position:absolute;top:-1rem}@media(min-width:64em){.mock-ui-c-federated-login-federated{left:4rem}}.mock-ui-c-federated-login .circle{background-color:var(--color-primary)}.share-button{align-items:center;background-color:transparent;border-radius:50%;color:#fff;cursor:pointer;display:none;font-size:1.2rem;height:36px;justify-content:center;transition:box-shadow .2s ease-out;width:36px}@media(min-width:64em){.share-button{display:inline-flex}}.share-button:focus,.share-button:hover{background-color:#f6f6f6}.share-button a{align-items:center;display:flex;justify-content:center}.share-button svg{height:18px;line-height:1;transition:fill .3s;width:18px}.share-button:has(svg path[fill=white]){background-color:transparent}.share-button:has(svg path[fill=white]):hover{background-color:#000}:root{--login-width:460px}#___loginIframe___backdrop{background-color:rgba(0,0,0,.9);z-index:20000!important}#___loginIframe___{background-color:#fff;border-radius:12px;left:0!important;margin-left:0!important;overflow-y:auto!important;top:0!important;width:100%!important;z-index:25000!important}@media(min-width:52em){#___loginIframe___{left:calc(50% - var(--login-width)/2)!important;margin-left:0!important;min-height:calc(640px + 1.5rem);top:10vh!important;width:460px!important}}#___loginIframe___closeButton{left:auto!important;right:2rem!important;top:1.5rem!important;z-index:30000!important}@media(min-width:52em){#___loginIframe___closeButton{left:calc(50% - var(--login-width)/2 + var(--login-width) - 5rem)!important;right:auto!important;top:calc(10vh + 1.5rem)!important}}#___loginIframe___closeButton button{background-color:#fff!important;box-shadow:none!important;color:#ccc!important;font-size:2rem!important;height:40px!important;width:40px!important}#___loginIframe___closeButton button.close:hover{background-color:#ccc!important;color:#fff!important}div#hs-eu-cookie-confirmation{--noticeFromBottom:0;--noticeHeight:192px;--ease-in-out-cubic:cubic-bezier(0.645,0.045,0.355,1);--link-color:var(--color-spot);--decline-color:#000;animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:slide-up;animation-timing-function:var(--ease-in-out-cubic);background:#fff!important;border:1px solid #ccc!important;border-radius:8px;bottom:1rem!important;box-shadow:none!important;color:color-mix(in srgb,var(--color-primary) 40%,#fff)!important;content-visibility:auto!important;font-family:inherit;font-size:inherit;font-size:1rem!important;font-weight:400!important;height:auto;line-height:inherit;line-height:1.875!important;max-width:560px!important;padding:.5rem!important;position:fixed;text-align:left;text-shadow:none!important;transform:translateY(calc(var(--noticeHeight) + var(--noticeFromBottom)));transition:transform .2s var(--ease-in-out-cubic);width:100%!important;z-index:100000000!important}div#hs-eu-cookie-confirmation.hs-cookie-notification-position-bottom{bottom:var(--noticeFromBottom)!important;left:auto!important;right:0!important}@media screen and (min-width:480px){div#hs-eu-cookie-confirmation.hs-cookie-notification-position-bottom{--noticeFromBottom:1rem;left:auto!important;right:1rem!important}}@keyframes slide-up{0%{transform:translateY(calc(var(--noticeHeight) + var(--noticeFromBottom)))}to{transform:translateY(0)}}div#hs-eu-cookie-confirmation *{box-sizing:border-box!important}div#hs-eu-cookie-confirmation a:not([role=button]),div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-eu-policy-wording p a{color:var(--link-color)!important;text-decoration:underline!important}body div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner{background:transparent!important;border-radius:6px!important;margin:0 auto;margin:0 auto!important;max-width:1200px!important;padding:50px!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a{text-decoration:underline!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a:not[role=button]:after{color:var(--color-tertiary)!important;content:""!important;font-family:Ionicons!important;margin-left:.5rem!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a:hover{text-decoration:underline!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-eu-policy-wording{margin-bottom:12px}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-en-cookie-confirmation-buttons-area{display:flex;justify-content:flex-start!important;margin:10px 0 0!important;text-align:left!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a#hs-eu-confirmation-button,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a#hs-eu-decline-button{border-radius:3px;display:inline-block;padding:.25rem 1rem!important;text-decoration:none!important}body div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner{color:var(--color-primary)!important;margin-right:1rem!important;padding:.5rem!important}body div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p{color:unset!important}body div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-en-cookie-confirmation-buttons-area{text-align:left!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p{color:color-mix(in srgb,var(--color-primary) 40%,#fff)!important;font-size:inherit;line-height:inherit;margin:0 0 12px;text-align:left;text-shadow:none!important}@media print{div#hs-eu-cookie-confirmation{display:none!important}}@media screen and (max-width:480px){div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner{padding:30px!important}body div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p{font-size:.875rem!important;line-height:1.65!important;margin-bottom:12px!important}}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-confirmation-button{background-color:#fff!important;color:#000!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-confirmation-button,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-decline-button,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area a#hs-eu-cookie-settings-button{border:1px solid var(--decline-color)!important;border-radius:8px!important;padding:.25rem 2rem!important;transition:transform .2s}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-confirmation-button:hover,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-decline-button:hover,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area a#hs-eu-cookie-settings-button:hover{transform:scale(1.05)}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-confirmation-button{background-color:var(--color-spot)!important;border-color:var(--color-spot)!important;color:#fff!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area a#hs-eu-cookie-settings-button{background-color:#000!important;color:#fff!important;order:4!important;text-decoration:none!important}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner #hs-en-cookie-confirmation-buttons-area #hs-eu-decline-button{background-color:#fff!important;color:#000!important}@media screen and (max-width:480px){div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a,div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a#hs-eu-confirmation-button{font-size:inherit!important}}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner a#hs-eu-decline-button{border:1px solid var(--decline-color)!important;color:var(--decline-color)!important}div#hs-en-cookie-confirmation-buttons-area{display:flex}div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p{margin:0!important}#hs-eu-cookie-confirmation-button-group{order:2}.partner-intro-graphic{display:none;height:auto;object-fit:contain;opacity:.5;position:absolute;right:-10vw;top:10vh;width:50vh;z-index:1}@media(min-width:64em){.partner-intro-graphic{display:block}}.partner .intro .intro-wrapper{max-width:60em}.partner .intro .intro-overlay{background-attachment:fixed;background-color:#fff;background-image:none;background-image:radial-gradient(#ddd 1px,transparent 0),radial-gradient(#ddd 1px,transparent 0);background-position:0 0,25px 25px;background-size:50px 50px}.partner .intro .intro-copy h1,.partner .intro .intro-copy h2,.partner .intro .intro-copy p{color:revert}.partner .intro .intro-copy h2{font-size:medium}.partner-form aside{align-items:center;background-image:linear-gradient(45deg,color-mix(in srgb,var(--color-primary),#000 38%) 0,color-mix(in srgb,var(--color-primary),#000 18%) 66%,color-mix(in srgb,var(--color-primary),#000 16%) 100%);display:none;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.partner-form aside *{color:#fff}@media(min-width:74em){.partner-form aside{display:flex}}.section-testimonials{background-position:50%;background-size:cover;content-visibility:auto}.section-testimonials-overlay{align-items:center;background-color:#000;background-image:radial-gradient(at 77% 78%,#272527 0,transparent 50%),radial-gradient(at 5% 55%,#2c211c 0,transparent 50%),radial-gradient(at 29% 76%,#3d5794 0,transparent 50%),radial-gradient(at 32% 33%,#373e48 0,transparent 50%);background-size:100%;display:flex;height:100%;min-height:50vh;padding:2rem 0;width:100%}@media(min-width:64em){.section-testimonials-overlay{padding:4rem 2rem}}.partners-intro-animation{display:block;height:20em;margin:0 auto;max-height:none;position:absolute;top:calc(50% - 10em);width:20em}@media(min-width:40em){.partners-intro-animation{display:initial;height:32em;margin:unset;top:calc(50% - 16em);width:32em}}.partners-intro-animation-holder{display:inline-flex;margin-bottom:10rem}@media(min-width:40em){.partners-intro-animation-holder{height:auto;margin-bottom:20rem;transform:none}}@media(min-width:64em){.partners-intro-animation-holder{margin-bottom:0}}.partners-intro-animation-logo{display:block;height:8em;position:absolute;right:calc(50% - 4em);top:calc(50% - 2em);width:8em}@media(min-width:40em){.partners-intro-animation-logo{height:16em;right:calc(50% - 8em);top:calc(50% - 8em);width:16em}}.header-anchor{margin-left:.5rem;opacity:0;transition:opacity .3s ease-in-out}h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor{opacity:1}.header-stripe{align-items:center;color:#fff;display:flex;font-size:.85rem;gap:4rem;justify-content:center;overflow:hidden;padding:.75rem;text-overflow:ellipsis;white-space:nowrap;width:100%}.header-stripe .ion-android-arrow-forward{display:inline-block;transition:transform .3s}.header-stripe a{color:#fff;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-stripe a,.header-stripe a .ion-android-arrow-forward{display:inline-block}.header-stripe .icon.ion-close{align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;font-size:.75rem;height:24px;justify-content:center;line-height:0;transition:background-color .3s ease;width:24px;z-index:1}@media(min-width:64em){.header-stripe .icon.ion-close{position:static}}.header-stripe .icon.ion-close:hover{color:#fff}.header-stripe strong{color:#fff;text-decoration:underline}.avatar img{border:1px solid #f2f2f2;border-radius:100%;box-shadow:0 1px 2px rgba(0,0,0,.2);object-fit:cover}.avatar[data-size=sm] img{height:60px;width:60px}@media(min-width:64em){.avatar[data-size=sm] img{height:100px;width:100px}}.avatar[data-size=md] img{height:80px;width:80px}@media(min-width:64em){.avatar[data-size=md] img{height:140px;width:140px}}.avatar[data-size=lg] img{height:128px;width:128px}@media(min-width:64em){.avatar[data-size=lg] img{height:300px;width:300px}}.gradient-line{display:block;position:relative}.gradient-line:after{background:linear-gradient(70deg,#ffdd40,var(--color-spot));content:"";height:4px;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.skeleton-loading{--accents-1:#fafafa;--accents-2:#e4e4e4;animation:skeleton_loading 8s ease-in-out infinite;background-image:linear-gradient(270deg,var(--accents-1),var(--accents-2),var(--accents-2),var(--accents-1));background-size:400% 100%;display:block}@keyframes skeleton_loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media print{.was-this-helpful{display:none}}.was-this-helpful .hs-no,.was-this-helpful .hs-yes{display:inline-block}.was-this-helpful .inputs-list{list-style:none;padding:0}.was-this-helpful .field.hs-form-field{background-color:transparent;border:none}.was-this-helpful input[type=email],.was-this-helpful input[type=text],.was-this-helpful textarea{border:1px solid rgba(0,0,0,.125);border-radius:3px;width:100%}.was-this-helpful #hubspot-form form>div{display:none}.was-this-helpful.active #hubspot-form form>div{display:block}.was-this-helpful .hs_company,.was-this-helpful .hs_email,.was-this-helpful .hs_firstname,.was-this-helpful .hs_lastname,.was-this-helpful .hs_provide_feedback,.was-this-helpful .hs_submit,.was-this-helpful .legal-consent-container{display:none}.was-this-helpful.active .hs_company,.was-this-helpful.active .hs_email,.was-this-helpful.active .hs_firstname,.was-this-helpful.active .hs_lastname,.was-this-helpful.active .hs_provide_feedback,.was-this-helpful.active .hs_submit,.was-this-helpful.active .legal-consent-container{display:block}.was-this-helpful form>div:first-child{display:flex;flex-direction:column}.was-this-helpful form>div:first-child .hs-form-required{display:none}.was-this-helpful .hs-button{width:auto}.was-this-helpful .hs_feedback_buttons{align-items:center;display:flex}.was-this-helpful .hs_feedback_buttons label{flex:0 0 auto;order:1}.was-this-helpful .hs_feedback_buttons legend.hs-field-desc{display:none!important}.was-this-helpful .hs_feedback_buttons ul{border:2px solid #ccc;border-radius:2rem;padding:.5rem}.was-this-helpful .hs_feedback_buttons .input{order:2}.was-this-helpful .hs_feedback_buttons>label{color:var(--color-paragraphs);font-family:var(--type-regular);font-size:1.5rem}.was-this-helpful .hs_feedback_buttons .input ul{align-items:center;display:flex;gap:.5rem}.was-this-helpful .hs_feedback_buttons input{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.was-this-helpful .hs_feedback_buttons .input label{align-items:center;background-color:#ddd;border:4px solid transparent;border-radius:50%;color:#333;cursor:pointer;display:flex;flex-direction:column;font-size:1rem;height:48px;justify-content:center;padding:.25rem 1rem;position:relative;transition:all .2s;width:48px}.was-this-helpful .hs_feedback_buttons li:first-child label{color:var(--color-success)}.was-this-helpful .hs_feedback_buttons li:first-child label:hover{background-color:var(--color-success)}.was-this-helpful .hs_feedback_buttons li:nth-child(2) label{color:var(--color-danger)}.was-this-helpful .hs_feedback_buttons li:nth-child(2) label:hover{background-color:var(--color-danger)}.was-this-helpful .hs_feedback_buttons li label span{align-items:center;display:none;flex-direction:column;line-height:1.2}.was-this-helpful .hs_feedback_buttons li:first-child label:before,.was-this-helpful .hs_feedback_buttons li:nth-child(2) label:before{background-position:50%;background-repeat:no-repeat;background-size:24px;display:block;height:24px;width:24px}.was-this-helpful .hs_feedback_buttons li:first-child label.active{background-color:var(--color-success);border:4px solid var(--color-success);color:#fff}.was-this-helpful .hs_feedback_buttons li:first-child label.active:before{color:#fff}.was-this-helpful .hs_feedback_buttons li:nth-child(2) label.active{background-color:var(--color-danger);border:4px solid var(--color-danger);color:#fff}.was-this-helpful .hs_feedback_buttons li:nth-child(2) label.active:before{color:#fff}.was-this-helpful .hs_feedback_buttons li:first-child label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E");content:""}.was-this-helpful .hs_feedback_buttons li:nth-child(2) label:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17'/%3E%3C/svg%3E");content:""}.was-this-helpful .was-this-helpful-close{align-items:center;border-radius:50%;color:#ccc;cursor:pointer;display:flex;font-size:1rem;height:34px;justify-content:center;position:absolute;right:.5rem;top:.5rem;transition:background-color .3s ease;width:34px}.was-this-helpful .was-this-helpful-close:hover{background-color:var(--color-grey);color:#fff}.was-this-helpful .legal-consent-container .hs-form-booleancheckbox-display>span{margin-left:.5rem}.was-this-helpful .legal-consent-container label{align-items:center;display:flex;font-size:.85rem}.was-this-helpful .legal-consent-container a{color:var(--color-spot)}.was-this-helpful .legal-consent-container p{font-size:.85rem}.carousel{--scrollbar-offset:14px;--color-bg:#ccc;--gap:3rem;--track-width:150px;--height:360px;grid-column-gap:1rem;grid-row-gap:1rem;display:grid;grid-template-rows:1fr;height:var(--height);max-width:100%;overflow-x:scroll;overflow-y:hidden;overscroll-behavior-x:contain;padding:1rem;position:relative;scroll-snap-type:x mandatory}@media(min-width:40em){.carousel{--height:680px}}@media(min-width:52em){.carousel{--height:580px}}@media(min-width:64em){.carousel{--height:580px}}.carousel:hover{cursor:grab}.carousel-large{cursor:grab;grid-template-columns:repeat(2,75vw);height:unset}.carousel img{cursor:grab}.carousel.active{scroll-snap-type:unset}.carousel li{display:inline-block;scroll-snap-align:center}.carousel{--scrollbar:var(--color-primary);--scrollbar-track:#f6f6f6;--scrollbar-track-radius:6px;--scrollbar-thumb-radius:10px;--scrollbar-thumb:var(--color-primary-light);--scrollbar-height:8px;--scrollbar-width:8px}.carousel::-webkit-scrollbar{background-color:transparent;height:var(--scrollbar-height);width:var(--scrollbar-width)}.carousel:hover::-webkit-scrollbar{background-color:var(--scrollbar)}.carousel::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.carousel::-webkit-scrollbar-thumb{background-color:transparent}.carousel:hover::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}code{background-color:#f7fafc;border:1px solid rgba(0,0,0,.05);border-radius:4px;font-size:14px;padding:.15em .2em .05em;white-space:normal;word-break:break-word}.code-pre-wrapper{min-width:calc(100% - 2rem)}.code-pre-wrapper-no-linenumbers{min-width:100%}.code-wrapper:has(::-webkit-scrollbar){background-color:color-mix(in srgb,var(--color-primary),#000 20%)}pre.prism-code{margin-top:0;min-width:calc(100% - 2rem);overflow:auto;white-space:pre;word-break:normal}.button-copy-code{border-radius:6px;box-shadow:0 0 0 2px rgba(0,0,0,.05),0 0 0 1px hsla(0,0%,100%,.1),inset 0 .5px 0 hsla(0,0%,100%,.4);color:color-mix(in srgb,var(--color-primary) 40%,#fff);font-size:.75em;line-height:normal;padding:.25rem .5rem}.button-copy-code.copied{background-color:var(--color-success);color:#fff}.button-copy-code-wrapper{align-items:center;background-color:color-mix(in srgb,var(--color-primary),#000 20%);border-top-left-radius:6px;border-top-right-radius:6px;display:flex;height:32px;justify-content:space-between;padding-left:.25rem;padding-right:.25rem}.button-copy-code-wrapper-title{color:color-mix(in srgb,var(--color-primary) 40%,#fff);display:block;font-size:.75rem;padding:.25rem;text-transform:uppercase}.code-line-numbers{word-wrap:normal;background:#282a36;color:#fff;flex:0 0 2rem;font-family:Roboto-Mono,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:.875rem;height:calc(100% - 1rem);-webkit-hyphens:none;hyphens:none;line-height:1.5;overflow:hidden;padding:1em;tab-size:4;text-align:left;white-space:nowrap;word-break:normal;word-spacing:normal}[data-line-style=highlighted]{background-color:rgba(0,245,196,.149)}.code-line-numbers-highlights span:last-child{display:none}.button-dropdown-holder{position:relative}.button-dropdown-holder>button:hover{background-color:#f5f5f5;color:initial}.button-dropdown-content,.button-dropdown-holder>button:focus{border:1px solid color-mix(in srgb,var(--color-primary),#000 5%)}.button-dropdown-content{background-color:#fff;border-radius:6px;box-shadow:2.8px 2.8px 2.2px rgba(0,0,0,.02),6.7px 6.7px 5.3px rgba(0,0,0,.028),12.5px 12.5px 10px rgba(0,0,0,.035),22.3px 22.3px 17.9px rgba(0,0,0,.042),41.8px 41.8px 33.4px rgba(0,0,0,.05),100px 100px 80px rgba(0,0,0,.07);left:0;min-width:250px;opacity:0;position:absolute;text-align:left;top:calc(100% + .25rem);transform:scale(.9);transition-duration:.15s;transition-property:transform,opacity,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden;width:auto;z-index:10}.button-dropdown-content.active{opacity:1;transform:scale(1);visibility:visible}.button-dropdown-content li{display:block}.button-dropdown-content li:first-child>a,.button-dropdown-content li:first-child>button{border-top-left-radius:6px;border-top-right-radius:6px}.button-dropdown-content li:last-child>a,.button-dropdown-content li:last-child>button{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.button-dropdown-content li{align-items:center;display:flex;font-size:.85rem;padding:.75rem 1rem;transition:all .15s}.button-dropdown-content li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.button-dropdown-content li:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.button-dropdown-content li:hover{background-color:#f6f6f6}.button-dropdown-content li button{align-items:normal;box-shadow:none;font-family:inherit;font-size:1rem;margin:0;padding:0}.button-dropdown-holder i.ion-ios-checkmark-empty{font-size:2rem;margin-left:auto}.button-dropdown-holder .button i.ion-ios-arrow-down{transform-origin:50% 50%;transition:transform .2s}.button-dropdown-holder.active i.ion-ios-arrow-down{transform:rotate(180deg)}.button-dropdown-content li p{color:var(--color-primary);font-size:1rem;line-height:1.2;text-align:left}.search-container{min-height:80vh}@media(min-width:64em){.search-container{display:grid;grid-template-areas:"leftbar head" "leftbar main";grid-template-columns:360px minmax(0,2fr);grid-template-rows:min-content minmax(0,1fr)}}.search-main{grid-area:main}@media(min-width:64em){.search-sidebar{grid-area:leftbar}.search-sidebar-inner{max-height:calc(100vh - var(--header-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--header-height) + 2rem)}}.search-header{background-color:#fff}@media(min-width:64em){.search-header{grid-area:head}}input[type=search].header-search-field{appearance:none;background-color:transparent;background-color:color-mix(in srgb,var(--color-primary),#000 20%);border:none;border-radius:34px;caret-color:var(--color-spot);font-size:2rem;font-size:1.5rem;height:auto;height:68px;line-height:normal;outline:none;padding-left:2rem;padding-right:2rem;position:relative;text-indent:1rem;transition:background-color .4s;width:100%}input[type=search].header-search-field::placeholder{color:color-mix(in srgb,var(--color-primary) 40%,#fff)}input[type=search].header-search-field:focus{color:color-mix(in srgb,var(--color-primary) 40%,#fff)}input[type=search].header-search-field:focus::placeholder{color:color-mix(in srgb,var(--color-primary) 40%,#fff)}.search-loader{display:block;height:28px;margin:1rem;width:28px}.search-loader span{color:var(--color-primary);position:relative}.search-loader span:after{animation:loading .4s linear infinite;border-color:transparent transparent currentcolor currentcolor;border-radius:100%;border-style:solid;border-width:.15rem;content:"";display:block;height:20px;position:absolute;width:20px}.ais-SearchBox-form{position:relative}.ais-SearchBox-form input[type=search]{appearance:none;background-color:#fff;border:1px solid transparent;border-radius:34px;box-shadow:0 4px 8px rgba(6,8,9,.16);caret-color:var(--color-spot);font-size:2rem;font-size:1rem;height:auto;height:38px;line-height:normal;min-width:100%;padding-left:4rem;padding-right:2rem;position:relative;transition:box-shadow .2s}@media(min-width:64em){.ais-SearchBox-form input[type=search]{font-size:1.15rem;height:48px;min-width:600px;padding-left:4rem;padding-right:2rem}}.ais-SearchBox-form input[type=search]:focus{box-shadow:0 4px 8px rgba(6,8,9,.16);outline:none}.ais-SearchBox-form input[type=search]::placeholder{color:#666}.ais-SearchBox-form input[type=search]::-ms-clear,.ais-SearchBox-form input[type=search]::-ms-reveal{display:none;height:0;width:0}.ais-SearchBox-form input[type=search]::-webkit-search-cancel-button,.ais-SearchBox-form input[type=search]::-webkit-search-decoration,.ais-SearchBox-form input[type=search]::-webkit-search-results-button,.ais-SearchBox-form input[type=search]::-webkit-search-results-decoration{display:none}input[type=search]::placeholder{color:#666}.ais-SearchBox-form input[type=search]:not(:placeholder-shown)~.ais-SearchBox-reset{display:block}.ais-SearchBox-reset{background-color:#fff;border-radius:50%;box-shadow:none;color:var(--color-primary-light);display:none;height:28px;height:26px;padding:initial;position:absolute;right:6px;top:6px;transition:background-color .3s;width:26px;z-index:2}@media(min-width:64em){.ais-SearchBox-reset{height:36px;left:556px;right:auto;top:16px;top:6px;width:36px}}.ais-SearchBox-reset:hover{background-color:var(--color-primary);color:#fff}.ais-SearchBox-resetIcon{fill:currentColor}.ais-SearchBox-submit{display:none}.search-icon{fill:var(--color-primary);left:26px;position:absolute;top:8px;z-index:2}@media(min-width:64em){.search-icon{top:12px}}.search-loading-indicator{position:absolute;position:relative;right:1.5rem;top:0;z-index:2}.search-loading-indicator.active:after{animation:loading .3s linear infinite;border-color:transparent transparent currentcolor currentcolor;border-radius:100%;border-style:solid;border-width:.15rem;content:"";display:block;height:16px;left:calc(50% - 8px);position:absolute;top:calc(50% - 8px);width:16px}@keyframes loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ais-Hits-list{list-style:none;margin:0;padding:0}.ais-Highlight-highlighted{background-color:#fafad2}.ais-Hits-item a{color:var(--color-primary);display:block}.ais-Hits-item a:hover{background-color:#f6f6f6;text-decoration:none}.hit-icon{font-size:3rem}.HitCount{margin-bottom:1.5rem;margin-top:1rem}.hit-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;display:-webkit-box;overflow:hidden;width:min(75%,600px)}.ais-Hits-item img{box-shadow:0 4px 8px rgba(6,8,9,.16)}.ais-Pagination{margin-bottom:2rem}.ais-Pagination-list{-webkit-overflow-scrolling:touch;display:flex;gap:.5rem;list-style:none;margin:0 auto;overflow-x:scroll;padding:0;white-space:nowrap}@media(min-width:64em){.ais-Pagination-list{flex-wrap:wrap;overflow-x:initial}}.ais-Pagination-link{align-items:center;border-radius:50%;color:#000;cursor:pointer;display:flex;height:38px;justify-content:center;text-decoration:none;width:38px}.ais-Pagination-link:hover{text-decoration:none}.ais-Pagination-link--selected,.ais-Pagination-link:hover{background-color:var(--color-spot);color:#fff}.ais-RefinementList-list{display:flex;flex-direction:column;flex-wrap:wrap;list-style:none;margin:0 0 2rem;padding:0}.ais-RefinementList-item{flex:0 0 100%;margin-bottom:.5rem;margin-right:1rem}@media(min-width:64em){.ais-RefinementList-item{margin-right:0}}.ais-RefinementList-list.ais-CurrentRefinements-list--noRefinement{margin-bottom:0}.ais-RefinementList-label{align-items:center;display:flex;line-height:2}.ais-RefinementList-labelText{line-height:1;margin-left:.25rem;overflow-wrap:break-word}.ais-CurrentRefinements-item,.ais-CurrentRefinements-list{display:flex;flex-direction:column}.ais-CurrentRefinements-category{align-items:center;background-color:transparent;border:.075rem solid var(--color-primary-light);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px;color:var(--color-primary-light);display:inline-flex;font-size:.6em;justify-content:space-between;overflow:hidden;width:max-content}.ais-CurrentRefinements-category:not(:last-child){margin-bottom:.5rem;margin-right:.5rem}@media(min-width:52em){.ais-CurrentRefinements-category{font-size:.6em}}.ais-CurrentRefinements-categoryLabel{padding:.1rem .5rem}.ais-CurrentRefinements-delete{background-color:color-mix(in srgb,var(--color-primary) 50%,#fff);border:none;border-left:.075rem solid var(--color-primary-light);border-radius:0;box-shadow:none;color:var(--color-primary);font-size:.75rem;padding:.1rem .5rem}.ais-CurrentRefinements-delete:active,.ais-CurrentRefinements-delete:focus{background-color:transparent;box-shadow:none;color:var(--color-primary)}.ais-CurrentRefinements-delete:hover{background-color:color-mix(in srgb,var(--color-primary),#000 6%);box-shadow:none;color:#fff}.ais-CurrentRefinements-list{list-style:none;margin:0;padding:0}.ais-CurrentRefinements-label{display:none}.ais-RefinementList-item--selected .ais-RefinementList-labelText,.ais-RefinementList-label:hover .ais-RefinementList-labelText{color:var(--color-spot)}.ais-ClearRefinements-button--disabled,.ais-CurrentRefinements--noRefinement{display:none}.ais-ClearRefinements-button{background-color:var(--color-primary);color:#fff;font-size:.75em;margin-bottom:2rem;margin-top:2rem;min-height:24px;padding:.1rem .75rem}.ais-ClearRefinements-button:disabled{opacity:.25}.ais-ClearRefinements-button:active,.ais-ClearRefinements-button:hover{background-color:var(--color-primary-light);box-shadow:none;color:#fff}.ais-ClearRefinements-button:active .icon,.ais-ClearRefinements-button:hover .icon{color:#fff}.ais-RefinementList-count{-webkit-font-smoothing:antialiased;align-items:center;align-self:center;background-color:#eee;border:#ddd;border-radius:1rem;color:#fff;color:#666;display:inline-flex;font-family:var(--font-bold);font-size:.75rem;height:24px;justify-content:space-between;letter-spacing:.025em;line-height:1;margin-left:.25rem;padding:0 .5rem;text-rendering:optimizeLegibility;text-transform:uppercase}.ais-RefinementList-count:hover{background-color:color-mix(in srgb,#eee,#000 10%)}body{margin-top:var(--header-height)}.header[role=banner]{background-color:color-mix(in srgb,var(--color-primary),#000 50%);left:0;position:fixed;top:0;width:100%;z-index:100}.header-top{height:var(--header-nav-height)}.header-top ul{gap:.5rem}.header-top ul.first-level{align-items:center;display:flex;height:100%;justify-content:center}.header-top ul{font-size:unset}.header-top ul.first-level li{align-items:center;height:100%;justify-content:center}.header-top .first-level>li:not(.header-top-link-hamburger){display:none}@media(min-width:84em){.header-top .first-level>li:not(.header-top-link-hamburger){display:inline-flex}}.header-top ul .header-nav-demo{display:none}@media(min-width:100em){.header-top ul .header-nav-demo{display:inline-flex}}.header-nav-login-text-label,.header-top ul:first-of-type>li.header-nav-search span{display:none}@media(min-width:100em){.header-nav-login-text-label,.header-top ul:first-of-type>li.header-nav-search span{display:inline-block}}.header-top .header-nav-trial{display:none}@media(min-width:84em){.header-top .header-nav-trial{display:inline-flex}}.header-top ul .header-nav-demo,.header-top ul .header-nav-trial{white-space:nowrap}.header-top ul:first-of-type>li.header-top-link-hamburger{display:inline-flex}@media(min-width:84em){.header-top ul:first-of-type>li.header-top-link-hamburger{display:none}}.header-top ul:first-of-type>li.header-top-link-hamburger button{padding-left:0;padding-right:0}.header-top>.container{position:relative}@media(min-width:52em){.header-top>.container{max-width:2400px}}.intro{align-items:center;background-color:#000;display:flex;justify-content:center;min-height:50vh;position:relative}.intro,.intro-full,.intro-full .intro-full{height:auto}@media(min-width:74em){.intro-full,.intro-full .intro-full{min-height:calc(100vh - var(--header-height))}}@media(min-width:40em){.intro-medium,.intro-medium .intro-overlay{min-height:70vh}}@media(min-width:74em){.intro-mediumlow,.intro-mediumlow .intro-overlay{min-height:55vh}.intro-large,.intro-large .intro-overlay{min-height:75vh}}.intro-low,.intro-low .intro-overlay{min-height:25vh}@media(min-width:74em){.intro-low,.intro-low .intro-overlay{min-height:35vh}}.intro-tiny,.intro-tiny .intro-overlay{min-height:15vh}@media(min-width:74em){.intro-tiny,.intro-tiny .intro-overlay{min-height:25vh}}.intro-overlay{align-items:center;background-size:100%;display:flex;height:100%;min-height:50vh;padding-bottom:2rem;padding-top:2rem;width:100%}.intro-full .intro-overlay{min-height:calc(100vh - var(--header-height))}.intro h1{text-wrap:balance;font-family:var(--font-extra-bold)}.intro-copy .h1,.intro-copy h1{font-size:clamp(2.25rem,1.99rem + 1.3vw,4.75rem);letter-spacing:.005em}.intro-copy h2{font-size:.95rem;line-height:1.5}@media(min-width:52em){.intro-copy h2{font-size:1.5rem}}.intro-copy p{font-size:clamp(1rem,1.114rem + .18vw,1.5rem);line-height:1.5}@media(min-width:52em){.intro-copy p{line-height:1.75}}.intro-copy h1,.intro-copy h2,.intro-copy p{color:#fff}.intro-copy .intro-subheading{color:var(--color-primary)}.intro-link{color:#fff;transition:.4s ease;vertical-align:middle}.intro-link:hover{text-decoration:none;transform:translateY(-.25rem)}.intro .intro-overlay{background-image:linear-gradient(45deg,color-mix(in srgb,var(--color-primary),#000 38%) 0,color-mix(in srgb,var(--color-primary),#000 18%) 66%,color-mix(in srgb,var(--color-primary),#000 16%) 100%)}.tokenservice .intro .intro-overlay{background-image:url(/images/bg-lines-green.svg),linear-gradient(13deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 40%) 70%,var(--color-resources-develop) 100%)}.authentication .intro .intro-overlay,.tokenservice .intro .intro-overlay{background-color:#20242e;background-position:50%;background-repeat:no-repeat;background-size:40%,cover}.authentication .intro .intro-overlay{background-image:url(/images/bg-lines-magenta.svg),linear-gradient(13deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 40%) 70%,var(--color-spot) 100%)}.usermanagement .intro .intro-overlay{background-image:url(/images/bg-lines-yellow.svg),linear-gradient(13deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 40%) 70%,var(--color-tertiary) 100%)}.alarms .intro .intro-overlay,.usermanagement .intro .intro-overlay{background-color:#20242e;background-position:50%;background-repeat:no-repeat;background-size:40%,cover}.alarms .intro .intro-overlay{background-image:url(/images/bg-lines-blue.svg),linear-gradient(13deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 40%) 70%,#ad2020 100%)}.intro-wrapper{display:flex;flex-direction:column;margin:0 auto;max-width:100em;padding-left:1rem;padding-right:1rem;width:100%}@media(min-width:52em){.intro-wrapper{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:center;padding-left:2rem;padding-right:2rem}}@media(min-width:64em){.intro-wrapper{flex-direction:row}}@media(min-width:140em){.intro-wrapper{max-width:120em}}.plans .intro-wrapper{max-width:90%}.intro-presentation{flex:0 0 100%;order:2}@media(min-width:64em){.intro-presentation{flex:0 0 50%;order:1;text-align:initial}}.intro-animation{flex:0 0 100%;order:1}@media(min-width:64em){.intro-animation{flex:0 0 50%;order:2}}.intro-section .intro-overlay{padding-top:calc(64px + 1rem)}@media(min-width:52em){.intro-section .intro-overlay{padding-top:calc(96px + 1rem)}}.intro-section svg{stroke:#fff;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 5px 15px 0 rgba(112,128,175,.2);height:64px;left:calc(50% - 32px);margin:0 auto;padding:1rem;position:absolute;top:0;width:64px}@media(min-width:52em){.intro-section svg{height:96px;left:calc(50% - 48px);width:96px}}.intro-order{display:flex;flex-direction:column}.intro-order-copy{order:2}@media(min-width:52em){.intro-order-copy{order:1}}.intro-order-benefits{order:3}@media(min-width:52em){.intro-order-benefits{order:2}}.intro-order-cta{order:1}@media(min-width:52em){.intro-order-cta{order:3}}.intro-subheading-logos img{filter:grayscale(1) contrast(.2) brightness(.85) sepia(1) hue-rotate(180deg) saturate(1);position:relative}.intro-animation-start figure{align-items:center;display:none;justify-content:flex-end;margin:0 auto}@media(min-width:64em){.intro-animation-start figure{display:none}@supports(offset-distance:100%){.intro-animation-start figure{display:flex}}}.intro-animation-start-image{display:block}@media(min-width:64em){.intro-animation-start-image{display:none}@supports not (offset-distance:100%){.intro-animation-start-image{display:block}}}.intro.intro-careers .intro-overlay{background-blend-mode:overlay;background-color:color-mix(in srgb,var(--color-primary),#000 20%);background-image:url(/images/careers/careers-intro.jpg);background-position:center 55%;background-size:cover}.intro.intro-careers-interview .intro-overlay{background-blend-mode:overlay;background-color:color-mix(in srgb,var(--color-primary),#000 15%);background-image:url(/images/careers/intro-careers-interview.webp);background-position:center 40%;background-size:cover}.intro.intro-careers-how-we-hire .intro-overlay{background-blend-mode:overlay;background-color:var(--color-primary);background-image:url(/images/careers/intro-careers-how-we-hire.jpg);background-position:center 80%;background-size:cover}.intro.intro-careers-whoweare .intro-overlay{background-blend-mode:overlay;background-image:url(/images/careers/intro-careers-who-we-are.jpg)}.intro.intro-careers-whoweare .intro-overlay,.intro.intro-careers-working-at-curity .intro-overlay{background-color:color-mix(in srgb,var(--color-primary),#000 18%);background-position:center 80%;background-size:cover}.intro.intro-careers-working-at-curity .intro-overlay{background-blend-mode:overlay;background-image:url(/images/careers/intro-careers-working-at-curity.jpg)}.intro.intro-careers-job .intro-overlay{background-blend-mode:overlay;background-color:color-mix(in srgb,var(--color-primary),#000 18%);background-image:url(/images/careers/intro-careers-job.jpg);background-position:center 20%;background-size:cover}.intro .intro-overlay{background-color:#20242e;background-image:url(/images/bg-lines-magenta.svg);background-position:50%;background-repeat:no-repeat;background-size:40%}section.section h2:first-of-type svg{cursor:pointer;opacity:0}section.section h2:first-of-type:hover svg{opacity:1}.customer-intro-logo{align-items:center;border:none;border:4px solid rgba(var(--color-primary),.25);border-radius:50%;display:flex;justify-content:center;position:absolute}.customer-story-item,a.customer-story-item{background-color:#fff;transition:box-shadow .2s ease-in-out 0s}.customer-story-item-card{box-shadow:0 2px 8px 0 rgba(99,99,99,.2);position:relative}.card-circled-link{align-items:center;background-color:#fff;border-radius:50%;bottom:2rem;box-shadow:0 3px 8px 0 rgba(0,0,0,.12);display:flex;height:48px;justify-content:center;opacity:0;position:absolute;right:2rem;transform:translateY(1rem);transition:all .6s var(--ease-out-expo);width:48px}.card-circled-link,.card-circled-link:hover{color:var(--color-primary)}.customer-story-item-card:hover .card-circled-link{opacity:1;transform:translateY(0)}.customer-story-item-card h3:before{color:var(--color-spot);font-family:Cambria,Cochin,Georgia,Times,Times New Roman,serif;font-size:5rem;position:absolute}.customer-story-item-card h3{position:relative}.customer-story-item-card h3>div{-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;display:-webkit-box;overflow:hidden;width:90%}@media(min-width:52em){.customer-story-item-card h3>div{-webkit-line-clamp:6}}@media(min-width:74em){.customer-story-item-card h3>div{-webkit-box-orient:initial;-webkit-line-clamp:none;display:initial;overflow:initial;width:auto}}.customer-story-item-card h3:before{content:"“";left:-2rem;top:-2rem}.customer-story-item-card p,a.customer-story-item-card p{line-height:unset}.customer-story-item-image-wrapper img{display:block;height:240px;object-fit:cover;width:100%}@media(min-width:52em){.customer-story-item-image-wrapper img{border-bottom-left-radius:14px;border-top-left-radius:14px;border-top-right-radius:0;height:100%}}.customer-story-item-content p{position:relative}.customer-story-item-image-credit{bottom:10px;position:absolute;right:10px}.customer-story-item-image-credit .icon{opacity:.5}.customer-story-item-image-credit:hover .icon{opacity:1}.customer-story-item.customer-story-item-single{box-shadow:none}@media(min-width:52em){.customer-story-item.customer-story-item-single{display:grid;grid-template-columns:1.5fr 2fr}}.customer-story-item-single .customer-story-item-image img{border-bottom-left-radius:0;border-top-left-radius:0;object-fit:cover}@media(min-width:52em){.customer-story-item-single .customer-story-item-image img{border-bottom-left-radius:0;border-bottom-right-radius:80px;border-top-left-radius:0}}.customer-story-item-single .customer-story-item-content p:after,.customer-story-item-single .customer-story-item-content p:before{display:none}.footer{background-position:90% 15%;background-size:20%;overflow:hidden;padding-bottom:2rem;position:relative}@media(min-width:84em){.footer{padding-bottom:16rem}}.footer-lines{bottom:-60px;height:360px;left:0;object-fit:cover;pointer-events:none;position:absolute;width:100%;z-index:0}@media(min-width:140em){.footer-lines{background-size:cover;bottom:-20px;height:560px}}.footer li a{display:block;font-size:.85rem;padding:.35rem 0}.footer [itemprop],.footer address,.footer h3,.footer h4,.footer li,.footer li a,.footer p,.footer small,.footer ul{color:color-mix(in srgb,var(--color-primary) 30%,#fff)}.footer .newsletter-privacy-validation small{color:red}.footer h4{color:#fff;font-family:Roboto-Medium;font-size:.85rem;letter-spacing:.025rem;text-transform:uppercase}.footer a:hover{color:#fff}.footer-logo{max-width:120px}@media(min-width:52em){.footer-logo{max-width:160px}}.footer-container{grid-gap:2rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}@media(min-width:64em){.footer-container{grid-template-columns:minmax(500px,1fr) 1fr 1fr 1fr 1fr}}.footer-social{grid-gap:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,48px))}.footer-social li a{padding:0}.footer-social svg:hover path{fill:#fff}.section{padding:2rem 0}@media(min-width:64em){.section{padding:3rem 2rem}}.legal .section:not(.section-getstarted){padding:0}.section-sm{padding:2rem 0}@media(min-width:64em){.section-sm{padding:2rem 1rem}}.section-xl{padding:2rem 0}@media(min-width:64em){.section-xl{padding:4rem}}.section-xxl{padding:2rem 0}@media(min-width:64em){.section-xxl{padding:8rem 2rem}}.section-bottom-overflow{padding-bottom:0}.section-white{background-color:#fff}.section-light{background-color:#f6f6f6}.section-alarms{background-color:#fdf7f7}.section-dark{background-color:color-mix(in srgb,var(--color-primary),#000 70%)}.section-primary{background-color:color-mix(in srgb,var(--color-primary),#000 50%)}.section-primary-light{background-color:color-mix(in srgb,var(--color-primary),#000 40%)}.section-green{background-color:color-mix(in srgb,var(--color-resources-develop),#fff 45%)}.section-dotted{background-attachment:fixed;background-image:radial-gradient(#ddd 1px,transparent 0),radial-gradient(#ddd 1px,transparent 0);background-position:0 0,25px 25px;background-size:50px 50px}@media(min-width:64em){.section-boxbg{background-image:url(/images/emptybox.svg);background-position:left 120%;background-repeat:no-repeat;background-size:110%}.section-boxbg-fixed{background-position:left -1000px}.section-rounded{border-bottom-left-radius:80% 20%;border-bottom-right-radius:80% 20%}}.section-featured{background-image:linear-gradient(90deg,#eaebef,#fff);position:relative}.section-featured:before{background:linear-gradient(-45deg,#b9dcf2,#f6cfbe);filter:blur(20px);opacity:var(.7);transform:translate3d(0,20px,0) scale(.95);transition:opacity .3s}.section-featured:after,.section-featured:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.section-featured:after{background:inherit;border-radius:8px}.section-unique-combination{padding-top:calc(180px + 3vmin)}@media(min-width:74em){.section-unique-combination{padding-top:calc(480px + 3vmin)}}.unique-combination-image{--width:25em;--height:auto;height:var(--height);left:calc(50% - var(--width)/2);object-fit:contain;opacity:.7;pointer-events:none;position:absolute;top:6vmin;width:var(--width);z-index:1}@media(min-width:74em){.unique-combination-image{--width:60em}}.section-deploy-anywhere{padding-top:calc(180px + 3vmin)}@media(min-width:74em){.section-deploy-anywhere{padding-top:calc(380px + 3vmin)}}.deploy-anywhere-image{--width:25em;--height:auto;height:var(--height);left:calc(50% - var(--width)/2);object-fit:contain;pointer-events:none;position:absolute;top:6vmin;width:var(--width);z-index:1}@media(min-width:74em){.deploy-anywhere-image{--width:60em}}.section-unique-combination .fade:not(:last-child):before{--size:120px;background-image:url(/images/start/card-arrow.svg);background-position:50%;background-repeat:no-repeat;background-size:var(--size);content:"";display:none;height:var(--size);position:absolute;right:calc(var(--size)/3*-1);top:calc(50% - var(--size)/2);width:var(--size);z-index:1}@media(min-width:74em){.section-unique-combination .fade:not(:last-child):before{display:block}}.tab-group{--radius:8px;margin-bottom:1rem;margin-top:1rem}.tab-group>[role=tablist]{-webkit-overflow-scrolling:touch;align-self:center;background-color:#f0f3f9;border:1px solid #dcdfe4;border-radius:var(--radius);display:flex;gap:.25rem;list-style:none;margin-bottom:1rem;overflow-x:auto;padding:.25rem;position:relative}@media(min-width:74em){.tab-group>[role=tablist]{margin-bottom:2rem;overflow-x:initial;width:min-content}}.tab-group-center>[role=tablist]{margin:0 auto 2rem}.tab-group>[role=tablist]>button{align-items:center;border-radius:calc(var(--radius)/1.5);box-shadow:none;color:var(--color-primary);display:inline-flex;justify-content:flex-start;padding:.25rem 1.5rem;position:relative;transition:box-shadow .2s,border-color .2s,background-color .2s;white-space:nowrap}.tab-group>[role=tablist]>button:hover{background-color:#e7eaf1}.tab-group>[role=tablist]>button.active{background-color:#fff;color:var(--color-primary);outline:none}.tab-group>[role=tablist]>button.active:before,.tab-group>[role=tablist]>button.active:hover{color:var(--color-primary)}.tab-group>div[data-item]{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);background-color:#fff;color:var(--color-paragraphs);font-size:.85rem;font-weight:300;height:1px;line-height:1.85;overflow:hidden;overflow-x:auto;position:absolute;white-space:nowrap;width:1px;z-index:1}.tab-group>div[data-item].active{clip:unset;height:unset;position:relative;white-space:unset;width:unset;z-index:2}@media(min-width:52em){.tab-group>div[data-item]{white-space:normal}.tab-group>div[data-item].active{overflow-x:initial}}@media(min-width:64em){.tab-group>div[data-item]{font-size:1rem}}.tab-group-files [role=tablist]{align-items:center;background-color:#2a2f3a;border:1px solid #2a2f3a;border-radius:0;display:flex;justify-content:flex-start;margin-bottom:0;padding:0}.tab-group-files [role=tablist]>button{background-color:color-mix(in srgb,var(--color-primary),#000 50%);border-radius:0;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);color:var(--color-primary-light);font-family:Roboto Mono,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:.85rem;height:auto;padding:.5rem 1.5rem;text-transform:none}.tab-group-files [role=tablist]>button:hover{background-color:transparent;color:var(--color-tertiary)}.tab-group-files [role=tablist]>button.active{border-bottom:none}.tab-group-files [role=tablist]>button.active:hover{background-color:transparent;color:var(--color-tertiary)}.tab-group-files>[role=tablist]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.tab-group-files>[role=tablist]>button:not(:last-child){margin-right:0}.tab-group-files [role=tablist]>button.active{background-color:transparent;color:#fff}.tab-group-files>div[data-item] .button-copy-code-wrapper-title{display:none}.tab-group-files>div .button-copy-code-wrapper{border-radius:0}.tab-group-dark>[role=tablist]{background-color:transparent;border:1px solid color-mix(in srgb,var(--color-primary) 5%,#fff)}.tab-group-dark>div[data-item]{background-color:transparent}.tab-group-dark>[role=tablist]>button{background-color:transparent;color:#fff}.tab-group-dark>[role=tablist]>button:hover{background-color:var(--color-primary-light);color:#fff}.tab-group-dark>[role=tablist]>button.active{background-color:#fff;color:var(--color-primary)}.tab-group-dark>[role=tablist]>button.active:hover{background-color:var(--color-primary-light);color:#fff}.tab-group-primary>[role=tablist]{background-color:transparent;border:1px solid color-mix(in srgb,var(--color-primary) 45%,#fff)}.tab-group-primary>[role=tablist]>button{background-color:transparent}.tab-group-primary>[role=tablist]>button:hover{background-color:color-mix(in srgb,var(--color-primary),#000 0);color:#fff}.tab-group-primary>[role=tablist]>button:active{background-color:#fff}.tab-group-primary>[role=tablist]>button.active{background-color:color-mix(in srgb,var(--color-primary),#000 6%)}.tab-group-primary>[role=tablist]>button.active:hover{background-color:color-mix(in srgb,var(--color-primary),#000 40%)}.faq-question{border-bottom:1px solid #f0f0f0;border-radius:8px;cursor:pointer;padding:1rem;text-align:initial;transition:background-color .2s ease-in-out}@media(min-width:74em){.faq-question{padding:2rem}}.faq-question h2{-webkit-user-select:none;user-select:none}.faq-question a{color:var(--color-spot)}.faq-question.active{background-color:#fafafa}.faq-question.active.faq-highlighted{background-color:var(--color-spot);border-radius:6px}.faq-question.active.faq-highlighted:hover{background-color:var(--color-spot)}.faq-question-chevron{align-items:center;border-radius:50%;color:var(--color-spot);display:flex;flex:0 0 30px;font-size:.85rem;height:30px;justify-content:center;margin-right:16px;transition:transform .15s;width:30px}@media(min-width:74em){.faq-question-chevron{flex:0 0 40px;height:40px;margin-right:20px;width:40px}}.faq-question-chevron .ion-chevron-down{transform:translateY(2px);transform-origin:center center;transition:transform .3s ease-in-out}.faq-question:hover{background-color:#fafafa}.faq-question .button-transparent{opacity:0}.faq-question.active:hover .button-transparent{opacity:1}.faq-question:hover .faq-question-chevron{transform:scale(1.1)}.faq-question.active .faq-question-chevron{border:2px solid var(--color-spot)}.faq-question.active .faq-question-chevron .ion-chevron-down{transform:rotate(180deg)}.faq-answer{margin-top:.5rem}@media(min-width:74em){.faq-answer{margin-top:1rem}}.faq-categories{position:sticky;top:calc(var(--header-height) + var(--resources-header-height) + 1rem)}.faq-categories .scroller ul a{padding:.25rem}.faq-categories .scroller ul a:hover{background-color:#fafafa;text-decoration:none}.faq-categories .scroller li{white-space:nowrap}@media(min-width:74em){.faq-categories .scroller li{justify-content:center}}body.resources{margin-top:calc(100vh - var(--header-height))}body.contact{background-color:color-mix(in srgb,var(--color-primary),#000 70%)}.contact-layout{grid-gap:2rem;display:grid;margin:0 auto;max-width:90em;padding-top:2rem}.contact-layout-right{grid-template-columns:1fr;grid-template-rows:repeat(6,auto)}@media(min-width:64em){.contact-layout-right{grid-template-columns:1.5fr 2.25fr;grid-template-rows:1fr 1fr;padding-bottom:4rem;padding-top:4rem}}.contact-layout-left{grid-template-columns:1fr;grid-template-rows:repeat(6,auto)}@media(min-width:64em){.contact-layout-left{grid-template-columns:2.25fr 1.5fr;grid-template-rows:1fr 1fr;padding-bottom:4rem;padding-top:4rem}}.contact-layout-center{grid-template-columns:1fr;grid-template-rows:repeat(6,auto);max-width:50em}@media(min-width:64em){.contact-layout-center{grid-template-columns:1fr;padding-bottom:4rem;padding-top:4rem}.contact-layout-left .benefit{grid-column-end:2;grid-column-start:2;grid-row-end:2;grid-row-start:1}.contact-layout-right .benefit{grid-column-end:2;grid-column-start:1;grid-row-end:2;grid-row-start:1}}.contact-layout-center .benefit{order:1}.contact-layout-left .hq{grid-area:5/1/6/2}@media(min-width:64em){.contact-layout-left .hq{align-self:end;grid-column-end:2;grid-column-start:2;grid-row-end:2;grid-row-start:3}}.contact-layout-right .hq{grid-area:5/1/6/2}@media(min-width:64em){.contact-layout-right .hq{align-self:end;grid-column-end:1;grid-column-start:1;grid-row-end:2;grid-row-start:3}}.contact-layout-center .hq{order:3}.contact-layout-left .form{grid-area:2/1/5/2}@media(min-width:64em){.contact-layout-left .form{grid-column-end:1;grid-column-start:1;grid-row:1/span 2}}.contact-layout-right .form{grid-area:2/1/5/2}@media(min-width:64em){.contact-layout-right .form{grid-column-end:2;grid-column-start:2;grid-row:1/span 2}}.contact-layout-center .form{order:2}.contact-layout aside li{font-size:1.25rem;line-height:1.5}.contact-layout aside li:before{border-radius:50%;color:var(--color-spot);content:"";font-family:Ionicons;font-size:1.5rem;margin-inline-end:1ch;padding-inline:1ch}.contact .contact-layout form{background-color:#fff;border-radius:6px;padding:2rem}@media(min-width:40em){.contact form .grid-container{column-gap:1rem;display:grid;grid-template-columns:140px 2fr}}.contact form input[type=email],.contact form input[type=text],.contact form select,.contact form textarea{background-color:#f8f8f8}#contact_form #reason{border:none}@media(min-width:40em){#contact_form #reason{grid-gap:.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}#contact_form #reason label{border:1px solid rgba(0,0,0,.125);border-radius:6px;cursor:pointer;display:block;padding:.5rem;transition:background-color .2s ease-in-out,border-color .2s ease-in-out;width:100%}#contact_form #reason label input{margin-right:.5rem}#contact_form #reason label.active,#contact_form #reason label:hover{border:1px solid var(--color-spot)}@media(min-width:40em){#contact_form #reason label{align-items:center;display:flex}}.contact-hq-info h3{color:#fff}.contact-hq-info .paragraph,.contact-hq-info a,.contact-hq-info address{color:color-mix(in srgb,var(--color-primary) 20%,#fff);font-size:.9rem}.contact-hq-info *{line-height:1.5}.contact-hq-info a{color:color-mix(in srgb,var(--color-primary) 20%,#fff)}.contact .form .grid-container{grid-row-gap:0}@media(min-width:64em){.contact .form .grid-container{grid-row-gap:1rem}}.intro-start-rive-animation{aspect-ratio:1/1;display:none;height:clamp(300px,60vw,100%);max-width:100%;width:clamp(300px,60vw,100%)}@media(min-width:64em){.intro-start-rive-animation{display:block}}.intro-start-rive-animation-mobile{aspect-ratio:1/1;display:block;height:clamp(300px,60vw,100%);max-width:100%;width:clamp(300px,60vw,100%)}@media(min-width:64em){.intro-start-rive-animation-mobile{display:none}}.intro-dci-rive-animation{aspect-ratio:13/10;height:clamp(300px,60vw,100%);max-width:100%;width:clamp(300px,60vw,100%)}.dci-start-animation{aspect-ratio:3/2;height:clamp(150px,60vw,300px);max-width:100%;width:clamp(600px,60vw,400px)}.vci-rive-animation{aspect-ratio:16/9;height:clamp(300px,80vw,100%);max-width:100%;position:relative;width:clamp(300px,80vw,100%)}.vci-rive-animation:after{background-color:#1d1f28;bottom:0;content:"";height:10%;position:absolute;right:0;width:506px;z-index:1}.bg-line-pattern{background-color:#20242e;background-position:50%;background-repeat:no-repeat;background-size:40%}.bg-line-pattern-dark{background-color:#1c1f28}.bg-line-pattern-magenta,.bg-line-pattern-magenta-light{background-image:url(/images/bg-lines-magenta.svg)}.bg-line-pattern-magenta-light{background-color:#fff}.bg-line-pattern-primary,.bg-line-pattern-primary-light{background-image:url(/images/bg-lines-blue.svg)}.bg-line-pattern-primary-light{background-color:#fff}.bg-line-pattern-yellow,.bg-line-pattern-yellow-light{background-image:url(/images/bg-lines-yellow.svg)}.bg-line-pattern-yellow-light{background-color:#fff}.bg-line-pattern-green{background-image:url(/images/bg-lines-green.svg)}.zoom-card{align-items:center;background-color:rgba(0,0,0,.25);border-radius:6px;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;visibility:hidden;z-index:10}.zoom-card,.zoom-card-content{opacity:0;overflow:hidden;transition:opacity .2s ease-in-out}.zoom-card-content{background-color:#fff;border-radius:8px;box-shadow:0 50px 100px -20px rgba(50,50,93,.25),0 30px 60px -30px rgba(0,0,0,.3),0 -18px 60px -10px rgba(0,0,0,.025);max-width:300px;min-width:200px;width:90%;will-change:opacity}@media(min-width:40em){.zoom-card-content{max-width:600px;min-width:300px}}.zoom-card-active{opacity:1;visibility:visible}.zoom-card-active .zoom-card-content{opacity:1}.zoom-card-content header{align-items:center;border-bottom:1px solid #ccc;display:flex;justify-content:space-between;padding:1rem 1.5rem}.zoom-card-content header .button-transparent:hover{background-color:transparent}.zoom-card-content header .icon{align-items:center;border-radius:50%;color:#ccc;cursor:pointer;display:flex;font-size:1rem;height:34px;justify-content:center;transition:background-color .3s ease;width:34px}.zoom-card-content header .icon:hover{background-color:var(--color-grey);color:#fff}.zoom-card-content main{padding:2rem}[zoom-card-open]{cursor:pointer;position:relative}.oauth-tools{--start-color:#ebdbf1;--end-color:hotpink;--border-width:5px;--bg-color:#22232f}.oauth-tools header~.section{content-visibility:unset}.oauth-tools .section h1,.oauth-tools .section h2,.oauth-tools .section h3{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-image:linear-gradient(90deg,var(--start-color),var(--end-color));font-family:var(----font-bold)}.oauth-tools h1{letter-spacing:-.01em}@media(min-width:74em){.oauth-tools h1{font-size:5rem}}.oauth-tools{background-color:var(--bg-color)}.oauth-tools-isometric{display:none;height:auto;object-fit:contain;opacity:.7;position:absolute;right:0;top:10vh;width:35vw;z-index:1}@media(min-width:52em){.oauth-tools-isometric{display:block}}.oauth-tools-swoosh{height:auto;left:-12vw;object-fit:cover;position:absolute;top:15vh;width:30vw;z-index:1}.oauth-tools-app-icons svg{max-height:60px;max-width:80px}.oauth-tools-app-icons svg:first-of-type{margin-right:.2rem}.oauth-tools-app-icons svg *{fill:#fff}.unique-combination-video{margin:0 auto;max-width:480px}@media(min-width:64em){.unique-combination-video{flex:0 0 50%;max-width:unset}}.logo-parade{--gap:3rem;--track-width:150px;--height:100px;display:flex;gap:var(--gap);overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.logo-parade-content{--scroll-speed:30s;animation-play-state:paused;display:flex;flex-shrink:0;gap:var(--gap);justify-content:space-around;list-style:none;min-width:100%}.enable-animation .logo-parade-content{animation:scroll var(--scroll-speed) linear infinite}@keyframes scroll{0%{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--gap)))}}.logo-parade:after,.logo-parade:before{content:"";height:var(--height);position:absolute;width:var(--track-width);z-index:2}@media(min-width:600px){.logo-parade:after,.logo-parade:before{background:linear-gradient(90deg,#fff 0,hsla(0,0%,100%,0))}}.logo-parade:after{right:0;top:0;transform:rotate(180deg)}.logo-parade:before{left:0;top:0}.landing-form-layout-container .intro-animation{display:none}@media(min-width:74em){.landing-form-layout-container .intro-animation{display:block}}.landing-form-layout-container .intro-presentation{flex:0 0 100%;order:2;text-align:center}@media(min-width:74em){.landing-form-layout-container .intro-presentation{flex:0 0 50%;order:1;text-align:initial}}@media(min-width:52em){.landing-form-layout-container .intro-wrapper{padding-left:4rem;padding-right:4rem}}.landing-form-layout-container .intro-presentation{text-align:initial}@media(min-width:52em){.landing-form-layout-container .intro-presentation{flex:0 0 80%}}@media(min-width:64em){.landing-form-layout-container .intro-presentation{flex:0 0 80%;order:1;padding-bottom:4rem;padding-top:4rem;text-align:initial}}@media(min-width:74em){.landing-form-layout-container .intro-presentation{flex:0 0 70%}}.landing-form-layout-container .intro-copy .h1,.landing-form-layout-container .intro-copy h1{font-size:2.25rem;letter-spacing:-.02em}@media(min-width:74em){.landing-form-layout-container .intro-copy .h1,.landing-form-layout-container .intro-copy h1{font-size:2.5rem}}@media(min-width:114em){.landing-form-layout-container .intro-copy .h1,.landing-form-layout-container .intro-copy h1{font-size:3rem}}.landing-form-layout .intro-overlay a{color:#fff}.landing-form-layout-container{--page-bg:#fff;background:#fff;min-height:100vh;min-width:100%}@media(min-width:64em){.landing-form-layout-container{display:grid;grid-template-columns:2fr 400px}}.landing-form-layout-form{background-attachment:fixed;background-image:radial-gradient(#ddd 1px,transparent 0),radial-gradient(#ddd 1px,transparent 0);background-position:0 0,25px 25px;background-size:50px 50px;min-height:100%;padding:2rem}@media(min-width:64em){.landing-form-layout-form{align-self:start;border-left:1px solid #ccc;padding:3rem}}.landing-form-layout-form-wrapper{position:sticky;top:calc(var(--header-height) + 2rem)}.landing-form-layout-main{background-color:var(--page-bg)}.section-wallet-use-cases{--color-primary:#323c53;--color-primary-dark:#262c3d;background-color:var(--color-primary-dark);background-image:repeating-radial-gradient(circle at 0 0,transparent 0,var(--color-primary) 10px),repeating-linear-gradient(var(--color-primary),var(--color-primary-dark))}.wallet-gallery{grid-column-gap:2rem;grid-row-gap:2rem;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);margin:0 auto;max-width:90em}@media(min-width:52em){.wallet-gallery{display:grid}}.wallet-gallery-item,.wallet-gallery-item img{height:100%;object-fit:cover;width:100%}.wallet-gallery-item-1{grid-area:1/1/3/3}.wallet-gallery-item-2{display:none;grid-area:1/3/2/5}@media(min-width:52em){.wallet-gallery-item-2{display:block}}.wallet-gallery-item-3{display:none;grid-area:2/3/3/4}@media(min-width:52em){.wallet-gallery-item-3{display:block}}.wallet-gallery-item-4{display:none;grid-area:2/4/3/5}@media(min-width:52em){.wallet-gallery-item-4{display:block}}.wallet .grid-container-example>div:not(:last-child){position:relative}@media(min-width:74em){.wallet .grid-container-example>div:not(:last-child):after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23d859a1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' class='prefix__lucide prefix__lucide-arrow-right' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px;content:"";height:100px;left:calc(100% - 50px + .5rem);position:absolute;top:30%;width:100px;z-index:1}}.wallet-guidance{background-color:color-mix(in srgb,var(--color-primary),#000 25%);box-shadow:0 0 0 2px rgba(0,0,0,.05),0 0 0 1px hsla(0,0%,100%,.1),inset 0 1.5px 0 hsla(0,0%,100%,.4)}.wallet-guidance header{border-bottom:1px solid var(--color-primary);padding:1rem 1.5rem}.wallet-guidance-omni-field{background-color:var(--color-primary-dark);border:1px solid var(--color-primary-light);font-size:.85rem}.wallet-guidance-omni-field span:first-child{background-color:#262930;border-right:1px solid var(--color-primary-light);color:var(--color-primary-light)}.wallet-guidance-omni-field-url{color:#f5f5f5}.landing-page table td:first-child p{white-space:nowrap}body.training{margin-top:calc(var(--header-height) + var(--resources-header-height))}body.training .intro-full{min-height:calc(100vh - var(--header-height) - var(--resources-header-height))}.training-container{height:100%}.training-container,.training-main{min-height:calc(100vh - 172px)}@media(min-width:52em){.training-main{margin-left:320px;width:calc(100% - 320px)}}.training-main .container{position:relative;top:6rem}body.training .footer{display:none}.resources-searchbar-course-title+.training-progressbar-holder{max-width:200px}.training-progressbar-holder{align-items:flex-end;display:flex;flex-direction:column;justify-content:space-between}.training-progressbar{background-color:#ccc;border-radius:40px;height:6px;min-width:120px;width:100%}.training-progressbar-fill{background-color:var(--color-spot);border-radius:inherit;height:6px;text-align:right;transition:width .5s ease-in-out;width:0}.training-progressbar-label{font-size:.85rem;line-height:1;margin-top:.25rem}.quiz [type=radio]:checked,.quiz [type=radio]:not(:checked){clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.quiz [type=radio]:checked+label,.quiz [type=radio]:not(:checked)+label{color:#666;cursor:pointer;display:flex;line-height:1;padding-left:28px;position:relative}.quiz [type=radio]:checked+label:before,.quiz [type=radio]:not(:checked)+label:before{align-items:center;background:#fff;border:1px solid #ddd;border-radius:100%;content:"";display:flex;height:18px;justify-content:center;left:0;position:absolute;top:0;width:18px}.quiz [type=radio]:checked+label:after,.quiz [type=radio]:not(:checked)+label:after{background:var(--color-spot);border-radius:50%;content:"";height:10px;left:4px;position:absolute;top:4px;transition:all .2s ease;width:10px}.quiz [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.quiz [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.training-finished-course{border-radius:12px;box-shadow:0 6px 24px 0 rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.08);margin-bottom:8rem}.training-checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:3;stroke-miterlimit:10;stroke:var(--color-success);fill:none;animation:training-stroke .6s cubic-bezier(.65,0,.45,1) forwards}.training-checkmark{stroke-width:3;stroke:var(--color-success);stroke-miterlimit:10;animation:training-fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;border-radius:50%;box-shadow:inset 0 0 0 var(--color-success);display:block;height:56px;margin:2rem auto;width:56px}.training-checkmark-check{stroke-dasharray:48;stroke-dashoffset:48;animation:training-stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards;transform-origin:50% 50%}@keyframes training-stroke{to{stroke-dashoffset:0}}@keyframes training-scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes training-fill{to{box-shadow:inset 0 0 0 30px #fff}}.training-sidebar{border-right:1px solid #ddd;height:calc(100vh - var(--resources-header-height));left:0;position:fixed;top:calc(var(--header-height) + 69px);width:100%;width:320px;z-index:3}.training-sidebar-inner{background-color:color-mix(in srgb,var(--color-primary) 8%,#fff);height:calc(100vh - var(--header-height) - 69px);overflow-y:auto;position:absolute;top:0;width:100%}.training-sidebar-inner li:first-child{background-color:color-mix(in srgb,var(--color-primary) 5%,#fff);border-bottom:1px solid #ccc}@media(min-width:64em){.training-sidebar-inner li:first-child{position:sticky;top:0}}.training-sidebar-inner li a{color:var(--color-primary);transition:background-color .2s}.training-sidebar-inner li a:hover{text-decoration:none}.training-sidebar-inner li:not(:first-child) a{padding:.5rem 1rem .5rem 2rem}.training-sidebar-inner li a.level-1{padding:.5rem 1rem .5rem 1.5rem}.training-sidebar-inner li a.level-1 .icon{font-size:2rem}.training-sidebar-inner li a.level-2{padding:.35rem 1rem .35rem 3rem}.training-sidebar-inner li a.level-2 h4{font-family:Roboto-Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:.85rem}.training-sidebar-inner li a.level-2 .icon{font-size:1.5rem}.training-sidebar-inner h4{font-family:Roboto-Medium;font-size:1rem}.training-sidebar-inner li a.active,.training-sidebar-inner li:not(:first-child) a:hover{background-color:#fff}.training-sidebar-inner li a .icon{transform-origin:center;transition:transform;transition:.3s ease-in}.training-sidebar-inner li a .icon:after{content:"";font-family:Ionicons;font-style:normal}.training-sidebar-inner li a.active .icon{animation:notify .1s cubic-bezier(1,0,0,1) 2 alternate}.training-sidebar-inner li a.active .icon:after{color:var(--color-spot);content:""}.training-sidebar-inner li a.finished .icon:after{color:var(--color-resources-develop);content:""}.solutions [class*=solutions-line]{display:none;position:absolute;z-index:1}@media(min-width:74em){.solutions [class*=solutions-line]{display:block}}.solutions [class*=solutions-line-line]{stroke:#ccc;stroke-width:2;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.intro-animation-open-banking{align-items:center;display:flex;justify-content:center}.solutions-openbanking .intro-animation-holder{display:inline-flex;transform:translateX(2rem)}@media(min-width:64em){.solutions-openbanking .intro-animation-holder{transform:none}}.open-banking-psd2{height:60px;left:0;object-fit:contain;position:absolute;top:120px;width:60px}@media(min-width:40em){.open-banking-psd2{height:86px;left:0;top:200px;width:86px}}@media(min-width:64em){.open-banking-psd2{height:86px;left:0;top:260px;width:86px}}.oauth-and-openid-connect{bottom:-128px;display:none;position:absolute;z-index:1}@media(min-width:64em){.oauth-and-openid-connect{display:grid;grid-auto-flow:column}}.oauth-and-openid-connect figure:nth-child(2){transform:translateX(-1rem);z-index:10}.open-banking-intro-bank{display:block;height:16em;margin:0 auto;width:16em}@media(min-width:40em){.open-banking-intro-bank{display:initial;height:26em;margin:unset;width:26em}}@media(min-width:64em){.open-banking-intro-bank{display:initial;height:32em;margin:unset;width:32em}}.solutions-openbanking-brazil .intro-overlay{background-blend-mode:overlay;background-color:#2a303a;background-image:url(/images/solutions/open-banking-brazil/open-banking-brazil-background.webp);background-position:center 80%;background-size:cover}.solutions-openbanking-uk .intro-overlay{background-blend-mode:overlay;background-color:rgba(0,0,0,.75);background-image:url(/images/solutions/open-banking-uk/intro-background.avif);background-position:center 40%;background-size:cover}.solutions-openbanking-us .intro-overlay{background-blend-mode:overlay;background-color:rgba(0,0,0,.75);background-image:url(/images/solutions/open-banking-us/ferdinand-stohr-PeFk7fzxTdk-unsplash.jpg);background-position:center 20%;background-size:cover}.zero-trust-intro-animation{display:block;height:12em;margin:0 auto;max-height:none;position:absolute;right:calc(50% - 6em - 1.5rem);top:50%;width:12em}@media(min-width:40em){.zero-trust-intro-animation{display:initial;height:20em;margin:unset;right:calc(50% - 12em);top:auto;top:0;width:20em}}@media(min-width:64em){.zero-trust-intro-animation{height:26em;right:calc(50% - 13em);top:calc(50% - 13em);width:26em}}@media(min-width:74em){.zero-trust-intro-animation{height:36em;right:calc(50% - 21em);top:calc(50% - 21em);width:36em}}.solutions-zero-trust .intro-animation-holder{display:inline-flex;margin-bottom:12rem}@media(min-width:40em){.solutions-zero-trust .intro-animation-holder{margin-bottom:24rem}}@media(min-width:64em){.solutions-zero-trust .intro-animation-holder{margin-bottom:0;transform:none}}.zero-trust-intro-image{display:block;height:5em;margin:0 auto;position:absolute;right:calc(50% - 2.5em);top:calc(50% + 3.5rem);width:5em}@media(min-width:40em){.zero-trust-intro-image{height:9em;right:calc(50% - 4.5em);top:calc(50% + 6em);width:9em}}@media(min-width:64em){.zero-trust-intro-image{height:11em;right:calc(50% - 2.5em);top:calc(50% - 5.5em);width:11em}}@media(min-width:74em){.zero-trust-intro-image{height:14em;right:calc(50% - 5.5em);top:calc(50% - 8.5em);width:14em}}.frictionless-intro-checkmark{display:block;height:6.5em;position:absolute;right:calc(50% - 3.25em);top:calc(50% - .75rem);width:6.5em}@media(min-width:40em){.frictionless-intro-checkmark{height:13em;right:calc(50% - 6.5rem);top:calc(42% - 2rem - 50px);width:13em}}@media(min-width:64em){.frictionless-intro-checkmark{right:calc(50% - 3.25rem)}}.frictionless-intro-lock{display:block;height:2em;left:calc(50% - 8rem);position:absolute;top:-1em;width:2em}@media(min-width:40em){.frictionless-intro-lock{height:4em;left:9.65rem;top:calc(-9.7rem - 40px);width:4em}}.frictionless-intro-user{display:block;height:4em;position:absolute;right:calc(50% - 7em);top:4em;width:4em}@media(min-width:40em){.frictionless-intro-user{height:7em;right:10rem;top:calc(-7.5em - 30px);width:7em}}.frictionless-intro-animation{display:block;height:14em;margin:0 auto;max-height:none;position:absolute;top:calc(50% - 7em);width:14em}@media(min-width:40em){.frictionless-intro-animation{display:initial;height:26em;margin:unset;top:calc(50% - 13em - 50px);width:26em}}@media(min-width:74em){.frictionless-intro-animation{right:calc(50% - 10em)}}.solutions-frictionless .intro-animation-holder{display:inline-flex;margin-bottom:6rem}@media(min-width:40em){.solutions-frictionless .intro-animation-holder{height:auto;margin-bottom:10rem;transform:none}}@media(min-width:64em){.solutions-frictionless .intro-animation-holder{margin-bottom:0}}.modernizing-intro-image{display:block;height:7em;margin:0 auto;position:absolute;right:calc(50% - 3.5em);top:calc(50% - 1em);width:7em}@media(min-width:40em){.modernizing-intro-image{height:12em;right:calc(50% - 6em);top:calc(50% + 4em);width:12em}}@media(min-width:64em){.modernizing-intro-image{height:16em;right:calc(50% - 8em);top:calc(50% - 5.5em);width:16em}}.modernizing-intro-animation{display:block;height:14em;margin:0 auto;max-height:none;position:absolute;top:calc(50% - 7em);width:14em}@media(min-width:40em){.modernizing-intro-animation{height:30em;right:calc(50% - 15em);top:calc(50% - 8em);width:30em}}@media(min-width:64em){.modernizing-intro-animation{height:30em;right:calc(50% - 15em);top:calc(50% - 20em);width:30em}}.solutions-modernizing .intro-animation-holder{display:inline-flex;margin-bottom:6rem}@media(min-width:40em){.solutions-modernizing .intro-animation-holder{margin-bottom:16rem}}@media(min-width:64em){.solutions-modernizing .intro-animation-holder{height:auto;margin-bottom:0;transform:none}}@media(min-width:52em){.modernizing-standards-figure{height:12em;width:32em}}@media(min-width:40em){.modernizing-standards-image{height:37em;left:-1em;position:absolute;top:-18rem;width:37em;z-index:1}}@media(min-width:64em){.modernizing-standards-image{height:40em;left:-1em;top:-20rem;width:40em;z-index:1}}.common-identity-platform-intro-logo-figure{margin:0 auto 6rem;max-width:160px}@media(min-width:64em){.common-identity-platform-intro-logo-figure{margin-bottom:0}}.common-identity-platform-intro-logo{margin:0 auto;max-width:100px}@media(min-width:40em){.common-identity-platform-intro-logo{animation:pulses 1s linear infinite;left:calc(50% - 80px);max-width:160px;position:absolute;top:calc(50% - 80px);transition-timing-function:var(--ease-in-cubic)}}@media(min-width:74em){.common-identity-platform-intro-logo{animation:pulses 1s linear infinite;left:calc(50% - 116px);max-width:232px;position:absolute;top:calc(50% - 18px);transition-timing-function:var(--ease-in-cubic)}}.common-identity-platform-intro-top{margin:0 auto;max-width:280px}@media(min-width:40em){.common-identity-platform-intro-top{margin-bottom:5rem;max-width:400px}}@media(min-width:74em){.common-identity-platform-intro-top{left:calc(50% - 300px);max-width:600px;position:absolute;top:-150px}}@keyframes pulses{0%{transform:scale(.9)}50%{transform:scale(1)}to{transform:scale(.9)}}.header-top-link{color:#fff;font-size:.9rem}.header-top-link:hover{color:currentColor;text-decoration:none}.header-top-link{align-items:center;border-radius:2rem;display:flex;height:32px;padding:.15rem .75rem;white-space:nowrap}.header-top-link:hover{background-color:color-mix(in srgb,var(--color-primary),#000 14%)}.header-nav-contact{color:#fff}.header-nav-contact a{justify-content:center;padding:.15rem .75rem}.header-top-link-dropdown{align-items:center;cursor:pointer;display:inline-flex;height:100%;padding:0;position:relative}.header-top-link-dropdown .header-top-link{color:#fff}.header-top-link-dropdown:focus:not(:focus-visible){box-shadow:none;outline:none}.header-top-link-dropdown:hover .header-top-link{background-color:color-mix(in srgb,var(--color-primary),#000 14%);text-decoration:none}.header-top-link-dropdown.active .header-top-link{background-color:var(--color-primary);border-radius:2rem}.dropdown-content{background-color:#fff;border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:0 10px 30px 0 rgba(0,0,0,.16);left:0;max-height:80vh;min-width:280px;opacity:0;overflow:auto;overflow:hidden;position:absolute;text-align:left;top:var(--header-nav-height);transform:scale(.9);transition-duration:.15s;transition-property:opacity;transition-property:transform,opacity,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden;z-index:10}.dropdown-content-link{border-radius:0;color:var(--color-primary);font-size:.9rem;padding:.75rem 2.5rem .75rem 1.5rem;position:relative;transition-duration:.3s;transition-property:fill;width:100%}.dropdown-content-link:hover:not(.dropdown-content-link-dark):first-child{border-top-left-radius:8px;border-top-right-radius:8px}.dropdown-content-link:hover:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.dropdown-content-link:hover{background-color:#fafafa;color:var(--color-primary);text-decoration:none}.dropdown-content-link.active,.dropdown-content-link[aria-current=page]{background-color:#f6f6f6}.dropdown-content-link:not(.dropdown-content-link-logout,.dropdown-content-link-noarrow):after{background-image:url(/images/right-arrow.svg);background-position:50%;background-repeat:no-repeat;background-size:10px 8px;content:" ";display:inline-block;height:8px;margin-left:8px;opacity:.5;position:absolute;right:1rem;transition:transform .1s ease 0s,opacity .1s ease 0s;vertical-align:-1px;width:10px}.dropdown-content .dropdown-content-link-text-heading{align-items:center;display:flex;font-size:1rem;line-height:1.5}.dropdown-content .dropdown-content-link-text-description{color:#666;display:flex;font-size:.75rem;line-height:1.25}.dropdown-content p{font-family:var(--type-regular);font-size:1rem;font-weight:400}.dropdown-content.active{opacity:1;transform:scale(1);visibility:visible}.header-top-link-dropdown svg{display:inline-flex;margin-left:.25rem;transform-origin:50% 50%;transition:transform .2s}.dropdown-content h5{font-size:.75rem}.header-top-link .ion-ios-arrow-down.active{transform:rotate(180deg)}.header-top-link-dropdown .dropdown-content.dropdown-content-product{left:0;min-width:1000px;top:100%;width:min-content}.dropdown-content-link-sub-page{padding-left:3rem}.dropdown-content-link-sub-page .dropdown-content-link-text-heading{font-size:.85rem}.product-nav-holder{border:1px solid #ccc;border-radius:8px;overflow:hidden;position:relative}.header-top-link-dropdown .dropdown-content.dropdown-content-resources{left:0;min-width:1000px;top:100%;width:min-content}.dropdown-content-user{color:var(--color-primary)}.dropdown-content-user,.dropdown-content-user .dropdown-content-link{min-width:180px}.header-top-link-dropdown .dropdown-content.dropdown-content-solutions{left:0;min-width:800px;top:100%;width:min-content}.header-top-link-dropdown .dropdown-content.dropdown-content-developer{overflow:hidden;position:absolute;width:350px}.dropdown-content-link-dark{background-image:url(/images/emptybox.svg);background-position:left -240px;background-repeat:no-repeat;background-size:110%;position:relative}.dropdown-content-link-dark,.dropdown-content-link-dark.active{background-color:color-mix(in srgb,var(--color-primary),#000 50%)}.dropdown-content-link-dark:after{background-image:url(/images/right-arrow-white.svg);opacity:1}.dropdown-content-link-dark:focus{background-color:color-mix(in srgb,var(--color-primary),#000 30%)}.dropdown-content-link-dark:hover{background-color:color-mix(in srgb,var(--color-primary),#000 28%)}.header-top-link-dropdown .dropdown-content.dropdown-content-user{left:auto;position:absolute;right:0;top:49px;width:240px}@media(min-width:100em){.header-top-link-dropdown .dropdown-content.dropdown-content-user{left:0;right:auto}}.header-nav-login{justify-content:flex-end}@media(min-width:100em){.header-nav-login{min-width:100px}}.header-top-link-dropdown .dropdown-content.dropdown-content-company{left:0;min-width:800px;top:100%;width:min-content}.mobile-nav{--width:100vw;-webkit-overflow-scrolling:touch;align-items:center;background-color:var(--color-primary-dark);border-radius:4px;box-shadow:2.8px 2.8px 2.2px rgba(0,0,0,.02),6.7px 6.7px 5.3px rgba(0,0,0,.028),12.5px 12.5px 10px rgba(0,0,0,.035),22.3px 22.3px 17.9px rgba(0,0,0,.042),41.8px 41.8px 33.4px rgba(0,0,0,.05),100px 100px 80px rgba(0,0,0,.07);content-visibility:auto;justify-content:center;left:auto;margin-left:auto;margin-right:auto;max-height:100vh;min-height:100vh;opacity:0;overflow:auto;overflow-y:scroll;position:fixed;right:0;top:0;transform:translateX(100%);transform:translateX(var(--width));transition:transform .3s;visibility:hidden;width:var(--width);z-index:600}.mobile-nav.active{opacity:1;transform:translateX(0);visibility:visible}@media(min-width:40em){.mobile-nav{--width:400px}}.mobile-nav button.button-has-dropdown{height:unset;padding:.25rem .75rem}.mobile-nav .button-has-dropdown .icon{display:none}.mobile-nav nav ul{content-visibility:auto}.mobile-nav button.navigation-expand{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;border:none;border-radius:0;display:flex;justify-content:space-between;outline:none;width:100%}.mobile-nav li button.navigation-expand,.mobile-nav ul>li a{color:#fff;font-size:1.25rem;line-height:calc(var(--button-line-height)*1.5);padding:calc(var(--button-padding-y)*1.5) calc(var(--button-padding-x)*1.5)}.mobile-nav li button.navigation-expand:hover,.mobile-nav ul>li a:hover{text-decoration:none}.mobile-nav li button.navigation-expand{font-family:var(--type-regular);opacity:1}.mobile-nav li button.navigation-expand:hover{box-shadow:none;text-decoration:none}.mobile-nav li button.navigation-expand.navigation-expand-active{background-color:color-mix(in srgb,var(--color-primary),#000 20%);color:#fff}button.navigation-expand .icon{color:var(--color-primary-light);cursor:pointer;font-size:.85rem;outline:0;transition:transform .2s ease}button.navigation-expand-active .icon{transform:rotate(180deg)}.mobile-nav-logo{max-width:120px}.mobile-nav .mobile-nav-children li a{color:#fff;display:block;font-size:.95rem;opacity:1;padding:.75rem .75rem .75rem 4rem;text-decoration:none;transition:.3s}.mobile-nav .mobile-nav-children li a:hover{text-decoration:none}.mobile-nav .mobile-nav-children{content-visibility:auto;display:grid;grid-template-columns:1fr;margin:0;max-height:0;overflow:hidden;transition:max-height .3s ease-out}.mobile-nav .mobile-nav-children.is-visible{max-height:1600px;transition:max-height .2s ease-in}.mobile-nav .mobile-nav-close{align-items:center;color:#fff;display:flex;font-size:32px;height:36px;justify-content:center;line-height:36px;padding:0;text-align:center;width:36px}.mobile-nav .mobile-nav-close:hover{background-color:color-mix(in srgb,var(--color-primary),#000 20%);color:#fff;text-decoration:none}.hamburger{align-items:flex-start;cursor:pointer;display:flex;position:relative}.header-top-link-hamburger:hover{background-color:transparent}.hamburger__text{align-self:center;color:#fff;content:"Menu";flex:1 1;font-size:.9rem;letter-spacing:.1rem;margin:0 .5rem 0 0;text-transform:uppercase;-webkit-user-select:none;user-select:none}.hamburger__icon{align-self:center;cursor:pointer;flex:1 1;height:20px;position:relative;transform:rotate(0deg);transition:.5s ease-in-out;width:28px}.hamburger__icon span{background:var(--color-spot);border-radius:0;display:block;height:3px;left:0;opacity:1;position:absolute;transform:rotate(0deg);transition:.25s ease-in-out;width:100%}.hamburger__icon span:first-child{top:0}.hamburger__icon span:nth-child(2),.hamburger__icon span:nth-child(3){top:8px;width:70%}.hamburger__icon span:nth-child(4){top:16px}.hamburger__icon:hover span:nth-child(2){width:100%}.hamburger__icon.open span{background:var(--color-spot)}.hamburger__icon.open span:first-child{left:50%;top:16px;width:0}.hamburger__icon.open span:nth-child(2){transform:rotate(45deg)}.hamburger__icon.open span:nth-child(3){transform:rotate(-45deg)}.hamburger__icon.open span:nth-child(4){left:50%;top:16px;width:0}.release-nav a{display:block;font-size:1.25;margin-right:.5rem}@media(min-width:52em){.release-nav a{display:inline-block}}.resources-topic small{align-items:center;display:flex;justify-content:center}.resources-time{align-items:center;border-radius:2px;color:var(--color-primary);display:inline-flex;font-size:.85rem;justify-content:space-between;padding:.35rem .5rem}.resources-topic svg{border-radius:6px;box-shadow:0 5px 15px 0 rgba(112,128,175,.2);display:inline-flex;height:36px;padding:.5rem;transition:box-shadow .3s ease-in-out;width:36px}.resources-topic svg:hover{box-shadow:0 5px 15px 0 rgba(112,128,175,.5)}.resources-topic-develop{color:var(--color-resources-develop)}.resources-topic-architect{color:var(--color-spot)}.resources-topic-livepresentation,.resources-topic-operate,.resources-topic-usecases{color:var(--color-primary)}.career-post-meta{border:1px solid #ccc}.career-post-meta>div:first-child,.career-post-meta>div:nth-child(2),.career-post-meta>div:nth-child(3){border-bottom:1px solid #ccc}#hippo-audio-check-container,#hippo-screen-check-container,#hippo-webcam-check-container{display:none!important}.hippo-embed-widget-container{margin:0!important}.career-interview-presentation .gatsby-image-wrapper{border:4px solid #fff}@media(min-width:52em){.career-interview-presentation .gatsby-image-wrapper{margin-top:-160px;position:relative}}.career-interview-presentation{align-items:center;display:flex}@media(min-width:52em){.career-interview-presentation{display:initial}}.blog .circle{border:4px solid transparent;transition:border-color .4s}.blog .circle:hover{border:4px solid var(--color-spot)}.blog article div[itemprop=description] p,.blog article ol,.blog article ul{margin:0}.blog article>div[itemprop=description]{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}.blog article{max-width:110ch}@media(min-width:52em){.events>li a{grid-gap:2rem;display:grid;grid-template-columns:1.5fr 4fr 1.5fr}}.events-date *{color:var(--color-paragraphs)}.events-date-date-day{color:var(--color-spot);font-size:2rem;line-height:1.2}@media(min-width:52em){.events-date-date-day{font-size:3.5rem}}ul.Conference li[href*=Conference]{display:block}ul.Conference li[href*=Livecast],ul.Conference li[href*=Webinar]{display:none}ul.Webinar li[href*=Webinar]{display:block}ul.Webinar li[href*=Conference],ul.Webinar li[href*=Livecast]{display:none}.news-pagination{grid-gap:1rem;display:grid;grid-auto-flow:column;place-items:center}.productbar{-webkit-backdrop-filter:saturate(180%) blur(5px);backdrop-filter:saturate(180%) blur(5px);background-color:rgba(0,0,0,.6);box-shadow:inset 0 -1px 0 0 hsla(0,0%,100%,.1);display:none;padding:.5rem;position:fixed;right:0;top:var(--header-height);width:100%;z-index:50}@media(min-width:64em){.productbar{display:block}}.productbar select{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");border:1px solid #fff;color:#fff;font-size:.85rem;outline:none}.productbar select option{color:initial}.white-fill{fill:#fff}.blue-stroke{stroke-width:3px;stroke:var(--color-primary)}.blue-stroke-thin{stroke-width:1px;stroke:var(--color-primary)}.white-stroke{stroke-width:3px;stroke:#fff}.white-stroke-thin{stroke-width:1px;stroke:#fff}.green-fill{fill:var(--color-resources-develop)}.dark-grey-fill{fill:#1b1b1b}.blue-fill{fill:var(--color-primary)}.dark-blue-fill{fill:color-mix(in srgb,var(--color-primary),#000 20%)}.grey-fill{fill:#e2e0e0}.transparent-fill{fill:transparent}.shadow{fill:var(--color-primary);opacity:.25}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOutVisibility{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes fadeInVisibility{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{transform:translateX(-50%)}50%{transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{transform:translateX(50%)}50%{transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInTop{0%{transform:translateY(-50%)}50%{transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@keyframes slideInBottom{0%{transform:translateY(50%)}50%{transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes flash{0%{opacity:1}50%{opacity:.1}to{opacity:1}}@keyframes dash{to{stroke-dashoffset:500}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1.1)}80%{opacity:1;transform:scale(.89)}to{opacity:1;transform:scale(1)}}@keyframes bounceScale{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}@keyframes browserMove{to{transform:scale(.75) translateX(-35%) translateY(-25%)}}@keyframes browserMoveRight{0%{transform:scale(.75) translateX(-35%) translateY(-25%)}to{transform:translateX(50%)}}@keyframes pulseprimary{0%{box-shadow:0 0 0 0 rgba(var(--color-primary),.4)}to{box-shadow:0 0 0 60px rgba(var(--color-primary),0)}}.standard-circle{border-radius:50%;height:60px;width:60px}@media(min-width:64em){.standard-circle{height:90px;width:90px}}.section-standards-item{flex:0 0 33.333%}@media(min-width:64em){.section-standards-item{flex:0 0 33.333%}}.section-architecture{background-image:url(/images/architecture-background.svg);background-position:left -200px;background-repeat:repeat;background-size:50%}.section-architecture-stack-image{max-height:400px}@media(min-width:52em){.section-architecture-stack-image{max-height:600px}}@media(min-width:64em){.section-architecture-stack-image{max-height:700px}.section-architecture-main{align-items:center;display:flex;justify-content:space-between}}.section-architecture-side{align-items:flex-start;display:flex;flex:0 0 100%;justify-content:space-between}@media(min-width:64em){.section-architecture-side{align-items:normal;display:initial;flex:0 0 25%;height:500px;justify-content:normal}}.section-architecture-stack{flex:0 0 100%}@media(min-width:64em){.section-architecture-stack{flex:0 0 50%}}.architecture-part{padding-left:.5rem;padding-right:.5rem}@media(min-width:64em){.architecture-part-right{text-align:right}.architecture-part-right>.flex{justify-content:flex-end}}.architecture-part .section-architecture-apis,.architecture-part .section-architecture-apps,.architecture-part .section-architecture-server,.architecture-part .section-architecture-users{max-height:60px;max-width:60px;min-height:60px}@media(min-width:64em){.architecture-part .section-architecture-apis,.architecture-part .section-architecture-apps,.architecture-part .section-architecture-server,.architecture-part .section-architecture-users{max-height:120px;max-width:100px;min-height:100px}}.architecture-standards .standard-circle{height:46px;padding:.5rem;width:46px}.architecture-symbol{max-width:200px}.architecture-line-1{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;display:none;left:calc(100% - 40px);opacity:0;position:absolute;top:10%;z-index:10}@media(min-width:64em){.architecture-line-1{display:block}}.architecture-line-1-arrow,.architecture-line-1-circle{fill:var(--color-primary-light)}.architecture-line-1-line{stroke:var(--color-primary-light);stroke-width:.05rem;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.architecture-line-2{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;display:none;left:calc(100% - 40px);opacity:0;position:absolute;top:90%;z-index:10}@media(min-width:64em){.architecture-line-2{display:block}}.architecture-line-2-line{stroke:var(--color-primary-light);stroke-width:.05rem;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.architecture-line-2-arrow{fill:var(--color-primary-light)}.architecture-line-3{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;display:none;opacity:0;position:absolute;right:calc(100% - 30px);top:10%;transform:scaleX(-1);z-index:10}@media(min-width:64em){.architecture-line-3{display:block}}.architecture-line-3-line{stroke:var(--color-primary-light);stroke-width:.05rem;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.architecture-line-3-arrow{fill:var(--color-primary-light)}.architecture-line-4{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;display:none;opacity:0;position:absolute;right:calc(100% - 30px);top:90%;transform:scaleX(-1);z-index:10}@media(min-width:64em){.architecture-line-4{display:block}}.architecture-line-4-line{stroke:var(--color-primary-light);stroke-width:.05rem;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.architecture-line-4-arrow{fill:var(--color-primary-light)}.how-curity-works{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeInVisibility;opacity:0;transform:scale(.9);visibility:hidden}@media(min-width:64em){.how-curity-works{transform:scale(1)}}.how-curity-works-browser{background-attachment:fixed;background-color:#fff;background-color:#000;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 800'%3E%3Ccircle cx='400' cy='400' r='600'/%3E%3Ccircle cx='400' cy='400' r='500' fill='%23180d1c'/%3E%3Ccircle cx='400' cy='400' r='400' fill='%23261431'/%3E%3Ccircle cx='400' cy='400' r='300' fill='%23351947'/%3E%3Ccircle cx='400' cy='400' r='200' fill='%23451e5e'/%3E%3Ccircle cx='400' cy='400' r='100' fill='%23527'/%3E%3C/svg%3E");background-size:200%;border-radius:8px;box-shadow:0 10px 10px -20px rgba(50,50,93,.25),0 10px 20px -20px rgba(0,0,0,.3),0 -10px 20px -10px rgba(0,0,0,.025);flex:0 0 100%;margin:2.5rem auto;max-width:80%;position:relative;transition:transform 1s ease}.how-curity-works-browser-header{align-items:center;background-color:#e6e4e4;border-top-left-radius:8px;border-top-right-radius:8px;display:flex;padding:.5rem 1rem}.how-curity-works-browser-header-omnibar{background-color:#fff;border-radius:16px;display:flex;justify-content:center;margin:0 auto;min-width:50%;padding:.15rem 1rem}.how-curity-works-browser-header-omnibar .icon{color:#ccc}.how-curity-works-browser-header-omnibar-url{color:#666;font-size:.75rem}.how-curity-works-browser-header-omnibar-url.active{color:purple}.how-curity-works-browser-header span{background-color:#ccc;border-radius:50%;height:12px;position:relative;width:12px}.how-curity-works-browser-main{padding:3rem}.how-curity-works-browser-main-content-circle{background-color:#f2f2f2;border-radius:50%;flex:none;height:100px;width:100px}.how-curity-works-browser-main-content-loaded{align-items:center;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%}.how-curity-works-browser-main-content-loaded section{align-items:flex-start;display:flex;flex:0 0 75%;justify-content:space-between}.how-curity-works-browser-main-content-loaded section aside{align-items:center;display:flex;flex:0 0 20%;flex-direction:column;justify-content:center}.how-curity-works-browser-main-content-loaded section main{flex:0 0 70%}.how-curity-works-browser-main-content-loaded-avatar{background-color:#fff;border-radius:50%;height:40px;margin-bottom:2rem;opacity:0;width:40px}.how-curity-works-browser-main-content-loaded-lines{background-color:hsla(0,0%,100%,.5);border-radius:4px;height:8px;opacity:0;width:100%}.how-curity-works-browser-main-content-loaded-lines:first-of-type{width:90%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(2){width:80%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(3){width:70%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(4){width:60%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(5){width:50%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(6){width:40%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(7){width:30%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(8){width:20%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(9){width:10%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(10){width:0}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(11){width:-10%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(12){width:-20%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(13){width:-30%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(14){width:-40%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(15){width:-50%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(16){width:-60%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(17){width:-70%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(18){width:-80%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(19){width:-90%}.how-curity-works-browser-main-content-loaded-lines:nth-of-type(20){width:-100%}.how-curity-works-browser-main-field{background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:1rem 2rem;width:90%}.how-curity-works-browser-main-field span{background-color:#ccc;border-radius:50%;height:12px;opacity:0;position:relative;width:12px}.how-curity-works-browser-main-button{background-color:purple;border-radius:4px;color:#fff;font-family:Roboto-Medium;font-size:1.2rem;letter-spacing:.1em;padding:1rem 2rem;text-transform:uppercase;width:90%}.how-curity-works-browser-main-field-spinner{left:calc(50% - 25px);opacity:0;position:absolute;top:calc(50% - 25px);visibility:hidden}.how-curity-works-browser-main-field-spinner span{animation:spinning .5s linear infinite;border:3px solid hsla(0,0%,80%,.3);border-radius:50%;border-top-color:#ccc;display:inline-block;height:50px;width:50px}@keyframes spinning{to{transform:rotate(1turn)}}.how-curity-works-line{left:50%;opacity:0;position:absolute;top:10%;visibility:hidden;z-index:10}.how-curity-works-line-arrow{fill:var(--color-primary)}.how-curity-works-line-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-line-to-app{left:25%;opacity:0;position:absolute;top:55%;transform:scaleX(-1);visibility:hidden;z-index:10}.how-curity-works-line-to-app-arrow{fill:var(--color-primary)}.how-curity-works-line-to-app-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-line-vertical{opacity:0;position:absolute;right:-7%;top:50%;transform:rotate(90deg);visibility:hidden;z-index:10}.how-curity-works-line-vertical-arrow{fill:var(--color-primary)}.how-curity-works-line-vertical-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-line-api{left:0;opacity:0;position:absolute;top:-8%;transform:rotate(90deg) translateY(145%) translateX(90%);visibility:hidden;z-index:10}.how-curity-works-line-api-arrow{fill:var(--color-primary)}.how-curity-works-line-api-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-line-right{left:-10%;opacity:0;position:absolute;top:20%;transform:scaleX(-1);visibility:hidden;z-index:10}.how-curity-works-line-right-arrow{fill:var(--color-primary)}.how-curity-works-line-right-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-line-data{left:15%;opacity:0;position:absolute;top:75%;visibility:hidden;z-index:10}.how-curity-works-line-data-arrow{fill:var(--color-primary)}.how-curity-works-line-data-line{stroke:var(--color-primary);stroke-width:1;stroke-dasharray:4;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.how-curity-works-api,.how-curity-works-server,.how-curity-works-token,.how-curity-works-token2{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);display:flex;height:100px;justify-content:center;opacity:0;padding:1rem;position:absolute;visibility:hidden;width:100px}.how-curity-works-api img,.how-curity-works-server img,.how-curity-works-token img,.how-curity-works-token2 img{max-height:75%}.how-curity-works-token{bottom:30%;right:0;z-index:10}.how-curity-works-token2{left:-10%;top:10%;z-index:10}.how-curity-works-server{background-color:var(--color-primary);right:0;top:0;z-index:10}.how-curity-works-api{background-color:purple;left:-10%;top:65%;z-index:10}.how-curity-works-data{color:#000;font-family:Roboto-Mono,monospace;left:15%;opacity:0;position:absolute;top:68%;visibility:hidden;z-index:10}.how-curity-works-data span:first-child{color:#20b2aa}.multi-tenancy-colocated-label,.multi-tenancy-isolated-label{box-shadow:inset 0 0 0 0 #31302b;padding-left:.25rem;padding-right:.25rem;transition:all .5s ease}.multi-tenancy-colocated-label.marked,.multi-tenancy-isolated-label.marked{box-shadow:inset 100px 0 0 0 var(--color-spot)}.how-curity-works-browser-web-ui{background-attachment:fixed;background-color:#fff;background-image:none;background-size:200%;position:relative;transform:scale(1.1) translateX(-20px) translateY(0) perspective(1230px) rotateY(-30deg) rotateX(1deg) rotate(1deg)}.how-curity-works-browser-web-ui.active{transform:scale(1.1) translateX(-20px) translateY(0) perspective(1230px) rotateY(-10deg) rotateX(1deg) rotate(1deg)}.how-curity-works-browser-web-ui .how-curity-works-browser-main{backface-visibility:hidden;padding-left:100px;position:relative}.how-curity-works-browser-main-sidebar{background-color:color-mix(in srgb,var(--color-primary),#000 10%);border-bottom-left-radius:4px;height:calc(100% + 2px);justify-content:left;left:-1px;min-height:100%;position:absolute;top:-1px;width:80px}.how-curity-works-browser-web-ui hr{background-color:#f6f6f6;border:none;border-radius:1rem;display:block;height:8px;width:100%}.how-curity-works-browser-main-box{align-items:center;background-color:#fff;border:1px solid var(--color-primary);border-radius:2px;display:flex;height:30px;justify-content:center;position:relative;width:30px}.how-curity-works-browser-main-box:not(:last-child){margin-right:20px}.how-curity-works-browser-main-box:not(:last-child):after{background-color:var(--color-primary);content:"";height:1px;left:100%;position:absolute;top:50%;width:40px}.how-curity-works-browser-main-box-lg{background-color:var(--color-primary);border:1px solid var(--color-primary);height:60px;width:60px}@media(min-width:64em){.how-curity-works-browser-main-box-lg{font-size:3rem;height:90px;width:90px}}.how-curity-works-browser-main-box-lg:before{top:25%}.how-curity-works-browser-main-box-lg:after,.how-curity-works-browser-main-box-lg:before{background-color:var(--color-primary);content:"";height:1px;left:100%;position:absolute;width:40px}.how-curity-works-browser-main-box-lg:after{top:75%}.how-curity-works-browser-main-box-sm{height:30px}.how-curity-works-browser-main-box-sm img{object-fit:contain;width:16px}.how-curity-works-browser-main-pipeline .flex-30{padding-right:40px}.how-curity-works-browser-main-pipeline .flex-30>.flex:first-child{margin-bottom:1rem}.how-curity-works-browser-authenticators{background-attachment:fixed;background-color:#fff;background-color:color-mix(in srgb,var(--color-primary),#000 15%);background-image:none;background-size:200%;opacity:.4;transform:scale(1.1) translateX(-20px) translateY(30px) perspective(1230px) rotateY(-30deg) rotateX(1deg) rotate(1deg);transform:none}@media(min-width:84em){.how-curity-works-browser-authenticators{height:500px;position:absolute;width:620px}}.how-curity-works-browser-authenticators .how-curity-works-browser-main{backface-visibility:hidden;position:relative}.how-curity-works-browser-authenticators .how-curity-works-browser-main-button,.how-curity-works-browser-authenticators .how-curity-works-browser-main-content-circle,.how-curity-works-browser-authenticators .how-curity-works-browser-main-field{opacity:0}@media(min-width:64em){.how-curity-works-browser-authenticators .how-curity-works-browser-main-button,.how-curity-works-browser-authenticators .how-curity-works-browser-main-content-circle,.how-curity-works-browser-authenticators .how-curity-works-browser-main-field{opacity:.07}}.how-curity-works-browser-authenticators .how-curity-works-browser-main-button{background-color:var(--color-primary)}.action-list-item{flex:0 0 50%;padding:1rem}@media(min-width:64em){.action-list-item{flex:0 0 25%}}.action-list-item figure{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 10px 100px -20px rgba(50,50,93,.25),0 10px 20px -20px rgba(0,0,0,.3),0 -10px 20px -10px rgba(0,0,0,.025);color:#fff;display:flex;flex:none;font-size:1.5rem;height:48px;justify-content:center;margin:0;padding:0;width:48px}@media(min-width:64em){.action-list-item figure{height:80px;width:80px}}.action-list-item figure img{max-width:50%;object-fit:contain}.section-item-mobile img{max-height:300px}@media(min-width:64em){.section-item-mobile img{max-height:500px}}.how-curity-works-browser-selfservice{background-attachment:fixed;background-color:#fff;background-image:none;background-size:200%;position:relative;transform:scale(.75)}.how-curity-works-browser-selfservice .how-curity-works-browser-main-button{background-color:var(--color-primary)}.section-item-selfservice img{max-width:240px}@media(min-width:64em){.section-item-selfservice img{max-width:400px}}.section-item-sso img{max-width:300px}@media(min-width:64em){.section-item-sso img{max-width:500px}}.how-curity-works-browser-branding{background-image:none;border:8px solid #fff}@media(min-width:64em){.how-curity-works-browser-branding{margin:1rem;max-width:400px;min-width:380px}}.how-curity-works-browser-branding .how-curity-works-browser-main-content-circle{height:60px;width:60px}.how-curity-works-browser-branding .how-curity-works-browser-main-button{margin-top:.5rem}.how-curity-works-browser-branding .how-curity-works-browser-main-button,.how-curity-works-browser-branding .how-curity-works-browser-main-field{height:30px;padding:0 1rem}.how-curity-works-browser-branding .how-curity-works-browser-main-field{border:1px solid #f2f2f2}.how-curity-works-browser-branding .how-curity-works-browser-main-field span{height:8px;width:8px}.how-curity-works-browser-branding hr{background-color:rgba(0,0,0,.1);border:none;border-radius:1rem;display:block;height:8px;width:100%}.how-curity-works-browser-branding-1{background-color:#fafafa;flex:0 0 20%}@media(min-width:64em){.how-curity-works-browser-branding-1{transform:translateY(-2rem) translateX(5rem) scale(.8)}}.how-curity-works-browser-branding-2{background-color:#fafafa;flex:0 0 50%;position:relative;z-index:10}@media(min-width:64em){.how-curity-works-browser-branding-2{transform:translateY(1rem) scale(1)}}.how-curity-works-browser-branding-3{background-color:#fafafa;flex:0 0 20%}@media(min-width:64em){.how-curity-works-browser-branding-3{transform:translateY(-2rem) translateX(-5rem) scale(.8)}}.how-curity-works-browser-branding-1 .how-curity-works-browser-main-button,.how-curity-works-browser-branding-1 .how-curity-works-browser-main-content-circle{background-color:var(--color-spot)}.how-curity-works-browser-branding-2 .how-curity-works-browser-main-button,.how-curity-works-browser-branding-2 .how-curity-works-browser-main-content-circle{background-color:var(--color-primary)}.how-curity-works-browser-branding-3 .how-curity-works-browser-main-button,.how-curity-works-browser-branding-3 .how-curity-works-browser-main-content-circle{background-color:var(--color-tertiary)}.how-curity-works-browser-branding-1 .how-curity-works-browser-main-field span,.how-curity-works-browser-branding-2 .how-curity-works-browser-main-field span,.how-curity-works-browser-branding-3 .how-curity-works-browser-main-field span{background-color:var(--color-grey-light)}.true-mobile-image{max-width:280px}@media(min-width:64em){.true-mobile-image{bottom:-10rem;left:0;max-width:380px;position:absolute}}.full-control-image{max-width:380px}@media(min-width:40em){.full-control-image{bottom:-1rem;left:0;max-width:380px;position:absolute}}.maturity-model-illustration{transform:scale(.8)}@media(min-width:64em){.maturity-model-illustration{height:500px}}.maturity-model-illustration-item{left:calc(50% - 100px);max-width:200px;position:absolute}@media(min-width:64em){.maturity-model-illustration-item{bottom:0;left:calc(50% - 200px);max-width:400px}}.maturity-model-illustration-item-4{z-index:4}@media(min-width:64em){.maturity-model-illustration-item-4{bottom:360px;left:80px}}.maturity-model-illustration-item-3{z-index:3}@media(min-width:64em){.maturity-model-illustration-item-3{bottom:240px;left:60px}}.maturity-model-illustration-item-2{z-index:2}@media(min-width:64em){.maturity-model-illustration-item-2{bottom:120px;left:40px}}.maturity-model-illustration-item-1{z-index:1}@media(min-width:64em){.maturity-model-illustration-item-1{bottom:0;left:20px}}.maturity-model-arrow{display:block;margin:0 auto}@media(min-width:64em){.maturity-model-arrow{height:450px}}.authorization-animation{height:400px;transform:scale(.8) translateX(-100px) translateY(-40px);width:400px}@media(min-width:64em){.authorization-animation{height:500px;transform:scale(.9) translateX(-75px);width:500px}}img.authorization-circle{left:0;max-height:none;max-width:none;position:absolute;top:0}.authorization-api{height:225px;left:154px;position:absolute;top:230px;width:225px}.authorization-api-description{left:196px;position:absolute;top:470px;z-index:4}.authorization-data{background:#fff;border-radius:8px;box-shadow:0 3px 8px 0 rgba(0,0,0,.12);left:0;left:20%;padding:1rem 2rem;position:absolute;top:0;width:200px;z-index:2}.authorization-checkmark{border-radius:50%;height:50px;left:250px;position:absolute;top:116px;width:50px;z-index:30}.authorization-data-api{align-items:center;color:var(--color-resources-develop);display:flex;font-size:2rem;justify-content:center;left:370px;top:306px}.authorization-data-api:before{background-color:var(--color-resources-develop);content:"";height:3px;left:-40px;position:absolute;top:calc(50% - 1px);width:40px}.authorization-bank,.authorization-token,.authorization-user,.authorization-wallet{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 1px 2px 0 rgba(41,52,156,.1),0 2px 8px 0 rgba(119,120,171,.1);display:flex;height:114px;justify-content:center;margin:0;padding:1.5rem;position:absolute;width:114px;z-index:2}.authorization-bank img,.authorization-token img,.authorization-user img,.authorization-wallet img{object-fit:cover}.authorization-token{left:250px;top:-50px}.authorization-wallet{left:-50px;top:100px}.authorization-bank{left:30%;top:80%}.authorization-user{right:0;top:75px}.authorization-bank{left:-30px;top:275px}@media(min-width:64em){.authorization-bank{height:154px;padding:1.5rem;width:154px}}.authorization-data header{align-items:flex-start;display:flex;justify-content:space-between}.authorization-data header .avatar{background-color:var(--color-resources-develop);border-radius:50%;display:inline-flex;flex:none;height:34px;width:34px}.authorization-data header .credentials{display:inline-flex;flex-wrap:wrap}.authorization-data header .credentials span{background-color:var(--color-resources-develop);height:.5rem;margin-right:.25rem}.authorization-data header .credentials span:first-child{width:1rem}.authorization-data header .credentials span:nth-child(2){width:1.5rem}.authorization-data header .credentials span:nth-child(3){margin-top:.5rem;width:6rem}.authorization-data header .credentials span:nth-child(4){background-color:color-mix(in srgb,var(--color-resources-develop) 40%,#fff);margin-top:.5rem;width:1rem}.authorization-data header .credentials span:nth-child(5){background-color:color-mix(in srgb,var(--color-resources-develop) 40%,#fff);margin-top:.5rem;width:3rem}.authorization-data header .credentials span:nth-child(6){background-color:color-mix(in srgb,var(--color-resources-develop) 40%,#fff);margin-top:.5rem;width:6rem}.authorization-line{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;display:block;left:160px;opacity:0;position:absolute;top:95px;width:90%;z-index:1}.authorization-line-line{stroke:var(--color-resources-develop);stroke-width:2;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.token-factory-slider{animation-direction:alternate-reverse;animation-iteration-count:infinite;animation-name:bounce;animation-timing-function:cubic-bezier(.77,0,.175,1);left:160px;position:absolute;top:142px;width:30px}.token-factory-slider1{animation-delay:.5s;animation-duration:2s;left:132px;width:30px}.token-factory-slider2{animation-delay:.5s;animation-duration:1s;left:166px;width:30px}.token-factory-slider3{animation-delay:2s;animation-duration:3s;left:200px;width:30px}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(30px)}}.token-factory-text{left:360px;position:absolute;top:10px}.token-factory-holder{height:300px;left:0;top:0;transform:scale(.8);width:600px}@media(min-width:64em){.token-factory-holder{transform:scale(1)}}.token-factory{left:0;max-width:none;top:0;width:600px}.token-factory-line{animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;left:220px;opacity:0;position:absolute;top:0;transform:scaleX(-1);width:120px;z-index:10}.token-factory-line-arrow{fill:var(--color-resources-develop)}.token-factory-line-line{stroke:var(--color-resources-develop);stroke-width:.05rem;stroke-dasharray:8;animation-delay:.95s;animation-direction:reverse;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.token-factory-input{background:#fff;border-radius:8px;box-shadow:0 3px 8px 0 rgba(0,0,0,.12);left:340px;padding:1rem 2rem;position:absolute;text-align:left;top:-20px;width:230px;z-index:2}.token-factory-input ol{font-size:.75rem}.tab-group.tab-group-everything-through-configuration>div[data-item]{background-color:#fff;border-radius:6px;padding:1rem}@media(min-width:74em){.tab-group.tab-group-everything-through-configuration>div[data-item]{padding:3rem}}.oauth-toolbox-item{background-color:transparent;box-shadow:none;padding:1rem;position:relative;text-align:center}.oauth-toolbox-item figure{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 3px 6px -2px rgba(50,50,93,.25),0 3px 5px -2px rgba(0,0,0,.1);display:flex;height:96px;justify-content:center;padding:1.5rem;width:96px}@media(min-width:74em){.oauth-toolbox-item figure{height:116px;width:116px}}.oauth-toolbox-item img{max-height:85%;object-fit:contain}.oauth-toolbox-item li{color:#fff}.oauth-features{grid-column-gap:2rem;grid-row-gap:1rem;display:grid;grid-auto-rows:1fr;grid-template-columns:1fr;grid-template-rows:auto;margin:0 auto;position:relative;z-index:2}@media(min-width:52em){.oauth-features{grid-template-columns:1fr 1fr}}@media(min-width:84em){.oauth-features{grid-row-gap:0;align-items:center;grid-template-columns:repeat(6,minmax(140px,1fr));grid-template-rows:repeat(5,minmax(0,1fr))}}.oauth-features-column-item{background-color:#fff;border-radius:8px;box-shadow:0 20px 20px 0 rgba(20,52,92,.18);min-height:180px;position:relative;text-align:left}.oauth-features-column-item.oauth-features-column-item-client-features header{cursor:pointer}.oauth-features-column-item-token{grid-column:1/-1;grid-row-start:1}.oauth-features-column-item button{background-color:var(--color-resources-develop);border-bottom:1px solid #d8d8d8;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:8px;border-top-right-radius:8px;box-shadow:none;padding:.85rem 1.45rem}.oauth-features-column-item.oauth-features-column-item-client-features button{background-color:var(--color-primary)}.oauth-features-column-item button:hover .icon{background-color:var(--color-resources-develop);color:#fff}.oauth-features-column-item button .icon{align-items:center;background-color:#fff;border-radius:50%;color:var(--color-resources-develop);cursor:pointer;display:flex;flex:none;height:24px;justify-content:center;transition:background-color .2s;width:24px}.oauth-features-column-item button .icon:hover{color:#fff}@media(min-width:84em){.oauth-features-column-item-token{grid-column-end:5;grid-column-start:3;grid-row-end:5;grid-row-start:2}.oauth-features-column-item-purpose{grid-column-end:2;grid-column-start:1;grid-row-end:6;grid-row-start:1}.oauth-features-column-item-scopes{grid-column-end:2;grid-column-start:2;grid-row-end:3;grid-row-start:1}.oauth-features-column-item-formats{grid-column-end:3;grid-column-start:2;grid-row-end:6;grid-row-start:4}.oauth-features-column-item-claims{grid-column-end:6;grid-column-start:5;grid-row-end:3;grid-row-start:1}.oauth-features-column-item-revocations{grid-column-end:6;grid-column-start:5;grid-row-end:6;grid-row-start:4}.oauth-features-column-item-protections{grid-column-end:6;grid-column-start:6;grid-row-end:6;grid-row-start:1}}.oauth-features-column-item-line{display:none;height:110px;opacity:.5;position:absolute;width:110px;z-index:-1}@media(min-width:84em){.oauth-features-column-item-line{display:block}}.oauth-features-column-item-line-protections{height:4px;left:-300px;top:calc(50% - 2px);width:300px}.oauth-features-column-item-line-purpose{height:4px;left:100%;right:100%;top:calc(50% - 2px);width:300px}.oauth-features-column-item-line-scopes{right:-80px;top:40%}.oauth-features-column-item-line-formats{right:-80px;top:-10px;transform:scaleY(-1)}.oauth-features-column-item-line-claims{left:-80px;top:40%;transform:scaleX(-1)}.oauth-features-column-item-line-revokable{left:-80px;top:-10px;transform:scaleX(-1) scaleY(-1)}.oauth-features-column-item h4{color:#fff;font-family:Roboto-Medium;font-size:.9rem;letter-spacing:.03em;position:relative}.oauth-features-column-item ul{margin:1rem}.oauth-features-column-item li{font-size:.85rem}.oauth-features-column-item header{background-color:var(--color-resources-develop);border-bottom:1px solid #d8d8d8;border-top-left-radius:8px;border-top-right-radius:8px;padding:.85rem 1.45rem}.oauth-features-column-item.oauth-features-column-item-client-features header{background-color:var(--color-primary)}.oauth-features-column-item header:hover .icon{background-color:var(--color-resources-develop);color:#fff}.oauth-features-column-item header .icon{align-items:center;background-color:#fff;border-radius:50%;color:var(--color-resources-develop);cursor:pointer;display:flex;flex:none;height:24px;justify-content:center;transition:background-color .2s;width:24px}.oauth-features-column-item [tooltip]:after{min-width:200px}.oauth-features-column-item-token{align-items:center;background:transparent;border-radius:8px;box-shadow:none;display:flex;flex-direction:column;height:300px;justify-content:center;padding:1rem 2rem;position:relative;width:100%;z-index:2}.oauth-features-column-item-token img{min-height:120px}@media(min-width:84em){.oauth-features-column-item-token img{min-height:150px}}.oauth-features-column-item-token.oauth-features-column-item-clients img{min-height:150px}@media(min-width:74em){.oauth-features-column-item-token.oauth-features-column-item-clients img{min-height:150px}}.pulse{animation:pulse 2s infinite;border:3px solid rgba(var(--color-primary),.2);border-radius:100%;height:100px;left:calc(50% - 50px);opacity:.3;position:absolute;top:calc(50% - 50px);width:100px;z-index:1}.pulse-big{animation-delay:.3s;border:3px solid rgba(var(--color-primary),.2);height:95px;width:95px}@keyframes pulse{0%{transform:scale(1)}to{opacity:0;transform:scale(2.5)}}.examples-grid-item-line{fill:transparent;animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;opacity:0}.examples-grid-item-line-reverse-x{transform:scaleX(-1)}.examples-grid-item-line-reverse-y{transform:scaleY(-1)}.examples-grid-item-line-reverse-xy{transform:scaleX(-1) scaleY(-1)}.examples-grid-item-line-line{stroke:#cfd7df;stroke-width:2;stroke-dasharray:8;animation-delay:.95s;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.examples-grid-item-line-line-reversed{animation-direction:reverse}.examples-grid-item-line-arrow{fill:#cfd7df}.examples-grid{grid-gap:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,max-content));justify-content:center;margin:0 auto;max-width:85%}.examples-grid.examples-grid-oauth-for-web{grid-template-columns:90px 90px 90px 90px 160px 90px 90px 90px 90px}.examples-grid.examples-grid-microservices{grid-template-columns:repeat(9,minmax(80px,100px))}.examples-grid.examples-grid-banking{grid-template-columns:repeat(5,minmax(80px,100px))}.examples-grid.examples-grid-mesh{grid-template-columns:repeat(7,minmax(80px,100px))}.examples-grid.examples-grid-support{grid-template-columns:repeat(5,minmax(80px,100px))}.examples-grid p{line-height:1.2}.filter-scroller{overflow-x:auto;overflow:auto;white-space:nowrap}.filter{align-items:center;display:flex;list-style:none;margin:0;padding:0}.filter li:not(:last-child){margin-right:1rem}.filter label{font-size:1rem}.checkbox{align-items:center;display:inline-flex;position:relative}.checkbox-visible{background:#fff;border:1px solid #ccc;border-radius:2px;height:22px;position:absolute;width:22px}.checkbox input:checked+.checkbox-visible{background:var(--color-primary);background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNS4zNzggMTEuMzcgMiA3LjU5bDEuNDM4LTEuMjg2TDUuMzc0IDguNDdsNS4xODUtNS44NEwxMiAzLjkxbC02LjYyMiA3LjQ2Ii8+PC9zdmc+);background-position:50%;background-repeat:no-repeat;background-size:16px;border-color:var(--color-primary)}.checkbox input:focus+.checkbox-visible,.checkbox input:hover:checked+.checkbox-visible{border-color:var(--color-primary)}.checkbox span{display:inline-flex;margin-left:.5rem;-webkit-user-select:none;user-select:none}.checkbox-reset span{font-weight:700}.filter.examples-grid-mesh-filter{background-color:color-mix(in srgb,var(--color-resources-develop) 20%,#fff);border-radius:8px;line-height:normal;padding:6px}.filter.examples-grid-mesh-filter li .checkbox span{margin:0}.filter.examples-grid-mesh-filter li:not(:last-child){margin-right:.25rem}.examples-grid-mesh-filter .checkbox-visible,.examples-grid-mesh-filter input{display:none}.examples-grid-mesh-filter label{background-color:transparent;border-radius:4px;cursor:pointer;line-height:normal;padding:.15rem .75rem;transition:background-color .3s ease}.examples-grid-mesh-filter label.active,.examples-grid-mesh-filter label:hover{background-color:#fff}.examples-grid-item-first{grid-column:1/2}.examples-grid-item{align-items:center;display:flex;flex-direction:column;justify-content:center}.examples-grid-support .examples-grid-item:first-child img{max-height:75px}.examples-grid-item-center{grid-column:5/6}.examples-grid-item-token-large{height:140px;width:140px}.examples-grid-item-token-small{background-color:#fff;border-radius:50%;box-shadow:0 0 3px 0 rgba(0,0,0,.05),0 3px 10px 0 rgba(0,0,0,.01),0 18px 30px -10px rgba(75,82,94,.099);height:40px;padding:.5rem;width:40px}.examples-grid-item-token-group .examples-grid-item-token-small{position:absolute;right:-1rem;top:50%}.examples-grid-item-token-group .examples-grid-item-token-red{right:35%}.examples-grid-item-token-group .examples-grid-item-token-blue{right:10%}.examples-grid-item-token-red{border:1px solid red}.examples-grid-item-token-blue{border:1px solid blue}.zone{transition:opacity .5s ease}.examples-grid-mesh.examples-grid-mesh-zone-embed .zone:not(.zone-embed),.examples-grid-mesh.examples-grid-mesh-zone-exchange .zone:not(.zone-exchange),.examples-grid-mesh.examples-grid-mesh-zone-share .zone:not(.zone-share){opacity:.2}.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-embed .zone-embed,.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-exchange .zone-exchange{opacity:1}.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-exchange .zone:not(.zone-embed):not(.zone-exchange){opacity:.2}.examples-grid-mesh.examples-grid-mesh-zone-exchange.examples-grid-mesh-zone-share .zone-exchange,.examples-grid-mesh.examples-grid-mesh-zone-exchange.examples-grid-mesh-zone-share .zone-share{opacity:1}.examples-grid-mesh.examples-grid-mesh-zone-exchange.examples-grid-mesh-zone-share .zone:not(.zone-exchange):not(.zone-share){opacity:.2}.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-embed .zone-embed,.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-share .zone-share{opacity:1}.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-share .zone:not(.zone-embed):not(.zone-share){opacity:.2}.examples-grid-mesh.examples-grid-mesh-zone-embed.examples-grid-mesh-zone-exchange.examples-grid-mesh-zone-share .zone{opacity:1!important}.mtls-tunnel{animation-delay:0s;animation-direction:reverse;animation-duration:2s;animation-fill-mode:none;animation-iteration-count:infinite;animation-name:cssProgressActiveRight;animation-play-state:running;animation-timing-function:linear;background:color-mix(in srgb,var(--color-resources-develop) 20%,#fff);background-image:linear-gradient(-45deg,hsla(0,0%,100%,.125) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.125) 0,hsla(0,0%,100%,.125) 75%,transparent 0,transparent);background-size:35px 35px;box-shadow:inset 0 -1px 2px rgba(0,0,0,.1);height:20px;position:relative;width:100%}.mtls-tunnel:before{left:-5px}.mtls-tunnel:after,.mtls-tunnel:before{background-color:#fff;border:2px solid var(--color-resources-develop);border-radius:50%;content:"";height:20px;position:absolute;width:10px}.mtls-tunnel:after{left:auto;right:-5px}@keyframes cssProgressActiveRight{0%{background-position:0 0}to{background-position:-35px -35px}}.tab-completion{background-color:#000;border:4px solid #000;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.07),0 4px 8px rgba(0,0,0,.07),0 8px 16px rgba(0,0,0,.07),0 16px 32px rgba(0,0,0,.07),0 32px 64px rgba(0,0,0,.07);left:88px;overflow:hidden;position:absolute;top:4.5rem;width:200px;z-index:1}.tab-completion pre{color:#add8e6;margin:0}@keyframes fadeInAndOut{0%{opacity:0}to{opacity:1}}.tab-completion-cursor{animation:typing 3.6s steps(8),blink-caret .75s step-end infinite;border-right:.15em solid orange;font-family:Roboto-Mono,monospace;font-size:.7rem;font-weight:600;letter-spacing:.15em;overflow:hidden;white-space:nowrap;width:80px}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:orange}}.api-driven-management{grid-gap:1rem;align-content:center;align-items:center;display:grid;grid-template-columns:1fr;grid-template-rows:1fr .5fr 2fr .5fr 2fr;justify-content:center}@media(min-width:52em){.api-driven-management{grid-template-columns:1fr .5fr 2fr .5fr 2fr;grid-template-rows:repeat(5,1fr)}}.api-driven-management img{display:block;object-fit:cover;width:100%}.api-driven-management svg{max-height:none}.api-driven-management-scim{align-self:center;grid-column:1/-1;justify-self:center}@media(min-width:52em){.api-driven-management-scim{grid-column:initial;grid-row:1/-1}}.api-driven-management-arrow{align-self:center;grid-column:1/-1;justify-self:center}@media(min-width:52em){.api-driven-management-arrow{grid-column:initial;grid-row:1/-1}}.api-driven-management-scim img{max-height:46px;min-width:270px;object-fit:contain}.api-driven-management-main{align-self:center;grid-column:1/-1;justify-self:center}@media(min-width:52em){.api-driven-management-main{grid-column:initial;grid-row:1/-1}}.api-driven-management-main img{max-width:160px;padding:1rem;width:100%}@media(min-width:52em){.api-driven-management-main img{max-width:200px;min-width:200px}}.api-driven-management-database{align-self:center;justify-self:center;text-align:center}.api-driven-management-database img{height:50px;object-fit:contain;width:50px}.api-drive-management-line{fill:transparent;animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;opacity:0;transform:scaleX(-1) rotate(-90deg) scale(.8)}@media(min-width:52em){.api-drive-management-line{transform:scaleX(-1) scale(1)}}.api-drive-management-line-line{stroke:var(--color-tertiary);stroke-width:2;stroke-dasharray:8;animation-delay:.95s;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.api-drive-management-line-arrow{fill:var(--color-tertiary)}.examples-grid-item-stack-symbol{align-items:center;background-color:#fff;border-radius:50%;color:var(--color-tertiary);display:flex;font-size:2rem;height:30px;justify-content:center;position:absolute;right:5px;top:-15px;width:30px;z-index:10}.api-driven-connections{align-self:center;display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:52em){.api-driven-connections{gap:1rem;grid-column:initial;grid-row:1/-1}}.mock-ui-c-pill{background-color:var(--color-primary);border-radius:8px;color:#fff;display:inline-flex;font-size:.75rem;padding:.25rem 1rem}.mock-ui-c-field{background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:.65rem 1rem}.mock-ui-c-field span{background-color:#ccc;border-radius:50%;height:8px;position:relative;width:8px}@media(min-width:64em){.mock-ui-webui{justify-content:flex-end}}.mock-ui-webui.step2 .mock-ui-c-field span{animation-delay:.3s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:bounceIn;opacity:0}.mock-ui-webui.step2 .mock-ui-c-field span:nth-child(2){animation-delay:.4s}.mock-ui-webui.step2 .mock-ui-c-field span:nth-child(3){animation-delay:.5s}.mock-ui-webui.step2 .mock-ui-c-field span:nth-child(4){animation-delay:.6s}.mock-ui-webui.step2 .mock-ui-c-field span:nth-child(5){animation-delay:.7s}.mock-ui-webui.step2 .mock-ui-c-field span:nth-child(6){animation-delay:.8s}.mock-ui-c-facilities .button-success-outline{backface-visibility:hidden}.mock-ui-webui.step1 .mock-ui-c-facilities .button-success-outline{animation-delay:0s;animation-duration:.2s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:bounceScale;background-color:var(--color-success);color:#fff}.configuration-circle{background-color:color-mix(in srgb,var(--color-primary) 30%,#fff);border:3px solid #f6f6f6;box-shadow:0 3px 8px 0 rgba(0,0,0,.12);display:none;font-family:Roboto-Medium,sans-serif;font-size:.85rem;height:90px;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:-45px;width:90px}@media(min-width:74em){.configuration-circle{display:flex;font-size:1.2rem;height:140px;top:-70px;width:140px}}.configuration-circle img{transform:translate(30px);width:100px}.configuration-line{fill:none;stroke:color-mix(in srgb,var(--color-primary) 45%,#fff);stroke-miterlimit:10;stroke-width:4;padding-right:1rem}@media(min-width:74em){.configuration-line{stroke-width:1}}.mock-ui-c-facilities{background-color:#fff;border-radius:4px;box-shadow:0 6px 12px -2px rgba(50,50,93,.25),0 3px 7px -3px rgba(0,0,0,.3);color:var(--color-primary);padding:.35rem 1rem;position:relative}@media(min-width:74em){.mock-ui-c-facilities{max-width:500px}}.mock-ui-c-facilities li{color:#666;font-size:.85rem;padding:.35rem 1rem}.mock-ui-c-facilities-modal{left:0;opacity:0;position:absolute;top:-1rem;z-index:5}@media(min-width:74em){.mock-ui-c-facilities-modal{left:-25%;min-width:300px;top:-4rem}}.mock-ui-webui.step3 .mock-ui-c-facilities-modal{animation-delay:1s;animation-duration:.2s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:slideInBottom}.mock-ui-webui.step5 .mock-ui-c-checkmark-circle{animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.mock-ui-webui.step5 .mock-ui-c-checkmark{animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.mock-ui-webui.step5 .mock-ui-c-checkmark-check{animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}.mock-ui-c-checkmark-circle{fill:none;stroke:var(--color-success);stroke-dasharray:166;stroke-dashoffset:166;stroke-miterlimit:10;stroke-width:2}.mock-ui-c-checkmark{stroke:#fff;stroke-miterlimit:10;stroke-width:2;border-radius:50%;bottom:-23px;box-shadow:inset 0 0 0 var(--color-success);display:block;height:46px;left:calc(50% - 23px);position:absolute;width:46px}.mock-ui-c-checkmark-check{stroke-dasharray:48;stroke-dashoffset:48;transform-origin:50% 50%}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px var(--color-success)}}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span{animation-delay:1.3s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:bounceIn;opacity:0}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span:nth-child(2){animation-delay:1.4s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span:nth-child(3){animation-delay:1.5s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span:nth-child(4){animation-delay:1.6s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span:nth-child(5){animation-delay:1.7s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:first-of-type span:nth-child(6){animation-delay:1.8s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span{animation-delay:1.9s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:bounceIn;opacity:0}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span:nth-child(2){animation-delay:2s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span:nth-child(3){animation-delay:2.1s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span:nth-child(4){animation-delay:2.2s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span:nth-child(5){animation-delay:2.3s}.mock-ui-webui.step3 .mock-ui-c-facilities-modal .mock-ui-c-field:nth-of-type(2) span:nth-child(6){animation-delay:2.4s}.cli-example-header{background:#282a36;border-top-left-radius:8px;border-top-right-radius:8px;padding:1rem 2rem;position:relative;top:4px}.cli-example-header span{background-color:var(--color-primary-light);border-radius:50%;display:inline-block;height:16px;margin-right:1rem;width:16px}.cli-example pre{word-wrap:normal;margin-top:0;min-height:100px}.cli-example pre .output{color:var(--color-tertiary)}.typed-cursor{display:none;opacity:0}.cli-example pre:after{animation:blink .7s infinite;background-color:var(--color-spot);content:"";display:inline-block;font-weight:700;height:16px;line-height:1;margin-left:.5rem;vertical-align:middle;width:4px}@keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.mock-ui-c-checkmark-cli{bottom:auto;top:-79px}.mock-ui-c-checkmark-cli.finished .mock-ui-c-checkmark-circle{animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.mock-ui-c-checkmark-cli.finished{animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.mock-ui-c-checkmark-cli.finished .mock-ui-c-checkmark-check{animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}.restconf-animation{align-items:center;display:flex;justify-content:center}.restconf-animation-lines{flex-direction:column}.restconf-animation-lines,.restconf-animation-lines-holder{align-items:center;display:flex}.restconf-animation-line{width:100px}.restconf-animation-lines-holder .restconf-animation-line-line{stroke:#fff;animation-delay:.95s;animation-duration:40.5s}.restconf-animation-line-arrow{fill:#fff}.restconf-animation-lines-holder:not(:last-child){margin-bottom:1rem}.restconf-animation-lines-holder .pill{border-radius:4px;color:#fff;display:inline-block;font-size:.65rem;padding:.25rem 1rem;text-align:center;width:90px}@media(min-width:74em){.restconf-animation-lines-holder .pill{font-size:.75rem}}.restconf-animation-lines-holder-get .pill{background-color:var(--color-primary)}.restconf-animation-lines-holder-get .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-get .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-post .pill{background-color:color-mix(in srgb,var(--color-primary),#000 10%)}.restconf-animation-lines-holder-post .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-post .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-update .pill{background-color:color-mix(in srgb,var(--color-primary),#000 15%)}.restconf-animation-lines-holder-update .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-update .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-patch .pill{background-color:color-mix(in srgb,var(--color-primary),#000 20%)}.restconf-animation-lines-holder-patch .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-patch .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-head .pill{background-color:color-mix(in srgb,var(--color-primary),#000 27%)}.restconf-animation-lines-holder-head .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-head .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-put .pill{background-color:color-mix(in srgb,var(--color-primary),#000 30%)}.restconf-animation-lines-holder-put .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-put .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-lines-holder-delete .pill{background-color:color-mix(in srgb,var(--color-primary),#000 35%)}.restconf-animation-lines-holder-delete .restconf-animation-line-line{stroke:var(--color-primary)}.restconf-animation-lines-holder-delete .restconf-animation-line-arrow{fill:var(--color-primary)}.restconf-animation-server{margin-left:2rem;width:150px}.restconf-animation-line{fill:transparent;animation-delay:.7s;animation-duration:.5s;animation-fill-mode:forwards;animation-iteration-count:1;animation-name:fadeIn;opacity:0;transform:scaleX(-1)}.restconf-animation-line-line{stroke-width:2;stroke-dasharray:8;animation-delay:.95s;animation-duration:20.5s;animation-iteration-count:infinite;animation-name:dash;animation-timing-function:linear}.restconf-animation-line-arrow{fill:#cfd7df}.code-editor-fadeout{max-height:240px;overflow:hidden}.code-editor-fadeout:after{background-image:linear-gradient(transparent,#fff 95%);bottom:0;content:"";height:120px;left:0;position:absolute;text-align:center;width:100%;z-index:1}.code-editor-fadeout .button-copy-code{visibility:hidden}.code-editor-fadeout pre[class*=language-]{margin:0;padding-left:1rem}.code-editor-fadeout .line-numbers-rows{display:none}.examples-grid.examples-grid-on-premise{border-radius:12px;grid-template-columns:4fr 1fr 1fr 1fr 1fr 1fr;min-width:1000px}.pulse-on-premise{border:3px solid #fff;display:none;left:auto;right:48px;top:86px}@media(min-width:40em){.pulse-on-premise{display:block}}.examples-grid.examples-grid-one-cloud{grid-template-columns:3fr 1fr 1fr 1fr 1fr 1fr;min-width:1000px}.pulse-one-cloud{border:3px solid #fff;left:calc(50% - 40px)}.one-cloud-k8s,.pulse-one-cloud{height:80px;top:-40px;width:80px}.one-cloud-k8s{align-items:center;background-color:#fff;border-radius:50%;display:flex;justify-content:center;left:0;margin-left:auto;margin-right:auto;padding:.5rem;position:absolute;right:0}.pulse-multi-cloud{border:3px solid #fff;height:60px;left:calc(50% - 30px);top:-30px;width:60px}.examples-grid.examples-grid-multi-cloud-wrapper{grid-gap:2rem;display:initial;grid-template-columns:1fr 1fr 1fr;max-width:none}.examples-grid.examples-grid-multi-cloud-wrapper .examples-grid.examples-grid-one-cloud{margin-bottom:4rem;min-width:unset}@media(min-width:64em){.examples-grid.examples-grid-multi-cloud-wrapper{display:grid}}.examples-grid.examples-grid-multi-cloud{grid-template-columns:3fr 1fr 1fr 1fr 1fr 1fr}.examples-grid.examples-grid-multi-cloud-wrapper .examples-grid-item-line-line,.examples-grid.examples-grid-one-cloud .examples-grid-item-line-line{stroke:var(--color-primary)}.examples-grid.examples-grid-multi-cloud-wrapper .examples-grid-item-line-arrow,.examples-grid.examples-grid-one-cloud .examples-grid-item-line-arrow{fill:var(--color-primary)}.examples-grid.examples-grid-multi-cloud-wrapper .examples-grid.examples-grid-one-cloud{grid-gap:.5rem;grid-template-columns:1fr .25fr 1fr .25fr 1fr}.examples-grid-item-span{grid-column:1/-1;grid-row-start:1}.examples-grid.examples-grid-multi-cloud-wrapper .one-cloud-k8s{height:60px;top:-30px;width:60px}.intro-animation .alarm-pulse{background-color:var(--color-danger);border-radius:50%;display:inline-flex;height:10px;position:relative;transform:scale(1) rotateX(60deg) rotateY(0deg) rotate(-45deg);width:10px;will-change:transform}.examples-grid-item-line-line-alarms{stroke:#ad2021}.examples-grid-item-line-arrow-alarms{fill:#ad2021}.intro-animation .alarm-pulse-large{display:none;height:40px;left:130px;position:absolute;top:174px;width:40px;z-index:10}@media(min-width:74em){.intro-animation .alarm-pulse-large{display:block;left:264px;top:430px}}@media(min-width:140em){.intro-animation .alarm-pulse-large{left:360px;top:430px}}.intro-animation .alarm-pulse:before{background-color:var(--color-danger);border-radius:100%;content:"";height:100%;left:0;position:absolute;top:0;width:100%;will-change:transform;z-index:-1}@media(min-width:84em){.intro-animation .alarm-pulse:before{animation:alarm_pulse 1.5s infinite}}.intro-animation .alarm-pulse.alarm-pulse-large{background-color:transparent}@keyframes alarm_pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(8)}to{opacity:0;transform:scale(1)}}.alarm-chain-of-events{grid-gap:1rem;display:grid;grid-template-columns:1fr;grid-template-rows:1fr .5fr 1fr .5fr 1fr .5fr}@media(min-width:52em){.alarm-chain-of-events{grid-template-columns:2fr .5fr 2fr .5fr 2fr .5fr 2fr;grid-template-rows:repeat(1,1fr)}}.alarm-chain-of-events-item{align-self:center;justify-self:center;text-align:center}.alarm-chain-of-events-item-reports{display:grid;grid-template-columns:repeat(3,1fr)}@media(min-width:52em){.alarm-chain-of-events-item-reports{display:initial}}.alarm-chain-of-events-arrow{align-self:center;justify-self:center}.alarm-chain-of-events-arrow .examples-grid-item-line{width:80px}@media(min-width:52em){.alarm-chain-of-events-arrow .examples-grid-item-line{width:150px}}.alarm-chain-of-events-arrow .examples-grid-item-line{transform:scaleX(-1) rotate(-90deg) scale(.8)}@media(min-width:52em){.alarm-chain-of-events-arrow .examples-grid-item-line{transform:scaleX(-1) scale(1)}}.plans-edition{background-color:#fff;border-radius:8px;flex:0 0 20%;overflow:hidden}.plans-edition-table{border:none}.plans-edition-table td,.plans-edition-table th{border:none;font-size:.875rem;vertical-align:middle}.plans-edition-table tr.hovered td{background-color:color-mix(in srgb,var(--color-primary) 15%,#fff);color:#fff}.plans-edition-table tr.hovered .icon{color:#fff}.plans-edition-table tr:first-child{border-top:none}.plans-item h4{color:#fff;overflow:hidden;padding:1rem}@media(min-width:64em){.plans-item h4{padding:1rem 1.2rem}}.plans-item ol,.plans-item p,.plans-item ul{font-size:.9rem}.plans-item ul li .icon,.plans-item ul li.icon{line-height:1}.plans-edition.plans-edition-token-handler .plans-item h4{background-color:color-mix(in srgb,var(--color-primary),#000 5%)}.plans-edition.plans-edition-community .plans-item h4{background-color:color-mix(in srgb,var(--color-primary),#000 10%)}.plans-edition.plans-edition-basic .plans-item h4{background-color:color-mix(in srgb,var(--color-primary),#000 40%)}.plans-edition.plans-edition-standard .plans-item h4{background-color:var(--color-resources-develop)}.plans-edition.plans-edition-enterprise .plans-item h4{background-color:var(--color-spot)}.plan-comparison-scroller{-webkit-overflow-scrolling:touch;margin:0 auto;max-width:90em;overflow-x:scroll}@media(min-width:74em){.plan-comparison-scroller{margin-bottom:2rem;overflow-x:initial}}@media(min-width:140em){.plan-comparison-scroller{max-width:100em}}.plans-edition-ps{border:1px solid #f6f6f6;box-shadow:0 10px 30px 0 rgba(0,0,0,.16)}.plans-edition.plans-edition-ps:first-child .plans-item h2{background-color:var(--color-primary)}.plans-edition.plans-edition-ps:nth-child(2) .plans-item h2{background-color:color-mix(in srgb,var(--color-primary),#000 20%)}.plans-edition.plans-edition-ps:nth-child(3) .plans-item h2{background-color:var(--color-spot)}.plan-comparison{background-color:#fff;border-radius:6px;display:grid;grid-template-columns:2fr repeat(4,1fr);padding:1rem;white-space:nowrap;width:80rem}@media(min-width:64em){.plan-comparison{padding:1.5rem;white-space:normal;width:auto}}.plan-comparison-item{padding:1rem .5rem}.plan-comparison-item-community{background-color:color-mix(in srgb,var(--color-primary) 10%,#fff)}.plan-comparison-item-basic{background-color:var(--color-grey-subtle)}.plan-comparison-item-standard{background-color:color-mix(in srgb,var(--color-resources-develop) 40%,#fff)}.plan-comparison-item-enterprise{background-color:color-mix(in srgb,var(--color-spot) 20%,#fff)}.plan-comparison-item-sticky-compare{background-color:#fff;position:sticky;top:50px;z-index:20}.plan-comparison-item-sticky{background-color:#fff;border-bottom:none;position:sticky;top:var(--header-height);z-index:10}.plan-comparison-item-sticky-spread{grid-column:1/-1}.plan-comparison-item{font-size:.85rem}@media(min-width:64em){.plan-comparison-item{font-size:.85rem}}.plan-comparison-item-feature{text-align:center}.plan-comparison-item-transparent{background-color:transparent;visibility:hidden}.ref,a.ref{align-items:center;border-radius:4px;display:inline-flex;font-size:80%;padding-right:.45rem;position:relative}@media print{.ref,a.ref{all:unset}}.ref:hover,a.ref:hover{color:currentColor;text-decoration:none}@media print{.ref .icon,a.ref .icon{display:none}}.ref .icon:first-child,a.ref .icon:first-child{border-bottom-left-radius:4px;border-top-left-radius:4px;margin-right:.25rem;padding-left:.45rem;padding-right:.45rem}.ref-docs:hover,a.ref-docs:hover{color:#fff}.ref-cross{background-color:color-mix(in srgb,var(--color-primary) 15%,#fff);color:var(--color-primary)}.ref-cross:hover .icon:first-child{background-color:color-mix(in srgb,var(--color-primary),#000 5%);color:#fff}.ref-cross .icon:first-child{background-color:color-mix(in srgb,var(--color-primary) 10%,#fff);color:currentColor}.ref-docs{background-color:color-mix(in srgb,var(--color-primary) 80%,#fff)}.ref-docs,.ref-docs:hover{color:#fff}.ref-docs .icon:first-child,.ref-docs:hover .icon:first-child{background-color:color-mix(in srgb,var(--color-primary),#000 12%)}.ref-docs .icon:first-child{color:#fff}.ref-docs .icon:nth-child(2){color:lcolor-mix(in srgb,var(--color-primary) 45%,#fff)}.ref-docs span{background-color:color-mix(in srgb,var(--color-primary),#000 12%);color:#fff;padding-left:.25rem;padding-right:.25rem}.article-main{margin:0 auto;max-width:60em}@media(min-width:40em){.article-main{display:flex;padding-left:1em;padding-right:1em}}@media(min-width:64em){.article-main{max-width:90em;padding-left:2em;padding-right:2em}}@media(min-width:74em){.article-main{max-width:110em}}@media(min-width:84em){.article-main{max-width:120em}}.article-sidebar{background-color:#fff;left:0;opacity:0;overflow-y:visible;position:fixed;top:calc(var(--header-height) + 60px);transform:translateY(-300px);transition:opacity .4s;visibility:hidden;width:100%;z-index:10}@media(min-width:64em){.article-sidebar{display:block;min-width:260px;opacity:1;position:sticky;transform:none;transition:none;visibility:visible;width:25%;z-index:auto}}@media(min-width:114em){.article-sidebar{width:460px}}.article-sidebar.active{opacity:1;transform:translateY(0);visibility:visible}.article-content{width:100%}@media(min-width:52em){.article-content{display:flex}}@media(min-width:64em){.article-content{width:75%}}.article-nav-wrapper{display:block;overflow-y:auto;position:sticky;top:calc(var(--header-height) + var(--resources-header-height))}.article-sidebar-panel{border-right:1px solid #ddd;height:calc(100vh - 200px)}@media(min-width:52em){.article-content:has(.article-toc) .article-text{width:calc(100% - 320px)}}@media(min-width:52em){.article-text-full{flex:0 0 100%;max-width:none}}.article-text-full [itemprop=articleBody]{max-width:none}body.careers,body.product-feature,body.resources{margin-top:calc(var(--header-height) + var(--resources-header-height))}@media(min-width:64em){body.resources.guides{margin-top:calc(var(--header-height) + var(--resources-header-height) + var(--resources-guides-header-height))}}.getting-started-selector img{height:60px;width:60px}.getting-started-selector button{display:flex}.getting-started-selector button p{font-family:var(--type-regular)}.getting-started-selector button.active{background-color:var(--color-primary-light)}.getting-started-selector button.active h2{color:#fff}.getting-started-selector h2{color:var(--color-primary)}.resources-topic-card-list{border:1px solid #ededed;border-radius:6px}.resources-topic-card-list li{margin:0}.resources-topic-card-list li:first-child a{border-top-left-radius:6px;border-top-right-radius:6px}.resources-topic-card-list li:last-child a{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.resources-topic-card-list a{font-size:.9rem;padding:.5rem 1rem;transition:box-shadow .2s,background-color .2s}.resources-topic-card-list a:hover{box-shadow:0 0 2px 0 rgba(0,0,0,.06),0 4px 16px 0 rgba(0,0,0,.12);text-decoration:none}.resources-topic-card-list a:active{background-color:#f6f6f6;box-shadow:none}.resources-topic-card-list li:not(:last-child) a{border-bottom:1px solid #ededed}.resources-topic-card-list .bg-tutorials{background-color:var(--color-primary)}.resources-topic-card-list .bg-develop{background-color:var(--color-resources-develop)}.resources-topic-card-list .bg-architect{background-color:var(--color-spot)}.resources-topic-card-list .bg-operate{background-color:var(--color-primary-dark)}.resources-topic-card-list .bg-concepts{background-color:var(--color-primary)}.grid-container-index a{display:none}.grid-container-index a:nth-child(-n+3){display:grid}.article-sidebar .resources-searchbar-areas h4{border:none;padding:0}.article-sidebar li a.resources-topic{line-height:normal;padding:0}.resources-topic-image{padding:1rem}.resources-topic-image img{display:block;max-height:120px;object-fit:contain;width:100%}.resources-topic-intro{display:flex;flex-direction:column;justify-content:center;padding:0 1rem 1rem;text-align:center}.resources-topic-intro img{margin:2rem auto;max-height:100px;max-width:100px;object-fit:cover}@media(min-width:52em){.resources-topic-intro img{max-height:200px;max-width:200px}}.resources-topic-intro p{font-size:.85rem;margin:1rem auto;max-width:40em}@media(min-width:52em){.resources-topic-intro p{font-size:1.15rem}}.resources-topic-video svg{height:36px;padding:.5rem;width:36px}.resources-article-intro img{aspect-ratio:attr(width)/attr(height);border-radius:6px;height:auto;width:100%}.resources-article-intro .resources-topic h4{justify-content:normal}.article-related{border:1px solid rgba(0,0,0,.125);border-radius:2px;box-shadow:0 3px 8px 0 rgba(116,129,141,.1);padding:1rem;transition:border-color .15s ease-in-out}.article-related a{font-size:.85rem}.article-related ul{grid-gap:.25rem;display:grid;grid-template-columns:1fr 1fr}.headerlink-anchor{opacity:0}h2[id]:hover .headerlink-anchor{opacity:1}.article-sidebar-trigger{align-items:center;background-color:var(--color-primary);border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:2.5rem;height:44px;justify-content:center;text-align:center;width:44px;z-index:100}@media(min-width:64em){.article-sidebar-trigger{display:none}}.article-sidebar-trigger:hover{background-color:var(--color-spot)}.article-sidebar-trigger .ion-navicon{font-size:2rem}.article-sidebar-trigger .ion-close{font-size:1.5rem}[itemprop=articleBody] [id]{scroll-margin-top:calc(var(--resources-header-height) + var(--header-height))}.article-toc{--dotColor:#ddd;--dotColorActive:#d859a1;--active:#d859a1;--activeBg:rgba(157,16,223,.05);--dotSize:10px;--lineWidth:1px;--lineColor:#ddd;--listSpacing:1rem;border-left:none;display:block;max-width:none;min-width:auto;overflow-y:visible}@media(min-width:52em){.article-toc{width:320px}}.article-toc-wrapper{display:block;overflow-y:auto;position:sticky;top:calc(var(--header-height) + var(--resources-header-height))}.article-toc h5.uppercasecaps{font-size:.75rem;padding-bottom:.5rem}.article-toc .article-toc-panel{overflow-y:auto;padding:1rem;position:sticky}@media(min-width:52em){.article-toc .article-toc-panel{height:calc(100vh - 180px)}}.article-toc nav{position:static;top:auto}.article-related-articles ol{border-left:none}.article-toc ol{list-style:none;margin:0;padding:0;position:relative}@media(min-width:84em){.article-toc ol{max-width:300px}}.article-toc-links{min-height:200px}.article-toc-links li{grid-column-gap:1rem;display:grid;grid-template-columns:20px 1fr;overflow:visible;position:relative}.article-toc .article-toc-links ol:after{background-color:#e5e7eb;content:"";height:calc(100% - var(--listSpacing)*2);left:calc(var(--dotSize) + 2px);position:absolute;top:calc(var(--dotSize));width:var(--lineWidth);z-index:0}.article-toc li span{background-color:#bbb;border-radius:50%;display:inline-block;height:var(--dotSize);position:relative;top:calc(var(--dotSize)/1.5);transform-origin:50% 50%;transition-duration:.2s;transition-timing-function:cubic-bezier(.46,.265,.285,1.635);width:var(--dotSize);z-index:2}.article-toc li.active span{background-color:var(--dotColorActive)}.article-toc li{font-size:.85rem;padding:.5rem}.article-toc li:hover{background-color:var(--color-grey-subtle)}.article-toc li a{color:#666;display:block;text-decoration:none}.article-toc li:hover span{opacity:1;transform:scale(1.25)}.article-toc li a:focus{outline:none}.article-toc li.active a{color:var(--active);font-family:var(--font-bold)}.article-toc li a:focus-visible{background-color:var(--activeBg);color:var(--active);outline:1px solid var(--active)}.article-toc li.active a span{transform:scale(1.35)}.breadcrumbs-dark{background-color:color-mix(in srgb,var(--color-primary),#000 22%)}.breadcrumbs:not(.breadcrumbs-standalone){display:none}@media(min-width:74em){.breadcrumbs:not(.breadcrumbs-standalone){display:flex}}.breadcrumbs ol{align-items:center;color:color-mix(in srgb,var(--color-primary) 8%,#fff);display:flex;flex-wrap:wrap;justify-content:flex-start;margin:0}.breadcrumbs li{color:currentColor;display:inline-flex;white-space:nowrap}.breadcrumbs li:not(:last-child){margin-right:1rem}.breadcrumbs li{font-size:.95rem}.breadcrumbs-dark li a{color:#fff}.breadcrumbs li a:hover{text-decoration:underline}.breadcrumbs li span{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs li:first-child a:before{color:#666;content:"";display:inline-block;font-family:Ionicons;font-size:1rem;margin-right:.5rem;vertical-align:middle}.breadcrumbs li:not(:last-child) a:after{color:#666;content:"";display:inline-block;font-family:Ionicons;font-size:.6rem;margin-left:1rem;vertical-align:middle}.resources-searchbar{background-color:#fff;border-bottom:1px solid #ddd;height:var(--resources-guides-header-height);position:fixed;top:var(--header-height);width:100%;z-index:50}.resources-searchbar .container{margin:0 auto;max-width:60em}@media(min-width:52em){.resources-searchbar .container{display:flex;padding-left:2em;padding-right:2em}}@media(min-width:64em){.resources-searchbar .container{max-width:90em}}@media(min-width:74em){.resources-searchbar .container{max-width:110em}}@media(min-width:84em){.resources-searchbar .container{max-width:120em}}.resources-searchbar .resources-searchbar-areas{display:none}@media(min-width:64em){.resources-searchbar .resources-searchbar-areas{display:flex}}.resources-searchbar .resources-topic h4{border-top:none;margin:0;padding:0}.resources_section-develop .intro-overlay svg,.resources_section-develop .resources-topic-develop svg{stroke:#fff;background-color:var(--color-resources-develop)}.resources_section-architect .intro-overlay svg,.resources_section-architect .resources-topic-architect svg{stroke:#fff;background-color:var(--color-spot)}.resources_section-usecases .intro-overlay svg,.resources_section-usecases .resources-topic-usecases svg{stroke:#fff;background-color:color-mix(in srgb,var(--color-tertiary),#000 10%)}.resources_section-code-examples .resources-topic-tutorials svg,.resources_section-concepts .intro-overlay svg,.resources_section-concepts .resources-topic-concepts svg,.resources_section-getting-started .resources-topic-tutorials svg,.resources_section-howtos .resources-topic-tutorials svg,.resources_section-operate .intro-overlay svg,.resources_section-operate .resources-topic-operate svg,.resources_section-tutorials .intro-overlay svg,.resources_section-tutorials .resources-topic-tutorials svg{stroke:#fff;background-color:var(--color-primary)}.resources-searchbar nav[data-active=resources-searchbar-develop] .resources-topic-develop svg{stroke:#fff;background-color:var(--color-resources-develop)}.resources-searchbar nav[data-active=resources-searchbar-architect] .resources-topic-architect svg{stroke:#fff;background-color:var(--color-spot)}.resources-searchbar nav[data-active=resources-searchbar-usecases] .resources-topic-usecases svg{stroke:#fff;background-color:var(--color-resources-develop)}.resources-searchbar nav[data-active=resources-searchbar-operate] .resources-topic-operate svg{stroke:#fff;background-color:var(--color-primary-dark)}.resources-searchbar nav[data-active=resources-searchbar-concepts] .resources-topic-concepts svg,.resources-searchbar nav[data-active=resources-searchbar-tutorials] .resources-topic-tutorials svg{stroke:#fff;background-color:var(--color-primary)}.resources-topic-nav{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.125);padding:1rem;position:sticky;text-align:center;top:136px;z-index:2}.resources-topic-nav a{background-color:#fff;border-radius:2px;display:block;font-size:.75rem;padding:.25rem 1rem;transition:all .2s}.resources-topic-nav a:active{background-color:var(--color-primary-dark);color:#fff}.pagination{grid-gap:1rem;display:grid;grid-template-areas:"previous next";grid-template-columns:1fr 1fr}.pagination a.prev{grid-area:previous}.pagination a.next{grid-area:next}.article-entry .pagination a{font-family:Roboto-Medium;font-size:.85rem}@media(min-width:52em){.article-entry .pagination a{font-size:1.25rem}}.article-entry .pagination a span{color:var(--color-spot);display:block;line-height:1.2}.article-entry .pagination a .icon{color:#ccc;font-size:1rem;transition:color .2s ease-in-out}.related-resources{grid-gap:1rem;align-items:start;container-name:related_resources;container-type:inline-size;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:114em){.related-resources{grid-template-columns:repeat(3,minmax(0,1fr))}}@container related_resources (max-width: 600px){.related-resources .card{grid-column:span 2}}.article-sidebar h4{border-bottom:1px solid #f2f2f2;font-size:.75rem;padding-bottom:1rem}.article-sidebar li a{border-radius:2px;color:#000;display:block;font-size:.9rem;line-height:1.5;padding:.65rem 2rem .65rem 1rem;position:relative}.article-sidebar li a:hover{background-color:#f6f6f6;text-decoration:none}.article-sidebar a.active,.article-sidebar a.active:hover,.article-sidebar a[aria-current=page],.article-sidebar a[aria-current=page]:hover,.article-sidebar li a:active{background-color:#e6e6e6}.article-sidebar ul{margin-left:1px}.resources-article-intro .resources-topic{border-top:none}.resources-article-intro .resources-topic svg{height:32px;width:32px}.resources-article-intro .resources-topic h4{margin:0;padding:0}.article-sidebar button[data-pagegroup]:hover{background-color:#fff}.article-sidebar button[data-pagegroup] i{font-size:unset;transform-style:preserve-3d;transition:.3s}.article-sidebar .has-children-topic>a:is(.active) button[data-pagegroup] i,.article-sidebar button[data-pagegroup]:is(.active) i{transform:rotateX(180deg)}.has-children>a{position:relative}.has-children-topic>a{color:#000}.has-children-topic+.sublist,.has-children-topic>a+.sublist{margin-left:1.5rem}.has-children-topic .sublist .has-children>span{letter-spacing:.01em}.has-children-topic .sublist .has-children>span.active{color:#000}.article-sidebar .sublist{display:flex;flex-direction:column;height:auto;max-height:0;overflow:hidden;padding-bottom:0;padding-top:0}.article-sidebar .sublist-open{max-height:6000px;overflow:initial}.article-sidebar .has-children>a.active{background-color:#f6f6f6}.sublist:empty{display:none}.article-sidebar [title="Understanding Curity Concepts"] li a:before{background-size:24px;content:"";display:inline-flex;height:24px;margin-right:.5rem;vertical-align:middle;width:24px}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Overview]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-overview.svg)}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Authentication]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-authentication.svg)}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Tokens]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-token.svg)}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Data]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-data.svg)}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Availability]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-availability.svg)}.article-sidebar [title="Understanding Curity Concepts"] li a[title=Deployment]:before{background-image:url(/images/resources/getting-started/concepts/icon-concepts-deployment.svg)}.article-sidebar{--sidebar-number-border-color:#ccc;--sidebar-number-size:20px}.sidebar-number{align-items:center;align-self:center;background-color:#fff;border:1px solid var(--sidebar-number-border-color);border-radius:50%;color:#333;display:inline-flex;flex-shrink:0;font-size:.85rem;height:var(--sidebar-number-size);justify-content:center;margin-right:.5rem;position:relative;width:var(--sidebar-number-size);z-index:1}.article-sidebar a.active .sidebar-number{background-color:var(--color-primary);border:1px solid var(--color-primary);color:#fff}.article-sidebar li,.article-sidebar ul{position:relative}.article-sidebar .has-children-topic:has(.sidebar-number)+.sublist-open:after,.article-sidebar li:has(.sidebar-number):after{background-color:var(--sidebar-number-border-color);content:"";height:100%;left:25px;position:absolute;top:30px;width:1px;z-index:0}.article-sidebar .has-children-topic:has(.sidebar-number)+.sublist-open:after{left:1px}.article-sidebar li:has(.sidebar-number-1):after{height:100%}.article-sidebar li:has(.sidebar-number-4):after{height:calc(100% - 20px)}.resources-whats-new .timeline-header{margin:0 auto;max-width:660px}.timeline-types{background-color:#fff;margin:0 auto;max-width:700px;padding:1.5rem;position:sticky;top:calc(var(--header-height) + var(--resources-header-height));width:100%;z-index:2}.timeline{flex-direction:column;justify-content:flex-end;list-style-type:none;margin:20px auto 0;max-width:660px;padding:1em 0;position:relative;z-index:1}.timeline:before{background:#505050;background:linear-gradient(180deg,rgba(80,80,80,0) 0,#505050 8%,#505050 92%,rgba(80,80,80,0));content:" ";display:block;height:100%;left:0;margin-left:-2px;position:absolute;top:0;width:4px;z-index:5}.flag-wrapper{border:1px solid transparent;border-radius:4px;display:block;margin-left:2rem;padding:1rem;position:relative;transition:background-color .1s ease-in-out}.timeline li:hover .flag-wrapper{background-color:#fafafa;border:1px solid #f6f6f6}.timeline li:active .flag-wrapper,.timeline li:focus .flag-wrapper{background-color:#f6f6f6}.timeline a{color:var(--color-primary)}.timeline a:hover{text-decoration:none}.flag-wrapper strong{font-size:.75rem}.flag{display:inline}.timeline li time{display:block}.direction-r .flag:before{background:#fff;border:4px solid var(--color-spot);border-radius:10px;content:" ";display:block;height:16px;left:-41px;margin-top:-10px;position:absolute;right:auto;top:50%;transition:transform .2s;width:16px;z-index:10}.direction-r .flag-wrapper:hover .flag:before{transform:scale(1.5)}.time{background:#f8f8f8;display:block;padding:4px 6px}.guides-container{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;width:100%}@media(min-width:64em){.guides-container{gap:2rem}}.guides-container>div{flex-basis:calc(50% - 1.5rem);flex-grow:0;flex-shrink:0}@media(min-width:64em){.guides-container>div{flex-basis:calc(25% - 2rem);flex-grow:0;flex-shrink:0}}.guides-container>div:focus{border-radius:6px}.guides-navigation-button,.guides-navigation-button:hover{border:none;box-shadow:none;color:var(--color-primary)}.guides-navigation-button:hover{background-color:transparent}.guides-dark{background:linear-gradient(45deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 70%) 100%)}.guides .grid-container .card p{font-size:.85rem}.guides-dark .grid-container .card,.guides-dark .guides-container .card{background-color:color-mix(in srgb,var(--color-primary),#000 50%);border:1px solid transparent}.guides-dark .grid-container .card:hover,.guides-dark .guides-container .card:hover{border:1px solid hsla(0,0%,100%,.5)}.guides-dark .grid-container .card h4,.guides-dark .guides-container .card h4,.guides-dark h1,.guides-dark h2,.guides-dark h3,.guides-dark p{color:#fff}.guides-type{color:var(--color-resources-develop)}.guides-dark .guides-navigation-button{color:#fff}.guides-dark .guides-navigation-button:hover{background-color:color-mix(in srgb,var(--color-primary),#000 30%)}.guides-dark .grid-container .card.card-advanced:hover{border:1px solid var(--color-resources-develop)}.star-dimmed{color:var(--color-grey-light)}.card .star-dimmed{color:var(--color-primary)}.guides-header{background:linear-gradient(45deg,color-mix(in srgb,var(--color-primary),#000 70%) 0,color-mix(in srgb,var(--color-primary),#000 70%) 100%)}@media(min-width:64em){.guides-header{height:var(--resources-guides-header-height);position:fixed;top:calc(var(--resources-header-height) + var(--header-height));width:100%;z-index:50}.guides-header-wrapper{align-items:center;display:flex;justify-content:space-between}}.guides-header .sm-flex:first-of-type{height:56px}.guides-header .guides-header-breadrcumbs{align-items:center;display:flex;max-width:90%;overflow-x:auto;white-space:nowrap}@media(min-width:64em){.guides-header .guides-header-breadrcumbs{max-width:none;overflow-x:initial;white-space:normal}}.guides-header .guides-header-breadrcumbs li{align-items:center;color:#fff;display:block;display:flex;font-size:1rem;height:100%;justify-content:center}.guides-footer .guides-header-breadrcumbs a,.guides-header .guides-header-breadrcumbs li a{color:#fff;display:block;font-size:1rem;padding:.25rem .5rem}.guides-footer .guides-header-breadrcumbs a:hover,.guides-header .guides-header-breadrcumbs li a:hover{text-decoration:underline}.guides-header .guides-header-breadrcumbs li:first-child a:before{color:var(--color-primary-light);content:"";display:inline-block;font-family:Ionicons;margin-right:.5rem;vertical-align:middle}.guides-header .guides-header-breadrcumbs li:not(:last-child) a:after{color:#fff;content:"";display:inline-block;font-family:Ionicons;margin-left:.5rem;vertical-align:middle}.guides-security-header-levels .button-transparent:hover{background-color:transparent}.guides-footer{border-top:1px solid var(--color-primary)}.security-level-indicator{background-color:var(--color-primary-light);border-radius:50%;display:block;height:14px;margin-right:.5rem;width:14px}.security-level-indicator-advanced{background-color:var(--color-resources-develop)}.security-level-indicator-badge{border:1px solid var(--color-primary-light);border-radius:6px;font-size:.85rem;padding:.35rem 1.25rem}.security-level-indicator-badge.advanced{border:1px solid color-mix(in srgb,var(--color-resources-develop) 10%,#fff);color:#fff}.security-level-indicator-badge .security-level-indicator{height:8px;width:8px}.security-level-indicator-badge.security-level-indicator-badge-light{border:1px solid var(--color-resources-develop);color:var(--color-resources-develop)}input[type=search].searchfield{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' x2='16.65' y1='21' y2='16.65'/%3E%3C/svg%3E");background-position:.5em;background-repeat:no-repeat;background-size:16px 16px;padding-left:32px;width:100%}@media(min-width:40em){input[type=search].searchfield{width:400px}}@media(min-width:84em){table.library-table td,table.library-table th{font-size:medium;padding:1rem}table.library-table th:first-child,table.library-table th:nth-child(2),table.library-table th:nth-child(8){width:15%}}table.library-table td{border:none;color:#fff;vertical-align:top}table.library-table td,table.library-table tr:nth-child(2n){background-color:transparent}table.library-table tr{border-top:none}table.library-table th{background-color:color-mix(in srgb,var(--color-primary),#000 25%);border:none;color:#fff;cursor:pointer;font-size:1rem;padding:1rem;-webkit-user-select:none;user-select:none;white-space:nowrap}@media(min-width:64em){table.library-table th{text-align:left}}table.library-table th svg{margin-left:.25rem;vertical-align:middle}@media(min-width:64em){table.library-table tr:hover td{background-color:color-mix(in srgb,var(--color-primary),#000 35%)}}table.library-table td svg{display:inline-block;height:36px;object-fit:contain;vertical-align:middle;width:36px}table.library-table td svg:not(last-child){margin-left:.5rem}@media screen and (max-width:1024px){table.library-table thead{clip:rect(0 0 0 0);border:none;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}table.library-table tr{display:block}table.library-table td{display:block;text-align:right}table.library-table td:before{content:attr(data-label);float:left}table.library-table td[data-label=Description]:before{clip:rect(0 0 0 0);border:none;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}table.library-table td[data-label=Comment]{margin-top:1rem}table.library-table td:last-child{border-bottom:0}}:root{--font-light:"Roboto-Light",Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--type-regular:"Roboto-Regular",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-bold:"Roboto-Medium",Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-extra-bold:"Roboto-Bold",Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-mono:"Roboto-Mono","Fira Code","Source Code Pro",Menlo,Consolas,"Courier New",monospace;--color-text:#737373;--color-heading:#262c3d;--color-light:#fff;--color-primary:#4d556a;--color-primary-dark:#262c3d;--color-primary-medium:#3c4764;--color-primary-light:#7e89a8;--color-tertiary:#f2eb80;--color-success:#57c75c;--color-info:#62818f;--color-danger:#ca2e2b;--color-warning:#e0c01c;--color-add:#0092ff;--color-spot:#d859a1;--color-link:#d859a1;--color-link-hover:#87148b;--color-grey:#aeaeae;--color-grey-light:#ccc;--color-grey-subtle:#f6f6f6;--color-resources-develop:#4aa69e;--color-github:#333;--color-paragraphs:#4d4d4d;--header-height:98px;--header-nav-height:50px;--resources-guides-header-height:70px;--resources-header-height:70px;--button-line-height:1.125rem;--button-padding-y:0.5rem;--button-padding-x:1rem;--border-radius:4px;--border-color:rgba(0,0,0,.125);--space-1:0.5rem;--space-2:1rem;--space-3:2rem;--space-4:4rem;--form-field-height:2.55rem;--form-field-padding:0.75rem;--form-field-font-size:1rem}body.debug *,body.debug :after,body.debug :before{outline:2pt solid rgba(242,252,255,.236)}:root{--curityToastDuration:5000}.curityToast{align-items:center;animation:pop calc(var(--curityToastDuration)*1ms) cubic-bezier(0,0,.2,1);background-color:#333;border-radius:6px;bottom:32px;box-shadow:0 1px 3px rgba(0,0,0,.15),0 2px 6px rgba(0,0,0,.15);box-sizing:border-box;color:#fff;display:flex;font-family:Roboto-Regular,system-ui;font-size:1rem;justify-content:space-between;left:50%;line-height:1.2;max-width:calc(100vw - 64px);min-height:54px;min-width:90%;opacity:0;padding:.75rem 1.5rem;position:fixed;transform:translateX(-50%) scale(.87);transform-origin:center bottom;z-index:99999999}@media only screen and (min-width:40em){.curityToast{font-size:1rem;max-width:calc(100vw - 64px);min-width:240px}}.curityToast p{color:#fff;margin:0}.curityToast span{height:24px;margin-right:1rem;width:24px}.curityToast button,.curityToast span{align-items:center;appearance:none;background-color:transparent;border:none;border-radius:50%;color:#fff;display:inline-flex;justify-content:center;outline:none;vertical-align:middle;white-space:nowrap}.curityToast button{cursor:pointer;font-size:1rem;height:34px;margin-left:1rem;transition:all .2s;width:34px}.curityToast button:hover{background-color:#fff;box-shadow:0 0 0 3px rgba(66,153,225,.3);color:initial}.curityToast button:focus{box-shadow:0 0 0 3px rgba(66,153,225,.6)}.curityToast.stay{animation:stay .15s cubic-bezier(0,0,.2,1) forwards}.curityToast-success{background-color:#00c853}.curityToast-danger{background-color:#f44336}.curityToast-warning{background-color:orange}.curityToast-info{background-color:#1a202c}.curityToast-info a{color:#fafad2}.curityToast-notify{justify-content:center}@keyframes stay{0%{opacity:0;transform:translateX(-50%) scale(.87)}to{opacity:1;transform:translateX(-50%) scale(1)}}@keyframes pop{0%{opacity:0;transform:translateX(-50%) scale(.87)}3.75%,96.25%{opacity:1;transform:translateX(-50%) scale(1)}to{animation-timing-function:cubic-bezier(.4,0,1,1);opacity:0;transform:translateX(-50%) scale(1)}}
Android Integration of the HAAPI Mobile UI SDK | Curity Identity Server
Authentication and Authorization Onboarding Operation API Gateway Integration Applications Learn moreAndroid Integration of the HAAPI Mobile UI SDK On this page The UI SDK for the Hypermedia Authentication API (HAAPI) enables you to quickly implement a security hardened OAuth or OpenID Connect flow for a mobile app. This tutorial demonstrates a fast implementation in a brand new mobile app. For an introduction to HAAPI concepts, see the overview article , or browse the HAAPI Whitepaper for details on the security design.
An end-to-end solution involves calls from the SDK to the HAAPI endpoints of the Curity Identity Server. The SDK first uses attestation to provide proof of the app's identity, then sends an OpenID Connect authentication request. The login flow is then dictated by responses from the API, and the SDK implements many frontend behaviors, which can include navigation, waiting for user input, invoking an external browser, polling, and responding to invalid input.
Provide an Application
Start by opening Android Studio, then create a new project using the Empty Views Activity
option. Set Kotlin as the development language. Also set the minimum SDK version to API level 26 or higher, to ensure the hardware support needed for mobile attestation is present.
Replace the content of the app/res/layout/activity_main.xml
file with the following layout:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns: android = " http://schemas.android.com/apk/res/android "
android: orientation = " vertical "
android: layout_width = " match_parent "
android: layout_height = " wrap_content " >
< TextView
android: layout_width = " match_parent "
android: layout_height = " wrap_content "
android: text = " Unauthenticated View "
android: layout_marginTop = " 10dp "
style = " @style/HeaderStyle " />
< Button
android: layout_width = " match_parent "
android: layout_height = " wrap_content "
android: id = " @+id/btn_login "
android: text = " Start HAAPI Login "
android: layout_marginTop = " 10dp "
style = " @style/ButtonStyle " />
</ LinearLayout >
Replace the app/res/values/colors.xml
file with the following values:
1 2 3 4 5 6 7 8
<?xml version="1.0" encoding="utf-8"?>
< resources >
< color name = " black " > #FF000000 </ color >
< color name = " white " > #FFFFFFFF </ color >
< color name = " blue " > #5865F1 </ color >
< color name = " blue_dark " > #005B9F </ color >
< color name = " purple " > #D55BA0 </ color >
</ resources >
Use the following simple application theme as the content of the app/res/values/themes/themes.xml
files:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
< resources xmlns: tools = " http://schemas.android.com/tools " >
< style name = " Theme.DemoApp " parent = " Theme.MaterialComponents.DayNight.DarkActionBar " >
< item name = " colorPrimary " > @color/black </ item >
< item name = " colorPrimaryVariant " > @color/blue_dark </ item >
< item name = " colorSecondary " > @color/black </ item >
< item name = " android:statusBarColor " > ?attr/colorPrimaryVariant </ item >
</ style >
< style name = " HeaderStyle " parent = " android:Widget.TextView " >
< item name = " android:textColor " > @color/black </ item >
< item name = " android:textSize " > 24sp </ item >
< item name = " android:textStyle " > bold </ item >
< item name = " android:gravity " > center </ item >
</ style >
< style name = " ButtonStyle " parent = " Widget.MaterialComponents.Button " >
< item name = " android:backgroundTint " > @color/blue </ item >
< item name = " android:layout_margin " > 20dp </ item >
< item name = " android:minHeight " > 50dp </ item >
< item name = " android:textAllCaps " > false </ item >
</ style >
</ resources >
Run the Initial App
Next, run the minimal app, to show the initial screen with the basic theme provided above:
Integrate the HAAPI SDK
Before you can implement the mobile security, you must register a client for the mobile app in the Curity Identity Server, and integrate SDK libraries. Do so by adding the UI SDK dependency to your project's gradle file, which will then be downloaded from Maven Central:
1 2 3 4
dependencies {
...
implementation 'se.curity.identityserver:identityserver.haapi.android.ui.widget:4.0.0'
}
Replace the contents of MainActivity.kt
with the following Kotlin code, while keeping the correct package name for your app. By default, a single line of code is used to launch the authentication flow, and a single line of code to receive tokens once it has completed. This code can be added wherever you would like within your mobile app:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 35
package io . curity . demoapp
import androidx . appcompat . app . AppCompatActivity
import android . os . Bundle
import android . widget . Button
import androidx . activity . result . ActivityResult
import androidx . activity . result . contract . ActivityResultContracts
import se . curity . identityserver . haapi . android . driver . HaapiLogger
import se . curity . identityserver . haapi . android . ui . widget . HaapiFlowActivity
import se . curity . identityserver . haapi . android . ui . widget . models . OauthModel
class MainActivity : AppCompatActivity ( ) {
private val startHaapiActivityForResult = registerForActivityResult (
ActivityResultContracts . StartActivityForResult ( ) ) {
receiveTokenResponse ( it )
}
override fun onCreate ( savedInstanceState : Bundle ? ) {
super . onCreate ( savedInstanceState )
setContentView ( R . layout . activity_main )
HaapiLogger . enabled = true
HaapiLogger . isDebugEnabled = true
val button = findViewById < Button > ( R . id . btn_login )
button . setOnClickListener {
startHaapiActivityForResult . launch ( HaapiFlowActivity . newIntent ( this ) )
}
}
fun receiveTokenResponse ( result : ActivityResult ) {
val tokens = result . data ? . getParcelableExtra ( HaapiFlowActivity . className ) as ? OauthModel . Token
}
}
Next, implement the HaapiUIWidgetApplication
interface in your app's Application class, to supply your OAuth settings and point to your instance of the Curity Identity Server. The objects created here are used throughout the lifetime of your app, as the user signs in and out:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
package io . curity . demoapp
import android . app . Application
import se . curity . identityserver . haapi . android . ui . widget . HaapiUIWidgetApplication
import se . curity . identityserver . haapi . android . ui . widget . PresentationMode
import se . curity . identityserver . haapi . android . ui . widget . WidgetConfiguration
import java . net . URI
import java . time . Duration
class DemoApplication : Application ( ) , HaapiUIWidgetApplication {
private val baseUri = URI ( "https://login.example.com" )
override val widgetConfiguration : WidgetConfiguration =
WidgetConfiguration . Builder (
clientId = "haapi-android-ui-client" ,
baseUri = baseUri ,
tokenEndpointUri = baseUri . resolve ( "/oauth/v2/oauth-token" ) ,
authorizationEndpointUri = baseUri . resolve ( "/oauth/v2/oauth-authorize" ) ,
appRedirect = "app://haapi"
)
. setPresentationMode ( PresentationMode . MODAL )
. setAutoPollingDuration ( Duration . ofSeconds ( 10 ) )
. setTokenBoundConfiguration ( createTokenBoundConfiguration ( ) )
. setOauthAuthorizationParamsProvider {
WidgetConfiguration . OAuthAuthorizationParams (
scope = listOf ( "openid" , "profile" )
)
}
. build ( )
}
The Android UI SDK Documentation provides further details on options or you can use the HAAPI code example as a guide. Configure a TokenBoundConfiguration
object so that DPoP proofs protect requests for OAuth tokens. Read more about protected token requests in the Security Lifecycle tutorial.
Next, ensure that you reference this class in your Android manifest file at app/manifests/AndroidManifest.xml
:
1 2 3 4 5 6 7 8 9
< manifest xmlns: android = " http://schemas.android.com/apk/res/android "
xmlns: tools = " http://schemas.android.com/tools " >
<application
android:name=".DemoApplication"
android:label="HAAPI Android Demo App"
...
</ application >
</ manifest >
If required, additional authentication request parameters , such as prompt
and max_age
can be included in the extraRequestParameters
field of the OAuthAuthorizationParams
object. To support different languages, the HAAPI SDK enables you to specify a custom Accept/Language
header. The following example forces a login on every authentication request, and also uses Portuguese translations for login screens:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 27
class DemoApplication : Application ( ) , HaapiUIWidgetApplication {
private val baseUri = URI ( "https://login.example.com" )
override val widgetConfiguration : WidgetConfiguration =
WidgetConfiguration . Builder (
clientId = "haapi-android-ui-client" ,
baseUri = baseUri ,
tokenEndpointUri = baseUri . resolve ( "/oauth/v2/oauth-token" ) ,
authorizationEndpointUri = baseUri . resolve ( "/oauth/v2/oauth-authorize" ) ,
appRedirect = "app://haapi"
)
. setPresentationMode ( PresentationMode . MODAL )
. setTokenBoundConfiguration ( createTokenBoundConfiguration ( ) )
. setAutoPollingDuration ( Duration . ofSeconds ( 10 ) )
. setOauthAuthorizationParamsProvider {
WidgetConfiguration . OAuthAuthorizationParams (
scope = listOf ( "openid" , "profile" ) ,
extraRequestParameters = mapOf ( "prompt" to "login" )
)
}
. setHttpHeadersProvider {
mapOf ( "Accept-Language" to "pt" )
}
. build ( )
}
If you need to support devices without hardware attestation support, you can do so by configuring attestation fallback , though you will ignore those options when getting started.
Update the Manifest File
Next, ensure that the HAAPI flow activity from the SDK, and the custom application class, are also registered in your Android manifest file. Also apply the HAAPI default theming to this activity:
1 2 3 4 5 6 7 8 9
< manifest xmlns: android = " http://schemas.android.com/apk/res/android " >
< application android: name = " .DemoApplication " >
< activity android: name = " .MainActivity " ... />
< activity
android: name = " se.curity.identityserver.haapi.android.ui.widget.HaapiFlowActivity "
android: label = " Haapi Flow "
android: theme = " @style/Theme.Haapi.Ui.Widget.Activity.Modal " />
</ application >
</ manifest >
Authenticate a User
When you click the app's Start HAAPI Login
button, the SDK will read the configuration details from the application class, then run the HAAPI login flow. This triggers a code flow , so the user can authenticate in many ways. All authentication requests are sent in an API driven manner.
The following example uses a simple username and password authenticator, with the default look and feel. A modal window can be used, which enables you to implement authentication without impacting the main app's navigation.
Once authentication is complete, the app receives a token response. This consists of an access token, and a refresh token if enabled. When the openid
scope is used, an ID token is also received. A real app would then store tokens in memory or secure storage, then use them to call APIs, in the standard way.
Handle Error Responses
Authentication can fail for various reasons, such as invalid input, invalid credentials or misconfiguration of the security settings. The UI SDK handles error responses for you, and provides default presentation. Ths error look and feel is shown in the username password screenshots .
In the event of technical errors where HAAPI cannot continue, an error display is presented in an alert dialog. The following unexpected error was simulated by configuring an invalid client ID. Note that an error_description
is returned if expose detailed error messages
is enabled against the token service of the Curity Identity Server. This is useful during development but it is more secure to disable it in production.
If you prefer, you can instead receive the exception as the authentication result, and handle it yourself. This behavior is enabled by configuring setShouldAutoHandleFlowErrorFeedback(false)
on the configuration builder, and then adding code to receive the error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
private val startHaapiActivityForResult = registerForActivityResult (
ActivityResultContracts . StartActivityForResult ( ) ) { result ->
if ( result . resultCode == Activity . RESULT_OK ) {
val model = it . data ? . getParcelableExtra ( HaapiFlowActivity . className ) as ? OauthModel
if ( model is OauthModel . Token ) {
val authenticatedActivity = AuthenticatedActivity . newIntent ( this , userInfoURI , model )
startActivity ( authenticatedActivity )
}
if ( model is OauthModel . Error ) {
Log . d ( "DEBUG" , "Problem encountered: ${ model . error } , ${ model . errorDescription } " )
}
}
if ( activityResult . resultCode == RESULT_CANCELED ) {
Log . d ( "DEBUG" , "User canceled the login attempt" ) ;
}
}
fun receiveErrorResponse ( result : ActivityResult ) {
val error = result . data ? . getSerializableExtra ( HaapiFlowActivity . className ) as ? Throwable
}
Use SDK Logging
During development, you can enable logger classes in the UI SDK to get further information on technical behavior. Do so by adding the following code to your application's startup code:
1 2
HaapiLogger . enabled = true
HaapiLogger . isDebugEnabled = true
You can then view output in Android Studio's logcat
window, to see information that includes both API JSON responses and the results of frontend processing:
1 2 3 4 5 6
HAAPI_UI_FLOW_FRAGMENT - submitting authenticator item selection result SelectionItemModel(title=Username-Password, type=html-form, icon=hui_ic_authenticator_html_form, action={"continueActions":[],"errorActions":[],"fields":[],"type":"application\/x-www-form-urlencoded","method":"GET","href":"\/authn\/authentication\/Username-Password"}, shouldKeepFocus=false)
HAAPI_UI_FLOW - submit() is invoked for form:{"continueActions":[],"errorActions":[],"fields":[],"type":"application\/x-www-form-urlencoded","method":"GET","href":"\/authn\/authentication\/Username-Password"} and params:{}
HAAPI_UI_FLOW - IsLoading observer triggered true
HAAPI_SDK_FLOW - submitForm with {"continueActions":[],"errorActions":[],"fields":[],"type":"application\/x-www-form-urlencoded","method":"GET","href":"\/authn\/authentication\/Username-Password"} with parameters keys: []
HAAPI_SDK_HTTP - Response = {"links":[{"href":"/authn/authentication/Username-Password/forgot-password","rel":"forgot-password","title":"Forgot your password?"},{"href":"/authn/authentication/Username-Password/forgot-account-id","rel":"forgot-account-id","title":"Forgot your username?"},{"href":"/authn/registration/Username-Password","rel":"register-create","title":"Create account"}],"metadata":{"viewName":"authenticator/html-form/authenticate/get"},"type":"authentication-step","actions":[{"template":"form","kind":"login","title":"Login","model":{"href":"/authn/authentication/Username-Password","method":"POST","type":"application/x-www-form-urlencoded","actionTitle":"Login","fields":[{"name":"userName","type":"username","label":"Username"},{"name":"password","type":"password","label":"Password"}]}}]}
HAAPI_UI_FLOW - Receive a new HaapiResponse: {"metadata":{"viewName":"authenticator\/html-form\/authenticate\/get"},"type":"AUTHENTICATION_STEP","actions":[{"kind":"login","title":{"literal":"Login"},"model":{"actionTitle":{"literal":"Login"},"continueActions":[],"errorActions":[],"fields":[{"name":"userName","label":{"literal":"Username"}},{"name":"password","label":{"literal":"Password"}}],"type":"application\/x-www-form-urlencoded","method":"POST","href":"\/authn\/authentication\/Username-Password"}}],"links":[{"href":"\/authn\/authentication\/Username-Password\/forgot-password","rel":"forgot-password","title":{"literal":"Forgot your password?"}},{"href":"\/authn\/authentication\/Username-Password\/forgot-account-id","rel":"forgot-account-id","title":{"literal":"Forgot your username?"}},{"href":"\/authn\/registration\/Username-Password","rel":"register-create","title":{"literal":"Create account"}}],"messages":[]}
Code Example
When getting started for HAAPI on Android, take a look at the HAAPI Android code example , which provides a working end-to-end setup for developers. This app also demonstrates various customization techniques, for controlling the login user experience.
Conclusion
At this stage, the mobile app's security implementation is complete. The next tutorial focuses on the default look and feel for username and password flows .
Join our Newsletter Get the latest on identity management, API Security and authentication straight to your inbox.
Start Free Trial Try the Curity Identity Server for Free. Get up and running in 10 minutes.
Start Free Trial Ready to modernize IAM? Start Today - Build security and improve ease of use to stay ahead of the competition.