*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;interpolate-size:allow-keywords}*{margin:0;line-height:calc(4px + 2ex)}body{-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p{text-wrap:pretty;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}h1,h2,h3,h4,h5,h6{text-wrap:balance;overflow-wrap:break-word}#root{isolation:isolate}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media screen and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@keyframes spinner{to{transform:rotate(360deg)}}substrate-button button,substrate-button a.btn{color:#000;cursor:pointer;background:0 0;border:1px solid;outline:1px solid #0000;padding:.5rem 2rem;font-size:1rem;text-decoration:none;transition:all .2s;transform:translateY(1px)}:is(substrate-button button,substrate-button a.btn):focus{outline:1px solid}:is(substrate-button button,substrate-button a.btn):hover{outline:1px solid;transform:translateY(0)}:is(substrate-button button,substrate-button a.btn):active{transform:translateY(2px)}:is(substrate-button button,substrate-button a.btn):disabled{cursor:not-allowed;opacity:.4}:is(substrate-button button,substrate-button a.btn):disabled:hover{outline-color:#0000;transform:translateY(1px)}:is(substrate-button button,substrate-button a.btn).spinning{opacity:.4}:is(substrate-button button,substrate-button a.btn).spinning .btn-content{visibility:hidden}:is(substrate-button button,substrate-button a.btn).spinning:hover{cursor:initial}:is(substrate-button button,substrate-button a.btn).spinning:after{content:"";box-sizing:border-box;background:0 0;border-top:2px solid #000;border-right:2px solid #0000;border-radius:50%;width:16px;height:16px;margin:auto;animation:.6s linear infinite spinner;position:absolute;inset:0}:root{--burger-open-color:white}@supports (scrollbar-gutter:stable){.scroll-lock{scrollbar-gutter:var(--scroll-lock-gutter)!important}.scroll-lock body{overflow:hidden!important}}@supports not (scrollbar-gutter:stable){.scroll-lock body{padding-right:var(--scroll-lock-size)!important;overflow:hidden!important}}.hamburger{display:inline-block}.hamburger .line{background:var(--hamburger-color,black);border-radius:3px;width:25px;height:2px;transition:transform .2s ease-in-out}.hamburger .container{transition:transform .2s ease-in-out;position:absolute;left:5px}.top:is(.hamburger .container){transform:translateY(-6px)scaleX(.88)}.middle:is(.hamburger .container){transform:scaleX(.88)}.bottom:is(.hamburger .container){transform:translateY(6px)scaleX(.88)}.hamburger button{all:unset;cursor:pointer;display:block}.hamburger button *{pointer-events:none}.hamburger input{display:none}.hamburger .burger{z-index:200;width:31px;height:31px;display:block;position:relative}:is(.hamburger .burger) button{position:relative;top:10px}.hamburger.open{position:relative;top:1rem}.bottom:is(.hamburger.open .line){transition-delay:.1s}.middle:is(.hamburger.open .line){display:none}.top:is(.hamburger.open .line){transition-delay:.1s}.hamburger.open .container{transition-delay:0s}.bottom:is(.hamburger.open .container),.top:is(.hamburger.open .container){z-index:99;transform:none}.bottom:is(:is(.hamburger.open .container) .line){transform:rotate(45deg)}.top:is(:is(.hamburger.open .container) .line){transform:rotate(-45deg)}.hamburger-wrapper{text-align:right;justify-self:right;width:10%;margin-left:auto;position:absolute;top:16px;right:1rem}.hamburger-wrapper.open{top:0}:is(.hamburger-wrapper.open .burger) .line{background-color:var(--burger-open-color,white)}substrate-input{display:block}substrate-input .substrate.input{flex-wrap:wrap;align-items:center;min-width:100%;display:flex}substrate-input .substrate.input .label-content{width:100%}substrate-input .substrate.input input{border:1px solid;border-radius:0;outline:1px solid #0000;width:100%;padding:1rem 1rem .8rem;transition:all .2s}substrate-input .substrate.input input:focus{outline:1px solid}substrate-input:not(:defined){visibility:hidden}.icon{width:2rem;height:2rem}.visually-hidden:not(:focus,:active){clip-path:inset(100%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}password-input{display:block}password-input .password.input{flex-wrap:wrap;align-items:center;min-width:100%;display:flex}password-input .password.input .label-content{width:100%}password-input .password.input span.input{align-items:center;width:100%;display:flex}password-input .password.input input{border:1px solid;border-radius:0;outline:1px solid #0000;width:100%;padding:1rem 1rem .8rem;transition:all .2s}password-input .password.input input:focus{outline:1px solid}password-input .password.input input:disabled+.pw-visibility{opacity:.4;pointer-events:none;cursor:default}password-input .password.input button.pw-visibility{cursor:pointer;background-color:#0000;border:none;outline:2px solid #0000;width:2.4rem;height:2.4rem;transition:all .2s;position:relative;right:3rem}password-input .password.input button.pw-visibility:focus-visible .icon{width:100%;height:100%}password-input .password.input button.pw-visibility:focus-visible{outline-offset:2px;outline:2px solid}password-input:not(:defined){visibility:hidden}:root{--form-control-color:#4281cb}radio-input .radio-input{cursor:pointer;margin-right:1rem}radio-input .radio-input input{cursor:pointer}radio-input .radio-input{grid-template-columns:1em auto;gap:.5em;font-size:1.5rem;display:grid}radio-input .radio-input input[type=radio]{appearance:none;font:inherit;color:currentColor;background-color:#fff;border:.15em solid;border-radius:50%;place-content:center;width:1.15em;height:1.15em;margin:0;display:grid}radio-input .radio-input input[type=radio]:before{content:"";width:.65em;height:.65em;box-shadow:inset 1em 1em var(--form-control-color);border-radius:50%;transition:transform .12s ease-in-out;transform:scale(0)}radio-input .radio-input input[type=radio]:checked:before{appearance:initial;transform:scale(1)}blur-hash{display:block;overflow:hidden}blur-hash canvas{transition:opacity var(--blur-hash-time,.8s);opacity:var(--blur-hash-opacity,.4);width:100%;height:100%;display:block}blur-hash img{object-fit:cover;width:100%;height:100%;display:block;position:relative;top:-100%}blur-hash:not([placeholder]) img{top:0}blur-hash:defined img{opacity:0}blur-hash:defined[data-reveal=waiting]:not([placeholder]){background:var(--blur-hash-fill,transparent)}blur-hash:defined[data-reveal=instant] img{opacity:1}blur-hash:defined[data-reveal=revealed] img{opacity:1}blur-hash:defined[data-waited] img{transition:opacity var(--blur-hash-time,.8s)}blur-hash:defined[placeholder][data-waited][data-reveal=revealed] img{animation:sharpen var(--blur-hash-time,.8s) both}blur-hash:defined[data-reveal=error] img{opacity:0}@keyframes sharpen{0%{filter:blur(30px)}to{filter:blur()}}.card{background:var(--color-surface-card);box-shadow:0 1px 3px var(--color-shadow-soft);box-sizing:border-box;overflow-wrap:anywhere;flex-direction:column;justify-content:space-between;gap:1rem;height:auto;min-height:100%;padding:2rem 1rem;display:flex}.card h2{color:var(--color-text-heading);margin-top:0;font-size:1.1rem}.card p{margin-bottom:1rem}.card :last-child{margin-bottom:0}.route{width:40rem;padding-inline:var(--layout-main-padding-inline);padding-block:var(--layout-main-padding-block);min-height:80vh;margin:0 auto}.small-caps{text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}button{cursor:pointer}.revoked{opacity:.4;cursor:not-allowed}hr{margin:2rem 0}.controls{text-align:right}a{text-underline-offset:1px;transition:all .2s}a:hover{text-underline-offset:3px}header{box-sizing:border-box;border-bottom:1px solid;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:6.2rem;margin-bottom:1rem;padding:1rem;display:flex}header h1{margin:0;font-size:clamp(1.5rem,6vw,2rem)}header h1 a{color:var(--color-text-heading);text-decoration:none}header blur-hash,header .anonymous-avatar{border:1px solid var(--color-text-base);outline:2px solid var(--color-transparent);border-radius:50%;width:4rem;height:4rem;transition:all .2s}header .avatar a img{border-radius:50%;width:100%;transition:all .2s}header .avatar a .anonymous-avatar{background-color:#d1d5db;display:block}header .avatar a:hover blur-hash,header .avatar a:hover .anonymous-avatar{outline-color:var(--color-action-primary);border-color:var(--color-action-primary)}header .login-status{color:var(--color-text-base);margin:0;width:18rem;margin-inline:.5rem 0;font-size:1rem;font-weight:400}body{background:var(--color-surface-canvas);color:var(--color-text-base);font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;line-height:1.6}body.reduce-fouce{opacity:0}body p{max-width:var(--layout-measure);overflow-wrap:anywhere;margin-bottom:1rem;line-height:1.4}@media (width<=680px){header .login-status{display:none}}h2{margin-bottom:1rem}h3{margin-bottom:.5rem}.cards{gap:var(--layout-grid-gap);grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--layout-card-min-width)), 1fr));min-width:0;display:grid}input,.btn{font-size:1rem}.route.home .intro,.route.home .listing{max-width:40rem}.route.home .listing .offerings li{margin-bottom:.5rem}.login-route{gap:1rem;display:grid}.login-route substrate-input .substrate.input input{width:calc(100% - 2.2rem)}.login-methods{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.login-method-option{background:var(--color-transparent);padding:0}.login-method-option radio-input{--form-control-color:var(--color-action-primary);display:block}.login-method-option .radio-input{color:var(--color-text-base);cursor:pointer;align-items:center;gap:.5rem;margin-right:0;display:inline-flex}.login-form{gap:1rem;max-width:28rem;display:grid}.login-passkey-actions{justify-items:start;gap:.75rem;display:grid}.login-method-description,.login-submit-message,.login-route-link{margin:0}.login-field-error{color:var(--color-status-error);margin:-.5rem 0 0;font-weight:600}:root{--color-surface-canvas:#fafafa;--color-surface-card:white;--color-surface-subtle:#e1e0e040;--color-surface-neutral:#f3f4f6;--color-surface-success:#ecfdf5;--color-surface-warning:#fef3c7;--color-surface-inverse:#000;--color-text-base:#000;--color-text-muted:#000;--color-text-heading:#000;--color-text-inverse:#fff;--color-action-primary:#2563eb;--color-action-primary-strong:#1d4ed8;--color-border-default:#9b9b9b;--color-border-inverse:#fff;--color-shadow-soft:#0000001a;--color-status-success:#059669;--color-status-warning:#fde68a;--color-border-warning:#f59e0b;--color-status-error:#b42318;--color-transparent:transparent;--layout-main-padding-inline:clamp(.75rem, 3vw, 1.25rem);--layout-main-padding-block:clamp(.5rem, 1.5vw, 1rem);--layout-grid-gap:clamp(.75rem, 1.4vw, 1.5rem);--layout-card-min-width:clamp(14rem, 28vw, 18rem);--layout-card-row-min-height:28rem;--layout-measure:70ch;--card-shadow:0 4px 12px #21212114;--copy-button-success:green}copy-button{color:#000;background:0 0;width:1rem;height:1rem;padding:.3rem .1rem;position:relative}copy-button .copy-wrapper{fill:var(--copy-button,black)}copy-button .copy-wrapper,copy-button .success-wrapper{width:100%;height:100%;display:inline-block}copy-button button{background-color:#0000;border:none;position:relative;top:2px}copy-button .success-svg{fill:var(--copy-button-success,black)}copy-button .copy-hint{background:var(--copy-button-hint-bg,#333);color:var(--copy-button-hint-color,#fff);border-radius:var(--copy-button-hint-radius,4px);white-space:nowrap;opacity:0;inset:unset;transition:opacity .15s ease-in-out, display .15s allow-discrete;border:none;margin:0 0 4px;padding:.25rem .5rem;font-size:.75rem;display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}:is(copy-button .copy-hint):popover-open{opacity:1;display:block}@starting-style{:is(copy-button .copy-hint):popover-open{opacity:0}}.copy-hint--visible:is(copy-button .copy-hint){opacity:1;display:block}@media (prefers-reduced-motion:reduce){copy-button .copy-hint{transition:none}}@supports (scrollbar-gutter:stable){.scroll-lock{scrollbar-gutter:var(--scroll-lock-gutter)!important}.scroll-lock body{overflow:hidden!important}}@supports not (scrollbar-gutter:stable){.scroll-lock body{padding-right:var(--scroll-lock-size)!important;overflow:hidden!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}@keyframes SHOW-OVERLAY{0%{opacity:0}to{opacity:1}}@keyframes SHOW-DIALOG{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes HIDE-OVERLAY{0%{opacity:1}to{opacity:0}}@keyframes HIDE-DIALOG{0%{transform:scale(1)}to{transform:scale(.95)}}modal-window .modal-focus-trap{opacity:0;width:0;height:0;position:fixed;top:0;left:0;overflow:hidden}modal-window .modal-scroll{width:100%;height:100%;z-index:var(--modal-overlay-z-index,100000);display:none;position:fixed;top:0;left:0;overflow:hidden auto}modal-window .modal-scroll.modal-visible{display:block}modal-window .modal-scroll.modal-show .modal-overlay{animation-name:SHOW-OVERLAY;animation-duration:.25s}modal-window .modal-scroll.modal-show .modal-dialog{animation-name:SHOW-DIALOG;animation-duration:.25s}modal-window .modal-scroll.modal-hide .modal-overlay{opacity:0;animation-name:HIDE-OVERLAY;animation-duration:.25s}modal-window .modal-scroll.modal-hide .modal-dialog{animation-name:HIDE-DIALOG;animation-duration:.25s;transform:scale(.95)}modal-window .modal-content>h2{margin-top:0}modal-window .modal-overlay{background-color:var(--modal-overlay-background-color,#00000080);justify-content:center;align-items:center;width:100%;min-height:100%;display:flex}modal-window .modal-dialog{background-color:var(--modal-dialog-background-color,#fff);border-radius:var(--modal-dialog-border-radius,0);max-height:none;box-shadow:var(--modal-dialog-box-shadow,0 2px 5px 0 #00000080);padding:var(--modal-dialog-padding,1rem);width:var(--modal-dialog-width,500px);border:none;display:block;position:relative}modal-window .modal-close{appearance:none;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--modal-close-color,#fff);background-color:var(--modal-close-background-color,#000);border-radius:var(--modal-close-border-radius,50%);box-shadow:var(--modal-close-box-shadow,0 0 0 1px #fff);display:var(--modal-close-display,block);cursor:pointer;font-family:var(--modal-close-font-family,"Arial", sans-serif);font-size:var(--modal-close-font-size,23px);text-align:center;line-height:var(--modal-close-line-height,26px);width:var(--modal-close-width,26px);border:0;padding:0;position:absolute;top:0;right:0;transform:translate(40%,-40%)}modal-window .modal-close:hover{color:var(--modal-close-color-hover,#000);background-color:var(--modal-close-background-color-hover,#fff);box-shadow:var(--modal-close-box-shadow-hover,0 0 0 1px #000)}modal-window dialog{max-width:80vw}@supports selector(:focus-visible){modal-window .modal-close:focus-visible{color:var(--modal-close-color-hover,#000);background-color:var(--modal-close-background-color-hover,#fff);box-shadow:var(--modal-close-box-shadow-hover,0 0 0 1px #000)}}@supports not selector(:focus-visible){modal-window .modal-close:focus{color:var(--modal-close-color-hover,#000);background-color:var(--modal-close-background-color-hover,#fff);box-shadow:var(--modal-close-box-shadow-hover,0 0 0 1px #000)}}.route.profile{min-height:60vh}.route.profile copy-button{width:2rem;height:2rem}.route.profile h2{margin-top:0}.route.profile .profile-card{box-shadow:var(--card-shadow);background-color:#fff;margin:1rem 0;padding:1.5rem}.route.profile .profile-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem 1.5rem;margin:0;display:grid}.route.profile dt{text-transform:uppercase;letter-spacing:.08em;text-underline-offset:3px;font-size:.8rem;text-decoration:underline 2px}.route.profile .profile-field-value{margin-top:.4rem}.route.profile .profile-sr-only{border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.route.profile .device-management,.route.profile .device-management h3{margin:2rem 0 1rem}.route.profile .device-list{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.route.profile .card{box-shadow:var(--card-shadow);flex-direction:row;padding:.75rem 1rem}.route.profile .device-item{justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.route.profile .device-revoked-label{margin-left:.45rem}.route.profile .device-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.route.profile .device-revoke-btn{flex-shrink:0}.route.profile .change-handle{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.route.profile .change-handle label{flex-direction:column;gap:.25rem;display:flex}.route.profile .change-handle p{width:100%;margin:0}.route.profile .change-handle .change-handle-error{color:var(--color-error,#c00)}.route.profile .add-device-section{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;margin-top:1rem;display:flex}.route.profile .add-device-label{flex-direction:column;gap:.25rem;min-width:20rem;display:flex}.route.profile .add-device-input{border:1px solid;width:14rem;padding:.5rem 1rem;font-size:.9rem}.route.profile .device-error{color:var(--color-error,#c00);width:100%;margin:.5rem 0 0;font-size:.85rem}.route.profile .device-success{color:var(--color-success,#080);width:100%;margin:.5rem 0 0;font-size:.85rem}.route.profile .invite-url-label{margin:0 0 .5rem}.route.profile .invite-url-row{align-items:center;gap:.5rem;display:flex}.route.profile code.invite-url{word-break:break-all}.route.profile .invite-expires{color:var(--color-text-muted,#6c757d);margin:.5rem 0 0}.route.profile .invitation-list{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.route.profile .invitation-item{flex-direction:column;gap:.5rem;display:flex}.route.profile .invitation-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.route.profile .invitation-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.route.profile .invitation-name{font-weight:500}.route.profile .invitation-expires{color:var(--color-text-muted,#6c757d)}.route.profile .invitation-cancel-btn{flex-shrink:0}.route.profile .device-current{color:var(--color-text-muted,#6c757d);margin-left:.4em}.route.profile .dialog-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.route.profile .dialog-revoke-btn button{background:var(--color-danger,#c00);color:#fff;border-color:var(--color-danger,#c00)}.route.profile .dialog-revoke-btn button:hover{background:var(--color-danger-hover,#a00);border-color:var(--color-danger-hover,#a00)}.signup-route{gap:1rem;display:grid}.signup-route substrate-input .substrate.input input{width:calc(100% - 2.2rem)}.signup-support-copy{color:var(--color-text-base);margin:-.5rem 0 0}.route.claim-device{max-width:480px;min-height:60vh;margin:0 auto}.route.claim-device h2{margin-top:0}.route.claim-device .claim-loading{color:var(--color-text-muted,#6c757d)}.route.claim-device .claim-info{background-color:var(--color-bg-subtle,#f8f9fa);border:1px solid var(--color-border,#dee2e6);border-radius:4px;margin:1rem 0;padding:1rem 1.25rem}.route.claim-device .claim-info p{margin:.25rem 0}.route.claim-device .claim-confirm{margin:1rem 0}.route.claim-device .claim-btn{margin-top:.5rem}.route.claim-device .claim-error{color:var(--color-error,#c00);margin:.75rem 0 0}.route.claim-device .claim-success{background-color:var(--color-bg-subtle,#f8f9fa);border:1px solid var(--color-border,#dee2e6);border-radius:4px;padding:1.5rem}.route.claim-device .claim-success h2,.route.not-found h2{margin-top:0}:root{--color-surface-canvas:#fafafa;--color-surface-card:white;--color-surface-subtle:#e1e0e040;--color-surface-neutral:#f3f4f6;--color-surface-success:#ecfdf5;--color-surface-warning:#fef3c7;--color-surface-inverse:#000;--color-text-base:#000;--color-text-muted:#000;--color-text-heading:#000;--color-text-inverse:#fff;--color-action-primary:#2563eb;--color-action-primary-strong:#1d4ed8;--color-border-default:#9b9b9b;--color-border-inverse:#fff;--color-shadow-soft:#0000001a;--color-status-success:#059669;--color-status-warning:#fde68a;--color-border-warning:#f59e0b;--color-status-error:#b42318;--color-transparent:transparent;--layout-main-padding-inline:clamp(.75rem, 3vw, 1.25rem);--layout-main-padding-block:clamp(.5rem, 1.5vw, 1rem);--layout-grid-gap:clamp(.75rem, 1.4vw, 1.5rem);--layout-card-min-width:clamp(14rem, 28vw, 18rem);--layout-card-row-min-height:28rem;--layout-measure:70ch;--card-shadow:0 4px 12px #21212114}nav.app-nav{width:50%}nav.app-nav ul.nav-links{padding:0;list-style:none}nav.app-nav .nav-links-inline{flex-wrap:wrap;justify-content:space-around;gap:2rem;width:100%;display:flex}nav.app-nav .mobile-nav-trigger{display:none}nav.app-nav .nav-links-mobile{gap:.75rem;display:grid}nav.app-nav a{overflow-wrap:anywhere}nav.app-nav a.active{text-underline-offset:3px;text-decoration-thickness:3px}hamburger-two .hamburger-wrapper.open label.burger{top:4px}hamburger-two .hamburger-wrapper.open button{position:relative;top:12px;right:1px}@keyframes fade-in{0%{opacity:0}to{opacity:.8}}@keyframes fade-out{0%{opacity:.8}to{opacity:0}}.hamburger-wrapper{top:20px}.mobile-nav-menu{background-color:var(--color-surface-inverse);width:100vw;height:100vh;animation:fade-in var(--fade-in-time,.4s);display:none;position:absolute}.mobile-nav-menu.open{z-index:97;opacity:.85;flex-direction:column;justify-content:space-around;display:flex;position:fixed;top:0;left:0}.mobile-nav-menu button{border:1px solid var(--color-border-inverse);color:var(--color-text-inverse);background:0 0;padding:.5rem 1rem}.mobile-nav-menu ul{flex-direction:column;justify-content:center;align-items:center;padding:0;list-style:none;display:flex}.mobile-nav-menu ul a{color:var(--color-text-inverse)}.mobile-nav-menu ul li{margin:1.2rem 0}.mobile-nav-menu ul.controls{color:var(--color-text-inverse)}.mobile-nav-menu ul.controls button{fill:var(--color-text-inverse);border:none}.mobile-nav-menu ul.controls li{align-items:center;display:flex}@media (width<=680px){header{min-height:4rem}header>.avatar{display:none}nav.app-nav{width:auto}nav.app-nav .desktop-nav{display:none}nav.app-nav .mobile-nav-shell{display:flex}nav.app-nav hamburger-two.mobile-nav-trigger{display:block}}.site-footer{border-top:1px solid;margin-top:3rem;padding:1rem}
