@layer reset,layout,components,ui,utilities,specific,stitch;@layer reset{:root{--color-background:oklch(0.985 .003 106.448);--color-surface:oklch(0.958 .004 91.447);--color-border:oklch(0.874 .009 84.575);--color-text:oklch(0.252 0 0);--color-secondary:oklch(0.51 0 0);--color-secondary-dark:oklch(0.309 0 0);--color-accent:oklch(0.493 .052 165.154);--color-accent-bright:oklch(0.7819 .1301 165.15);--color-accent-brightest:oklch(0.903 .096 167.313);--color-accent-hover:oklch(from var(--color-accent) 70% c h);--color-utility-danger:oklch(0.486 .188 30.089);--color-utility-warning:oklch(0.636 .101 49.627);--color-utility-success:oklch(0.475 .143 146.455);--color-utility-info:oklch(0.524 .224 260.83);--fontsize--2:clamp(0.64rem,calc(0.7167rem + -.099vw),.6944rem);--fontsize--1:clamp(0.8rem,calc(0.847rem + -.0606vw),.8333rem);--fontsize-0:clamp(1rem,calc(1rem + 0vw),1rem);--fontsize-1:clamp(1.2rem,calc(1.1795rem + 0.0909vw),1.25rem);--fontsize-2:clamp(1.44rem,calc(1.3899rem + 0.2227vw),1.5625rem);--fontsize-3:clamp(1.728rem,calc(1.6359rem + 0.4093vw),1.9531rem);--fontsize-4:clamp(2.0736rem,calc(1.9231rem + 0.6687vw),2.4414rem);--fontsize-5:clamp(2.4883rem,calc(2.2578rem + 1.0244vw),3.0518rem);--fontsize-6:clamp(2.986rem,2.647rem + 1.5068vw,3.8147rem);--padding:1.5rem;--spacing:var(--padding);--gap:1.5rem;--box-shadow:rgba(0,0,0,.45) 0 25px 20px -20px;--backdrop:repeating-conic-gradient(from 0deg at 50% 50%,oklch(from var(--color-secondary-dark) l c h / .3) 0,oklch(from var(--color-secondary-dark) l c h / .3) 25%,oklch(from var(--color-accent) l c h / .3) 25%,oklch(from var(--color-accent) l c h / .3) 50%);--body-font-family:'IBM Plex Sans',sans-serif;--body-italic-font-family:'IBM Plex Sans Italic',sans-serif;--monospace-font-family:'IBM Plex Mono',monospace}@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../assets/fonts/IBM-Plex-Sans_latin_100_700_normal.woff2) format('woff2')}@font-face{font-family:'IBM Plex Sans Italic';font-style:italic;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../assets/fonts/IBM-Plex-Sans_latin_100_700_italic.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/IBM-Plex-Mono_latin_400_normal.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/IBM-Plex-Mono_latin_500_normal.woff2) format('woff2')}*{margin:0;padding:0;box-sizing:border-box;font-family:var(--body-font-family)}html{scroll-behavior:smooth}body{height:100%;font-family:var(--body-font-family);font-weight:400;color:var(--color-text);background-color:var(--color-background)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;width:1px;white-space:nowrap}h1{font-size:var(--fontsize-6);letter-spacing:-.2rem;font-weight:700;text-fit:none}h2{font-size:var(--fontsize-4);letter-spacing:-.1rem;font-weight:600}h3{font-size:var(--fontsize-3);font-weight:600}h4{font-size:var(--fontsize-2);font-weight:500}h5,h6,p{font-size:var(--fontsize-0);font-weight:400}p.sub{font-size:var(--fontsize--1);color:var(--color-secondary)}p{line-height:150%;padding-block-end:calc(var(--padding) / 2)}ol,ul,dl{}li{font-family:var(--body-font-family)}.accent{font-family:var(--monospace-font-family);color:var(--color-accent)}img{max-width:100%;height:auto}main a:not(:has(p)){color:var(--color-accent);text-decoration:none;display:inline-block;&:hover{text-decoration:underline;color:var(--color-accent-hover)}}.button+.button,button+button{margin-inline-start:var(--spacing);@media screen and (width <=48rem){margin-inline-start:0}}a,input,button,select,textarea{&:active,&:focus{outline:3px var(--color-accent-hover) solid}}pre{padding:.25rem .5rem;background-color:var(--color-secondary-dark);color:var(--color-accent-brightest);font-family:var(--monospace-font-family);margin-block-end:var(--spacing);font-size:var(--fontsize--1);display:inline-block}dl dt{margin-block-start:.5rem;margin-block-end:.25rem;font-weight:700;font-family:var(--monospace-font-family);color:var(--color-accent)}dl dd{color:var(--color-secondary);font-family:var(--body-italic-font-family);font-size:var(--fontsize--1);margin-block-end:.5rem;padding-block-end:.5rem;&:not(:last-child){border-bottom:1px solid var(--color-border)}}em{font-family:var(--body-italic-font-family)}.skip-link{position:absolute;z-index:2000;inset-block-start:.5rem;inset-inline-start:.5rem;padding:.75rem 1rem;background:var(--color-background);color:var(--color-accent);border:2px solid var(--color-accent);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}}@layer layout{main{min-height:90vh}section{margin-inline:auto;max-width:90%;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);height:100%;&>header{max-width:calc(100% - (var(--padding)))}&.breakout{max-width:100%;border:0;padding-inline:5%;background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);&>div:first-child{border-left:1px solid var(--color-border)}&>div:last-child{border-right:1px solid var(--color-border)}@media screen and (max-width:48rem){&>div:nth-child(odd){border-left:1px solid var(--color-border)}&>div:nth-child(even){border-right:1px solid var(--color-border)}&>div{border-right:1px solid var(--color-border);border-left:1px solid var(--color-border)}}}&>*{padding:var(--padding)}}.grid{display:grid;&.full-grid{margin-inline:calc(var(--padding) * -1)}&:has(.icon-container){gap:1px}&.grid-2-col{grid-template-columns:1fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-3-col{grid-template-columns:1fr 1fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-4-col{grid-template-columns:1fr 1fr 1fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-1_2-col{grid-template-columns:1fr 2fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-2_3-col{grid-template-columns:2fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-3_1{grid-template-columns:minmax(0,3fr) minmax(0,1fr);@media (max-width:48rem){grid-template-columns:1fr}}&.grid-1_3{grid-template-columns:minmax(0,1fr) minmax(0,3fr);@media (max-width:48rem){grid-template-columns:1fr}}&.grid-20{grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));@media (max-width:48rem){grid-template-columns:1fr}}&.grid-25{grid-template-columns:repeat(auto-fit,minmax(min(26rem,100%),1fr));@media (max-width:48rem){grid-template-columns:1fr}}&.grid-6_5{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr))}&.grid-1-2-1-col{grid-template-columns:1fr 2fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.grid-2-1-1-col{grid-template-columns:2fr 1fr 1fr;@media (max-width:48rem){grid-template-columns:1fr}}&.with-gap{gap:var(--spacing)}&.bordered{border-top:1px solid var(--color-border)}&.center-content{place-items:center}header.with-badge{display:grid;grid-template-columns:6fr 1fr;grid-template-rows:repeat(2,1fr);grid-column-gap:0;grid-row-gap:0;h2{grid-area:1 / 1 / 2 / 2}span.badge{grid-area:1 / 2 / 2 / 3;text-align:center}hr{grid-area:2 / 1 / 3 / 3}}}.flex{display:flex;&.column{flex-direction:column}&.row{flex-direction:row;flex-wrap:wrap}&.justified{align-items:center;justify-content:space-between}&.vbottom{align-items:baseline}}.center-block{place-self:center}}@layer components{header#main-header{width:100%;padding-inline:calc(var(--spacing) + 5%);padding-block:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);a.navbar-brand{display:flex;flex-direction:row;text-decoration:none;color:var(--color-accent);align-items:center;justify-content:center;img{aspect-ratio:1 / 1;margin-inline-end:1rem}&:hover{text-decoration:underline;color:var(--color-accent-hover)}}.username{display:inline-block;font-weight:600;color:var(--color-accent)}#toolbar{display:inline-grid;grid-auto-flow:column;grid-template-columns:repeat(auto-fill,1fr);.button,.button+.button{background-color:transparent;color:var(--color-accent);border:0;padding:0 1rem;margin-inline-start:0;margin-block-end:0}}}.popover-menu{grid-template-columns:1fr;grid-template-rows:auto;border:0;background-color:var(--color-background);padding:var(--spacing);gap:var(--gap);inline-size:min(220px,80vw);box-shadow:var(--box-shadow);inset:auto;@supports(anchor-name:--anchor){margin-block-start:.5rem;inset:auto;position-area:bottom}&:popover-open{display:grid;grid-template-columns:1fr}ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;.menu-item{padding:.5rem 1rem;a{color:var(--color-accent);text-decoration:none;&:hover,&:focus{text-decoration:underline}}}}}.button{text-decoration:none;padding:1rem 2rem;border:1px solid var(--color-accent);margin-block-end:var(--spacing);background-color:var(--color-accent);color:contrast-color(var(--color-accent));font-size:var(--fontsize-0);@media screen and (width <=48rem){padding-inline:1rem;padding-block:.5rem}}.button.hollow{color:var(--color-accent);border:1px solid var(--color-accent);background-color:transparent;transition:all .2s linear;&:hover{cursor:pointer;background-color:var(--color-accent);color:var(--color-background)}}.button:has(.icon){line-height:1}p.claim{font-size:calc(var(--fontsize-5) * 1.6);line-height:110%;letter-spacing:-.2rem;margin-block:3rem;max-width:13ch;.hilite{color:var(--color-accent)}&~p.claim{font-size:var(--fontsize-1);line-height:140%;letter-spacing:0;margin-block:3rem;max-width:42ch;text-wrap:balance}}p.intro{font-size:var(--fontsize-2);margin-block:var(--spacing);max-width:18ch}hr{display:block;margin-block:var(--spacing);height:.2rem;background-color:var(--color-accent);border:0;max-width:10%}.card{h2{font-size:var(--fontsize-1)}p{}}.badge{background-color:var(--color-secondary-dark);color:var(--color-accent-brightest);font-size:var(--fontsize--1);font-family:var(--monospace-font-family);text-transform:uppercase;padding:.25rem 1rem;letter-spacing:.1rem;border:1px solid var(--color-accent);display:inline-block;margin:var(--padding);&.badge-status{&.status-active{background-color:var(--color-utility-success);color:contrast-color(var(--color-utility-success))}&.status-inactive{background-color:var(--color-secondary);color:contrast-color(var(--color-secondary))}}&.badge-role{&.role-admin{background-color:var(--color-utility-info);color:contrast-color(var(--color-utility-info))}&.role-editor{background-color:var(--color-utility-info);color:contrast-color(var(--color-utility-info))}&.role-user{background-color:var(--color-utility-info);color:contrast-color(var(--color-utility-info))}}}.grid .badge{margin-block-start:0;margin-inline-start:0}ul.checklist{margin-inline-start:var(--spacing);padding-inline-start:var(--padding);font-size:var(--fontsize-1);li{padding-inline:var(--padding);padding-block:calc(var(--padding) / 2);&::marker{content:url(../assets/checklist-checkmark.png)}ul{padding-inline-start:calc(var(--padding) / 2);margin-inline-start:var(--spacing);margin-block-start:calc(var(--spacing) / 2)}}&.small{font-size:var(--fontsize-0);li{padding-block-start:0;padding-inline-start:calc(var(--padding) / 2)}}}.table-scroll{max-width:100%;overflow-x:auto}table{border-collapse:collapse;border-spacing:0;border:1px solid var(--color-border);margin:var(--spacing) 0;width:100%;caption{font-size:var(--fontsize-3);font-weight:600;text-align:start}thead{display:table-header-group;padding:.25rem;th{padding:.75rem .25rem;text-align:left;font-size:var(--fontsize--1);text-transform:uppercase}}tr{padding:.5rem;border:1px solid var(--color-border)}tbody{tr:nth-child(odd){background-color:var(--color-surface);&:hover{background-color:var(--color-accent-brightest)}}tr:hover{background-color:var(--color-accent-brightest)}}td{padding:.25rem;&.full-cell{text-transform:uppercase;font-size:var(--fontsize--1);font-weight:600;--bg-color:inherit;background-color:var(--bg-color);color:contrast-color(var(--bg-color))}&.status-inactive{--bg-color:var(--color-utility-warning)}&.status-active{--bg-color:color-mix(var(--color-utility-success) 95%,#000 5%)}&.role-admin{--bg-color:color-mix(var(--color-utility-info) 95%,#000 5%)}&.role-editor{--bg-color:color-mix(oklch(from var(--color-utility-info) l c h / .75) 95%,#000 5%)}&.role-user{--bg-color:color-mix(oklch(from var(--color-utility-info) l c h / .50) 95%,#000 5%)}&>.button{margin-block-end:0}}.toolbar{display:flex;flex-direction:row;justify-content:flex-end;.button{margin:0;padding:.5rem;border:1px solid var(--color-accent);transition:all .3s ease-in-out;cursor:pointer;&:hover,&:focus{background-color:var(--color-accent-hover);border:1px solid var(--color-accent-hover)}}}}code{font-size:var(--fontsize--2);font-family:var(--monospace-font-family);padding:calc(var(--padding) / 2);margin:calc(var(--spacing) / 2);border:1px solid var(--color-border);text-align:left;white-space:pre-line;display:block}footer{border-top:1px solid var(--color-border);background-color:var(--color-surface);padding:var(--padding) 5%;h3{font-family:var(--monospace-font-family);font-size:var(--fontsize-1);font-weight:700;text-transform:uppercase;letter-spacing:-.1rem;display:inline-block}ul{list-style:none;margin:0;padding:0;li{padding-block:.5rem;.footer-nav-item{color:var(--color-text);text-decoration:var(--color-text) dotted}}}p{font-size:var(--fontsize--1)}}.code-example{display:grid;margin-block:var(--spacing);padding:var(--padding);border:1px solid var(--color-border);text-align:center;justify-content:center;justify-items:center;align-items:center;h4{margin-block-end:var(--spacing);text-transform:uppercase;font-family:var(--monospace-font-family)}pre{display:block;margin-block:var(--spacing)}.helper{font-size:var(--fontsize--1);color:var(--color-secondary);font-family:var(--body-italic-font-family);max-width:80%}}}@layer ui{.loom73-ready [data-inview]>*{opacity:0;transform:scale(0.3) translateY(1.25rem)}.is-visible>*{animation:popin .5s cubic-bezier(0.3,1.5,.7,1) forwards;animation-delay:calc(var(--i,0) * 40ms)}@keyframes popin{from{opacity:0;transform:scale(0.3) translateY(1.25rem)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-reduced-motion:reduce){.loom73-ready [data-inview]>*{opacity:1;transform:none}.is-visible>*{animation:none}}.navbar-toggler{display:none}.navbar{display:flex;align-items:start;gap:var(--spacing,1.5rem);margin:0;padding:0;list-style:none}.navbar .navbar-menu{list-style:none;display:flex;flex-direction:row;li{display:flex;padding-inline:calc(var(--spacing) / 2);a{color:var(--color-accent);text-decoration:none;&:hover,&:focus,&:visited{text-decoration:underline}}}}ul.sub-nav{display:none;flex-direction:column;position:absolute;top:36px;background:var(--color-background);border:1px solid var(--color-border);padding:calc(var(--padding) / 2);li{padding:.25rem}}li.nav-item:hover>ul.sub-nav,li.nav-item:focus-within>ul.sub-nav{display:block}@media (width < 48rem){.loom73-ready .navbar-toggler{display:inline-flex;border:0;background:transparent}.loom73-ready .navbar{position:absolute;z-index:1000;inset-block-start:50px;inset-inline:0;background:var(--color-surface);height:calc(100vh - 50px);padding:var(--spacing)}.loom73-ready .navbar[hidden]{display:none}.loom73-ready .navbar-menu{display:grid;list-style:none;li{padding:calc(var(--spacing) / 4);flex-direction:column}li a{font-size:var(--fontsize-1)}}.loom73-ready .navbar-menu ul.sub-nav{display:block;position:relative;top:0;background:0;border:0}}.loom73-tooltip{position:fixed;z-index:1000;width:max-content;max-width:min(18rem,calc(100vw - 1rem));overflow-wrap:break-word;white-space:normal;pointer-events:auto}.loom73-tooltip[hidden]{display:none}.loom73-tooltip::after{content:"";position:absolute;left:50%;width:.5rem;height:.5rem;background:inherit;transform:translateX(-50%) rotate(45deg)}.loom73-tooltip[data-placement=top]::after{top:calc(100% - .25rem)}.loom73-tooltip[data-placement=bottom]::after{bottom:calc(100% - .25rem)}.loom73-tooltip{padding:.5rem .75rem;border:1px solid rgba(255 255 255 / 10%);border-radius:.25rem;background:#202428;color:#fff;box-shadow:0 .25rem 1rem rgba(0 0 0 / 20%);font-size:var(--fontsize--1);font-weight:400;line-height:1.4;text-align:start}@scope ([data-table]){th[aria-sort] button{appearance:none;border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer}th[aria-sort] button::after{display:inline-block;margin-left:.4em;opacity:.45}th[aria-sort=none] button::after{content:"↕"}th[aria-sort=ascending] button::after{content:"↑";opacity:1}th[aria-sort=descending] button::after{content:"↓";opacity:1}.table-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.table-pagination button[disabled]{opacity:.45;cursor:not-allowed}td a.button{place-self:center;display:flex;margin-block-end:0}}@scope (div.table-pagination){text-align:center;button{padding-block:calc(var(--padding) / 2);padding-inline:calc(var(--padding) / 2);font-size:var(--fontsize-0);border:0;background:0;text-transform:uppercase;color:var(--color-accent);cursor:pointer;transition:all .1s linear;&:hover,&:focus{transform:scale(1.05)}&[disabled]{opacity:.5;color:var(--color-secondary);cursor:default;&:hover{transform:none}}}}@scope (form){accent-color:var(--color-accent);&.small{max-width:max(40%,20rem)}legend{font-size:var(--fontsize-1);font-weight:700;padding-block-end:var(--padding)}fieldset{border:0}.form-content{display:grid;gap:1.5rem;grid-template-columns:min-content auto;margin-block-end:1.5rem}.form-group{grid-column:span 2;display:grid;grid:inherit;grid-template-columns:subgrid;align-items:center;@media screen and (width <=48rem){grid-column:1}}.form-group input[type=checkbox],.form-group input[type=radio]{justify-self:start}.form-group:has(input:focus){outline:3px solid color-mix(var(--color-accent) 20%,transparent 80%);outline-offset:2px}.form-footer{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:center}label,legend{text-align:left;width:fit-content;text-wrap:nowrap}label:has(+[required])::after{content:"*";color:var(--color-utility-danger)}input,select,textarea{padding-inline:.5rem;padding-block:.25rem;font-size:var(--fontsize-0);border:1px solid var(--color-border);font-family:var(--body-font-family);&:user-valid{border-color:var(--color-utility-success)}&:user-invalid{border-color:var(--color-utility-danger)}}input[type=file]{padding:0}input[type=file]::file-selector-button{padding-inline:.5rem;padding-block:.25rem;border:1px solid var(--color-accent);background-color:var(--color-accent);color:contrast-color(var(--color-accent));font-family:var(--body-font-family);font-size:var(--fontsize-0)}.user-invalid-error[data-active-error=true]{padding:.5rem;font-size:var(--fontsize--1);color:var(--color-surface);background-color:var(--color-utility-danger);grid-column:2}button[type=submit]{background-color:var(--color-accent);border:0;padding:1rem 2rem;font-size:var(--fontsize-0);color:contrast-color(var(--color-accent));align-self:end;cursor:pointer;&:hover,&:focus,&:active{background-color:var(--color-accent-hover);color:contrast-color(var(--color-accent-hover))}}button[type=reset]{background-color:var(--color-secondary);border:0;padding:1rem 2rem;font-size:var(--fontsize-0);color:contrast-color(var(--color-surface));align-self:end;cursor:pointer;&:hover,&:focus,&:active{background-color:var(--color-accent-hover);color:contrast-color(var(--color-accent-hover))}}input+.icon{margin-block:.25rem}.form-helper-text{font-size:var(--fontsize--1);color:var(--color-secondary);font-family:var(--body-italic-font-family)}}@scope(dialog){margin:auto;padding:var(--padding);text-transform:initial;min-width:35vw;max-width:90vw;&::backdrop{background-image:var(--backdrop);background-size:.5rem .5rem;background-repeat:repeat}.buttons{display:grid;gap:var(--spacing);grid-template-columns:repeat(auto-fit,minmax(80px,1fr));margin-block-start:var(--spacing)}button.modal-button,button.modal-button[type=submit]{font-size:var(--fontsize-0);padding:.5rem 1rem;cursor:pointer;&.close{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);&:hover,&:focus,&:active{background-color:var(--color-accent);color:contrast-color(var(--color-accent))}}}button.modal-button[type=submit]{background-color:var(--color-utility-danger);color:contrast-color(var(--color-utility-danger));&:hover,&:focus,&:active{background-color:oklch(from var(--color-utility-danger) .5 c h);color:contrast-color(oklch(from var(--color-utility-danger) .5 c h))}}button[data-dialog-close]{border:0;background:0;display:flex;justify-self:end}}}@layer utilities{.debugger{--debug-color:var(--color-utility-info);display:block;width:100%;padding:1.5rem;border:1px solid var(--debug-color);background-color:oklch(from var(--debug-color) l c h / .4);color:oklch(from var(--debug-color) l c h);font-size:var(--fontsize-0);&>span{font-family:var(--monospace-font-family);font-weight:500}&>hr{height:1px;margin-block:.5rem;background-color:var(--debug-color);border:0}&>pre{font-family:var(--monospace-font-family);font-size:var(--fontsize--1)}&.sql{--debug-color:var(--color-utility-warning)}&.string{--debug-color:var(--color-utility-info)}}.flash{--feedback-color:var(--color-utility-info);display:block;position:relative;width:100%;padding:1.5rem;border:1px solid var(--feedback-color);background-color:oklch(from var(--feedback-color) l c h / .15);color:oklch(from var(--feedback-color) calc(l - .2) c h);font-size:var(--fontsize-0);font-weight:700;&.flash--error{--feedback-color:var(--color-utility-danger)}&.flash--warning{--feedback-color:var(--color-utility-warning)}&.flash--info{--feedback-color:var(--color-utility-info)}&.flash--success{--feedback-color:var(--color-utility-success)}.dismiss{position:absolute;top:.5rem;right:.5rem;cursor:pointer;background:0;color:var(--feedback-color);border:0}}.pretty-print{--debug-color:var(--color-utility-info);border:1px solid var(--debug-color);background-color:oklch(from var(--debug-color) l c h / .25);summary{font-weight:500;cursor:pointer;&::marker{content:'+';padding-right:.5rem;display:inline-block}}pre{display:block;margin-block-start:1rem;background-color:var(--color-secondary-dark);color:var(--color-accent-brightest);font-size:var(--fontsize--1);padding:var(--gap);font-family:var(--monospace-font-family)}}.hilite{color:var(--color-accent)}.color-accent{color:var(--color-accent)}.color-accent-hover{color:var(--color-accent-hover)}.color-surface{color:var(--color-surface)}.color-accent-bright{color:var(--color-accent-bright)}.color-border{color:var(--color-border)}.color-secondary{color:var(--color-secondary)}.color-text{color:var(--color-text)}.color-danger{color:var(--color-utility-danger)}.color-warning{color:var(--color-utility-warning)}.color-info{color:var(--color-utility-info)}.color-success{color:var(--color-utility-success)}}@layer specific{figure{text-align:center;margin-block:2rem;img{max-width:100%;height:auto}figcaption{margin-block:1.5rem;font-family:var(--body-italic-font-family);font-style:italic;color:var(--color-secondary)}}.card.icon-container{outline:1px solid var(--color-border);background-color:var(--color-background);border-collapse:collapse;padding:1.5rem;place-items:center;text-align:center;span.icon-name{display:block;color:var(--color-secondary);font-size:var(--fontsize--1);font-family:var(--monospace-font-family);text-transform:lowercase;margin-block-start:1rem}}body .coding-window{display:block;position:relative;background:var(--color-secondary-dark);border-top:1rem solid var(--color-text);color:var(--color-surface);padding-block:1rem 4rem;padding-inline:1rem 1rem;font-size:var(--fontsize-1);&>span{display:inline-block;padding-block:.25rem;font-family:var(--monospace-font-family)}.shuttle-username{color:oklch(from var(--color-utility-warning) calc(l + 0.25) c h)}.shuttle-path{color:oklch(from var(--color-utility-success) calc(l + 0.25) c h)}.shuttle-inline-symbol{color:var(--color-accent-brightest)}}.callout{margin-block:calc(var(--spacing) * 2);text-align:left;font-size:var(--fontsize-3);text-wrap:balance;font-family:var(--body-italic-font-family)}.grid-components{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--padding);@media screen and (width <=48rem){grid-template-columns:repeat(2,1fr)}&>div{border:1px solid var(--color-border);padding:var(--padding);text-align:center;place-items:center;&>span{display:block;font-size:var(--fontsize--2);text-transform:uppercase;font-family:var(--monospace-font-family)}}}.card.architecture-card{border:1px solid var(--color-border);padding:var(--spacing);transition:all .2s linear;&:hover{border-left:4px solid var(--color-accent-bright)}h3{font-size:var(--fontsize-1);font-family:var(--monospace-font-family);padding-bottom:calc(var(--spacing) / 2)}}.card.principle{display:grid;grid-template-columns:1fr 3fr;grid-template-rows:1fr 2fr;gap:calc(var(--spacing) / 2);i{justify-self:end;grid-row:span 2 / span 2}p{grid-column-start:2}@media screen and (width <=48rem){grid-template-columns:1fr;grid-template-rows:1fr 2fr;h4{font-size:var(--fontsize-1)}i{justify-self:start}}}.card.component{display:grid;grid-template-columns:1fr;border:1px solid var(--color-border);padding:var(--padding);gap:var(--spacing);grid-template-rows:subgrid;grid-row:span 4;&.frontend{border-color:var(--color-accent-bright);&::before{content:'frontend';display:block;color:var(--color-accent-bright);font-size:var(--fontsize--2);text-transform:uppercase;letter-spacing:1px;font-family:var(--monospace-font-family)}}&.backend{border-color:var(--color-accent);&::before{content:'backend';display:block;text-transform:uppercase;letter-spacing:1px;font-family:var(--monospace-font-family);color:var(--color-accent);font-size:var(--fontsize--2)}}&.cli{border-color:var(--color-text);&::before{content:'cli';display:block;text-transform:uppercase;letter-spacing:1px;font-family:var(--monospace-font-family);color:var(--color-accent);font-size:var(--fontsize--2)}}}.card.ts{padding:var(--padding);border:1px solid var(--color-border);background:var(--color-surface)}.card.plain{padding:var(--padding);background:var(--color-background);border:1px solid var(--color-border);h3{margin-block-end:var(--spacing)}}.utilities-grid{width:100%;display:grid;grid:"data-tables in-view-wrapper" auto "forms in-view-wrapper" auto "dialogs tooltips" auto "dismissables responsive-navs" auto / 1fr 1fr;gap:var(--spacing);.data-tables{grid-area:data-tables}.in-view-wrapper{grid-area:in-view-wrapper}.forms{grid-area:forms}.dialogs{grid-area:dialogs}.tooltips{grid-area:tooltips}.dismissables{grid-area:dismissables}.responsive-navs{grid-area:responsive-navs}@media screen and (width <=48rem){grid:"data-tables" auto "forms" auto "in-view-wrapper" auto "dialogs" auto "tooltips" auto "dismissables" auto "responsive-navs" auto / 1fr 1fr}}.card.utility{background-color:var(--color-surface);padding:var(--padding);border:1px solid var(--color-border);h4{border-bottom:1px solid var(--color-border);grid-column:span 2;text-box-trim:trim-both;padding-block-end:.5rem;margin-block-end:.5rem}}.flow-diagram{display:flex;flex-direction:row;flex-wrap:wrap;flex-grow:1;justify-content:space-evenly;align-items:center;margin-block-start:calc(var(--spacing) * 2);.flow-diagram-element{padding-block:calc(var(--spacing) / 2);padding-inline:calc(var(--spacing) * 2);border:1px solid var(--color-border);text-align:center;display:flex;align-items:center;font-family:var(--monospace-font-family);text-transform:uppercase;font-size:var(--fontsize-1);@media screen and (width <=48rem){width:100%;justify-content:center;& + .stitch{transform:rotate(90deg)}}}}.list{padding:var(--padding);&.large{font-size:var(--fontsize-1);@media (width <=48rem){font-size:var(--fontsize-0)}}li{padding-block:calc(var(--spacing) / 2)}span.code{font-family:var(--monospace-font-family);display:inline-block;padding-inline:.5rem;background-color:var(--color-surface);color:var(--color-accent)}}body.components.stitch_icons{.card{text-align:center;span.label{font-family:var(--monospace-font-family);font-size:var(--fontsize--1);display:block;clear:both;text-align:center}}}.code-snippet{padding:var(--padding);border:1px solid var(--color-border);background:var(--color-surface);font-family:var(--monospace-font-family);color:darkblue;&>span.attr{color:var(--color-utility-danger);font-family:var(--monospace-font-family)}&>span.val{color:var(--color-utility-success);font-family:var(--monospace-font-family)}&>span.val-hilight{color:var(--color-accent);font-family:var(--monospace-font-family);font-weight:700}}#shuttle-commands{margin-inline:0;tbody tr td:first-child{font-family:var(--monospace-font-family);background-color:var(--color-secondary-dark);color:var(--color-accent-brightest)}}.avatar{aspect-ratio:1 / 1;width:3.6rem;padding:0;border-radius:50%;border:2px solid var(--color-accent)}body.components-tables #main-content .grid:not(.breakout)>div{min-width:0}}@layer stitch{.stitch{--stitch-base-size:1.25em;--stitch-scale:1;--stitch-rotation:0deg;--stitch-color:currentColor;display:inline-grid;width:var(--stitch-size,calc(var(--stitch-base-size) * var(--stitch-scale)));height:var(--stitch-size,calc(var(--stitch-base-size) * var(--stitch-scale)));line-height:0;vertical-align:text-bottom;background-color:transparent;mask-repeat:no-repeat;mask-position:center;mask-size:contain;&::after{width:inherit;height:inherit;display:inline-block;content:" ";mask-size:contain;background-color:var(--stitch-color);transform-origin:center;transform:rotate(var(--stitch-rotation))}&.stitch--arrow::after{mask-image:url(../assets/icons/arrow.svg)}&.stitch--bin::after{mask-image:url(../assets/icons/bin.svg)}&.stitch--caret::after{mask-image:url(../assets/icons/caret.svg)}&.stitch--check::after{mask-image:url(../assets/icons/check.svg)}&.stitch--chevron::after{mask-image:url(../assets/icons/chevron.svg)}&.stitch--cog::after{mask-image:url(../assets/icons/cog.svg)}&.stitch--cube::after{mask-image:url(../assets/icons/cube.svg)}&.stitch--danger::after{mask-image:url(../assets/icons/danger.svg)}&.stitch--database::after{mask-image:url(../assets/icons/database.svg)}&.stitch--document::after{mask-image:url(../assets/icons/document.svg)}&.stitch--download::after{mask-image:url(../assets/icons/download.svg)}&.stitch--error::after{mask-image:url(../assets/icons/error.svg)}&.stitch--info::after{mask-image:url(../assets/icons/info.svg)}&.stitch--layers::after{mask-image:url(../assets/icons/layers.svg)}&.stitch--leaf::after{mask-image:url(../assets/icons/leaf.svg)}&.stitch--login::after{mask-image:url(../assets/icons/login.svg)}&.stitch--logout::after{mask-image:url(../assets/icons/logout.svg)}&.stitch--mail::after{mask-image:url(../assets/icons/mail.svg)}&.stitch--menu::after{mask-image:url(../assets/icons/menu.svg)}&.stitch--minus::after{mask-image:url(../assets/icons/minus.svg)}&.stitch--outbound::after{mask-image:url(../assets/icons/outbound.svg)}&.stitch--pdf::after{mask-image:url(../assets/icons/pdf.svg)}&.stitch--pencil::after{mask-image:url(../assets/icons/pencil.svg)}&.stitch--plus::after{mask-image:url(../assets/icons/plus.svg)}&.stitch--puzzle::after{mask-image:url(../assets/icons/puzzle.svg)}&.stitch--question::after{mask-image:url(../assets/icons/question.svg)}&.stitch--save::after{mask-image:url(../assets/icons/save.svg)}&.stitch--search::after{mask-image:url(../assets/icons/search.svg)}&.stitch--spreadsheet::after{mask-image:url(../assets/icons/spreadsheet.svg)}&.stitch--times::after{mask-image:url(../assets/icons/times.svg)}&.stitch--user::after{mask-image:url(../assets/icons/user.svg)}&.stitch--image::after{mask-image:url(../assets/icons/image.svg)}&.stitch--view::after{mask-image:url(../assets/icons/view.svg)}&.stitch--cli::after{mask-image:url(../assets/icons/cli.svg)}&.stitch--padlock::after{mask-image:url(../assets/icons/padlock.svg)}&.stitch--routes::after{mask-image:url(../assets/icons/routes.svg)}&.stitch--api::after{mask-image:url(../assets/icons/api.svg)}&.stitch--path::after{mask-image:url(../assets/icons/path.svg)}}@scope (.stitch){:scope.x1\.5{--stitch-scale:1.5}:scope.x2{--stitch-scale:2}:scope.x3{--stitch-scale:3}:scope.x4{--stitch-scale:4}:scope.x5{--stitch-scale:5}:scope.x6{--stitch-scale:6}:scope.r45::after{--stitch-rotation:45deg}:scope.r90::after{--stitch-rotation:90deg}:scope.r135::after{--stitch-rotation:135deg}:scope.r180::after{--stitch-rotation:180deg}:scope.r225::after{--stitch-rotation:225deg}:scope.r270::after{--stitch-rotation:270deg}:scope.r315::after{--stitch-rotation:315deg}}}