<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">

is-land--eleventy-editor{cursor:pointer}is-land--eleventy-editor pre{max-height:45vh;overflow:hidden}is-land--eleventy-editor pre:before{content:"";pointer-events:none;position:absolute;inset:0;background-color:var(--edit-curtain)}:is(is-land--eleventy-editor,eleventy-editor:not(:defined)){--edit-bg:rgba(0,0,0,.4);--edit-color:#fff;display:block;position:relative}:is(is-land--eleventy-editor,eleventy-editor:not(:defined)):hover{--edit-curtain:rgba(255,255,255,.1);--edit-bg:rgb(255, 216, 72);--edit-color:#000}:is(is-land--eleventy-editor,eleventy-editor:not(:defined)):hover pre{outline:4px solid var(--edit-bg)}:is(is-land--eleventy-editor,eleventy-editor:not(:defined)) pre{position:relative;margin:1em -1rem}:is(is-land--eleventy-editor,eleventy-editor:not(:defined)):after{pointer-events:none;position:absolute;content:"Run";top:0;right:-1rem;font-weight:600;line-height:1;padding:.75rem;background-color:var(--edit-bg);color:var(--edit-color);border-top-right-radius:.3em;border-bottom-left-radius:.3em}:is(is-land--eleventy-editor,eleventy-editor:not(:defined))[label]:after{content:attr(label)}eleventy-editor:defined{margin:1em -1rem}@media (max-width:54.9375em){eleventy-editor{--border-radius:0}}eleventy-editor:not(:defined):after,eleventy-editor:not(:defined)[label]:after{content:"Run requires JavaScript"}.avatar,.icon,blockquote img{height:1.3em;width:1.3em;display:inline-block;vertical-align:text-top;margin-left:2px;margin-right:6px}main .icon[height]{height:1.3em;width:1.3em;object-fit:cover}.avatar-large{height:1.5em;width:1.5em}.avatar,blockquote img{border-radius:50%}.avatar-indieweb{border-radius:.25em}.avatar,.icon{vertical-align:middle}ul:not(.list-bare):not(.inlinelist)&gt;li&gt;a&gt;.avatar{width:auto;height:1.111111111111em;vertical-align:top;margin-left:4px;margin-right:4px}ul:not(.list-bare):not(.inlinelist)&gt;li&gt;a&gt;.avatar-large{width:1.444444444444em;height:1.444444444444em;object-fit:contain;margin-right:.3888888888889em}blockquote .bio-source{white-space:nowrap}h1 .avatar{height:.7em;width:.7em;vertical-align:baseline}.minilink{display:inline-block;padding:.125em .375em;text-transform:uppercase;font-size:.875rem;text-decoration:none;background-color:#ddd;border-radius:.1875em;font-weight:500;margin:0 .4285714285714em .07142857142857em 0;line-height:1.285714285714;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){.minilink.minilink{background-color:#222;color:#fff}}table .minilink{margin-top:6px}.minilink[href]{box-shadow:0 1px 1px 0 rgba(0,0,0,.5)}.minilink[href]:focus,.minilink[href]:hover{background-color:#eee}@media (prefers-color-scheme:dark){.minilink[href]:focus,.minilink[href]:hover{background-color:#444}}pre+.minilink{color:#fff;border-radius:0 0 .2857142857143em .2857142857143em;float:right;background-color:#444;color:#fff}pre[class*=language-]+.minilink{position:relative;top:-.7142857142857em}p.minilink{float:right;margin-left:2em;margin-bottom:2em}h1 .minilink,h2 .minilink,h3 .minilink,h4 .minilink{font-size:.9375rem;vertical-align:middle;margin-left:1em}h3 .minilink,h4 .minilink{font-size:.8125rem}.minilink+pre[class*=language-]{clear:both}.minilink-addedin{text-transform:none;box-shadow:0 0 0 1px rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){.minilink-addedin{box-shadow:0 0 0 1px rgba(255,255,255,.3)}}.minilink-addedin:not(:first-child){margin-left:.5em}.minilink-addedin.minilink-inline{margin:0 4px;background-color:#fff}@media (prefers-color-scheme:dark){.minilink-addedin.minilink-inline{background-color:#000}}.minilink-lower{text-transform:none;background-color:transparent}.minilink-lower[href]{box-shadow:0 0 0 1px rgba(0,0,0,.5)}.minilink-lower[href]:focus,.minilink-lower[href]:hover{background-color:#eee}.minilink&gt;.minilink{margin:-.125em .375em -.125em -.375em;box-shadow:none;border-top-right-radius:0;border-bottom-right-radius:0}.minilink-buildcost{--internal-shadow-hsl:0deg 0% 75%;font-weight:700;text-transform:uppercase;box-shadow:0 .3px .5px hsl(var(--internal-shadow-hsl) / 0),.1px 4.3px 6.5px hsl(var(--internal-shadow-hsl) / .14)}.minilink-buildcost code:before{content:"🧰";margin-right:.25em}a[href]:focus .minilink-buildcost,a[href]:hover .minilink-buildcost{outline:2px solid blue}.minilink-github.minilink-github{background-color:#f6f8fa;color:#222}.minilink-github&gt;:first-child{color:#eac54f}.elv-header-default .minilink-github{background-color:#222;color:#fff}.elv-header-default .minilink[href]:focus,.elv-header-default .minilink[href]:hover{background-color:#444}@media (prefers-color-scheme:dark){.minilink-github.minilink-github{background-color:#222;color:#fff}}.facepile{margin-top:2em;margin-bottom:3em;line-height:2;padding:0 0 0 25px}.facepile&gt;a{display:inline-block;margin-left:-25px}.supporters-silver .facepile{text-align:center;text-wrap:balance}.supporters-silver .facepile&gt;a~a{margin-left:0}.supporters-silver .facepile .avatar{border-radius:.25em;border-width:0;box-shadow:0 3px 6px 0 rgba(0,0,0,.08)}.facepile&gt;a:focus,.facepile&gt;a:hover{opacity:1;position:relative;z-index:1}.facepile .avatar{width:24px;height:24px;width:calc(24px + 4vw);height:calc(24px + 4vw);max-width:50px;max-height:50px;margin-bottom:6px;color:#fff;border:2px solid;transition:border .3s;object-fit:contain}@media (prefers-color-scheme:dark){.facepile .avatar{color:#222}}.facepile-supporters .avatar{width:calc(24px + 2vw);height:calc(24px + 2vw)}.facepile&gt;a:after{content:"";position:absolute;border-radius:50%;z-index:-1;pointer-events:none;opacity:0}.facepile&gt;a:focus:after,.facepile&gt;a:hover:after{left:-24px;right:-20px;top:-24px;bottom:-20px;opacity:.6;background-color:currentColor;background-image:linear-gradient(238deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#ff0080);background-size:1200% 1200%;background-position:0 80%}.facepile&gt;a:nth-child(11n+1):focus:after,.facepile&gt;a:nth-child(11n+1):hover:after{background-position:0 80%}.facepile&gt;a:nth-child(11n+2):focus:after,.facepile&gt;a:nth-child(11n+2):hover:after{background-position:9% 80%}.facepile&gt;a:nth-child(11n+3):focus:after,.facepile&gt;a:nth-child(11n+3):hover:after{background-position:18% 80%}.facepile&gt;a:nth-child(11n+4):focus:after,.facepile&gt;a:nth-child(11n+4):hover:after{background-position:27% 80%}.facepile&gt;a:nth-child(11n+5):focus:after,.facepile&gt;a:nth-child(11n+5):hover:after{background-position:36% 80%}.facepile&gt;a:nth-child(11n+6):focus:after,.facepile&gt;a:nth-child(11n+6):hover:after{background-position:45% 80%}.facepile&gt;a:nth-child(11n+7):focus:after,.facepile&gt;a:nth-child(11n+7):hover:after{background-position:54% 80%}.facepile&gt;a:nth-child(11n+8):focus:after,.facepile&gt;a:nth-child(11n+8):hover:after{background-position:63% 80%}.facepile&gt;a:nth-child(11n+9):focus:after,.facepile&gt;a:nth-child(11n+9):hover:after{background-position:72% 80%}.facepile&gt;a:nth-child(11n+10):focus:after,.facepile&gt;a:nth-child(11n+10):hover:after{background-position:81% 80%}.facepile&gt;a:nth-child(11n+11):focus:after,.facepile&gt;a:nth-child(11n+11):hover:after{background-position:90% 80%}.facepile-fake .avatar{background-color:#eee}.facepile-supporters [data-supporters-tier=gold-sponsor],.facepile-supporters [data-supporters-tier=silver-sponsor]{display:none}[show-gold-sponsors] .facepile-supporters [data-supporters-tier=gold-sponsor],[show-silver-sponsors] .facepile-supporters [data-supporters-tier=silver-sponsor]{display:inline-block}.facepile&gt;a:has(img.avatar:not([src])){display:none}@keyframes rainbow{0%{background-position:0 50%}100%{background-position:100% 50%}}.buzzword-list,.inlinelist{padding:0}.inlinelist:first-child:last-child{margin:0}.buzzword,.buzzword-list li,.inlinelist .inlinelist-item{display:inline;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:116%;white-space:normal;padding:.2em .5em;margin:4px 4px 4px 0;transition:.15s linear outline}.inlinelist .inlinelist-item:is(:has([aria-selected=true]),.active){background-color:#222;color:#fff;font-weight:inherit}.inlinelist .inlinelist-item:is(:has([aria-selected=true]),.active) :is(:link,:visited){color:#fff}.inlinelist .inlinelist-item code{background-color:transparent;font-size:80%;margin-left:6px;padding-left:6px;display:inline-block;position:relative}@media (max-width:26.8125em){.inlinelist .inlinelist-item{overflow:hidden}.inlinelist .inlinelist-item code{float:right;line-height:1.75}}@media (min-width:26.875em){.inlinelist .inlinelist-item code{float:none}.inlinelist .inlinelist-item code:before{content:" ";border-left:1px solid rgba(255,255,255,.8);position:absolute;left:-2px;top:-2px;bottom:2px}@media (prefers-color-scheme:dark){.inlinelist .inlinelist-item code:before{border-left-color:rgba(0,0,0,.8)}}}a.buzzword{text-decoration:underline;font-size:inherit}.buzzword-list a,.inlinelist a{text-decoration:none}.inlinelist .inlinelist-item{font-size:100%;line-height:2}@supports not (-webkit-box-decoration-break:clone){.buzzword,.buzzword-list li,.inlinelist .inlinelist-item{display:inline-block}}.buzzword,.buzzword-list li{background-color:#f7f7f7}@media (prefers-color-scheme:dark){.buzzword,.buzzword-list li{background-color:#080808}}.inlinelist .inlinelist-item{background-color:#e9e9e9}@media (prefers-color-scheme:dark){.inlinelist .inlinelist-item{background-color:#000}.inlinelist .inlinelist-item a{color:#fff}.inlinelist .inlinelist-item code{color:inherit}}.buzzword-list li:focus,.buzzword-list li:hover,.buzzword:focus,.buzzword:hover,.inlinelist .inlinelist-item:focus,.inlinelist .inlinelist-item:hover,.rainbow-active:focus,.rainbow-active:hover{position:relative;background-image:linear-gradient(238deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#ff0080);background-size:1200% 1200%;background-position:2% 80%;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.9);animation:rainbow 4s ease-out alternate infinite}.inlinelist .inlinelist-item.inert,.inlinelist .inlinelist-item.inert:focus,.inlinelist .inlinelist-item.inert:hover{background-color:transparent;background-image:none;color:inherit;text-shadow:none}.rainbow-active-noanim{animation:none!important}.buzzword-list li:focus a,.buzzword-list li:hover a,.inlinelist .inlinelist-item:focus a,.inlinelist .inlinelist-item:hover a,a.buzzword:focus,a.buzzword:hover,a.rainbow-active:focus,a.rainbow-active:hover{color:#fff;text-decoration:none}@media (prefers-reduced-motion:reduce){.buzzword-list li:focus,.buzzword-list li:hover,.buzzword:focus,.buzzword:hover,.inlinelist .inlinelist-item:focus,.inlinelist .inlinelist-item:hover,.rainbow-active:focus,.rainbow-active:hover{animation:none}}.buzzword-list li:focus:after,.buzzword-list li:hover:after,.buzzword:focus:after,.buzzword:hover:after{font-family:system-ui,sans-serif;content:"Buzzword alert!!!";position:absolute;left:0;top:0;max-width:8em;color:red;font-weight:700;text-transform:uppercase;transform:rotate(-10deg) translate(-25%,-125%);text-shadow:1px 1px 5px rgba(0,0,0,.6);line-height:1.2;pointer-events:none}main h2 .buzzword,main h3 .buzzword,main p .buzzword{font-size:inherit;margin:0;line-height:1.444444444444}main h2 a.buzzword,main h3 a.buzzword,main p a.buzzword{text-decoration:underline}@media (max-width:26.8125em){.inlinelist .inlinelist-item{display:block;width:auto;padding:0;line-height:1.4}.inlinelist .inlinelist-item&gt;a{display:block;padding:.2em .5em}}@media (min-width:26.875em){.inlinelist .inlinelist-item&gt;a{display:inline-block;white-space:nowrap}}.numberflag{display:inline-flex;align-items:center;justify-content:center;background-color:#dff7ff;border-radius:50%;width:1.75em;height:1.75em;font-weight:600}@media (prefers-color-scheme:dark){.numberflag{background-color:#00bcd4;color:#222}}h1 .numberflag,h2 .numberflag,h3 .numberflag,h4 .numberflag,h5 .numberflag{width:1.4em;height:1.4em}h2 .numberflag{position:relative;margin-right:.25em}h2 .numberflag:after{content:" ";position:absolute;bottom:-1px;left:0;height:1px;background-color:#fff;width:calc(100% + .4em)}@media (prefers-color-scheme:dark){h2 .numberflag:after{background-color:#222}}.inlinelist-no-nest ol,.inlinelist-no-nest ul{display:none}.inlinelist-sm{font-size:.6666666666667em}.inlinelist-sm .inlinelist-item{font-family:system-ui,sans-serif;font-weight:600}.subhed{display:block;font-family:system-ui,sans-serif;font-size:.9375em;line-height:1;font-weight:400;text-transform:uppercase;letter-spacing:1px;margin:0;color:#666;text-align:center;border:none}@media (prefers-color-scheme:dark){.subhed{color:#adadad}}.codetitle{clear:right;float:right;padding:.25em 0 .25em .5em;border-radius:.25em .25em 0 0;font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:.75em}@media (max-width:31.1875em){.codetitle-right-md{float:none;clear:both;padding-inline-start:0}.codetitle-right-md+is-land&gt;seven-minute-tabs{margin-block-start:.5em}}.codetitle-left{float:left;clear:left;padding-left:0;padding-right:.5em}.codetitle b{text-transform:uppercase;font-size:.6875rem;margin-right:.5em;color:#666;font-weight:100}@media (prefers-color-scheme:dark){.codetitle b{color:#aaa}}.codetitle+pre{clear:both}.codetitle+.minilink+pre,.codetitle+pre{margin-top:0}.codetitle+div:has(&gt; is-land){clear:both}.codetitle+div:has(&gt; is-land) :is(eleventy-editor,pre){margin-top:0}.codetitle+.minilink{float:right;margin:0 2em 0 0;padding:.25em 0;background-color:transparent;border-width:0;box-shadow:none;font-size:.75em;font-weight:100}.codetitle+.minilink:before{content:"💫 "}.codetitle-left+.minilink{float:left;margin-left:1em;margin-right:0;position:relative;bottom:-2px}.codetitle-left+.codetitle-left{clear:none;margin-left:2em}a[href^="https://"]:not([href^="https://11ty.dev"],[href^="https://www.11ty.dev"],.minilink,.elv-externalexempt){text-decoration-color:var(--external-link-underline)}a[href^="https://"]:not([href^="https://11ty.dev"],[href^="https://www.11ty.dev"],.minilink,.elv-externalexempt):after{content:" ↗";font-family:system-ui,sans-serif;font-style:normal;font-weight:900;color:var(--external-link-underline);padding-left:0;font-size:.75em;line-height:.75;letter-spacing:-.08333333333333em}a[href^="https://"]:not([href^="https://11ty.dev"],[href^="https://www.11ty.dev"],.minilink,.elv-externalexempt):has(.fa11ty-icon):after{content:""}a[href^="https://"]:not([href^="https://11ty.dev"],[href^="https://www.11ty.dev"],.minilink,.elv-externalexempt):hover:after{color:inherit}a:is([href^="https://www.youtube.com"],[href^="https://youtube.com"]):not(.elv-externalexempt):before,a[href^="https://github.com"]:not(.elv-externalexempt):before{content:"";display:inline-block;vertical-align:text-bottom;width:1em;height:1em;margin:0 .2em;background-size:contain;background-repeat:no-repeat}a:is([href^="https://www.youtube.com"],[href^="https://youtube.com"]):not(.elv-externalexempt):after,a[href^="https://github.com"]:not(.elv-externalexempt):after{display:none}a:is([href^="https://www.youtube.com"],[href^="https://youtube.com"]):before{background-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20fill%3D%22%23f03%22%20d%3D%22M549.7%20124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8%2064%20288%2064%20288%2064S117.2%2064%2074.6%2075.5c-23.5%206.3-42%2024.9-48.3%2048.6-11.4%2042.9-11.4%20132.3-11.4%20132.3s0%2089.4%2011.4%20132.3c6.3%2023.7%2024.8%2041.5%2048.3%2047.8C117.2%20448%20288%20448%20288%20448s170.8%200%20213.4-11.5c23.5-6.3%2042-24.2%2048.3-47.8%2011.4-42.9%2011.4-132.3%2011.4-132.3s0-89.4-11.4-132.3zm-317.5%20213.5V175.2l142.7%2081.2-142.7%2081.2z%22%2F%3E%3C%2Fsvg%3E")}a[href^="https://github.com"]:before{border-radius:7px;box-shadow:0 0 0 2px #fff;background-color:#fff;background-image:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20496%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M165.9%20397.4c0%202-2.3%203.6-5.2%203.6-3.3%20.3-5.6-1.3-5.6-3.6%200-2%202.3-3.6%205.2-3.6%203-.3%205.6%201.3%205.6%203.6zm-31.1-4.5c-.7%202%201.3%204.3%204.3%204.9%202.6%201%205.6%200%206.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5%20.3-6.2%202.3zm44.2-1.7c-2.9%20.7-4.9%202.6-4.6%204.9%20.3%202%202.9%203.3%205.9%202.6%202.9-.7%204.9-2.6%204.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8%208C106.1%208%200%20113.3%200%20252c0%20110.9%2069.8%20205.8%20169.5%20239.2%2012.8%202.3%2017.3-5.6%2017.3-12.1%200-6.2-.3-40.4-.3-61.4%200%200-70%2015-84.7-29.8%200%200-11.4-29.1-27.8-36.6%200%200-22.9-15.7%201.6-15.4%200%200%2024.9%202%2038.6%2025.8%2021.9%2038.6%2058.6%2027.5%2072.9%2020.9%202.3-16%208.8-27.1%2016-33.7-55.9-6.2-112.3-14.3-112.3-110.5%200-27.5%207.6-41.3%2023.6-58.9-2.6-6.5-11.1-33.3%202.6-67.9%2020.9-6.5%2069%2027%2069%2027%2020-5.6%2041.5-8.5%2062.8-8.5s42.8%202.9%2062.8%208.5c0%200%2048.1-33.6%2069-27%2013.7%2034.7%205.2%2061.4%202.6%2067.9%2016%2017.7%2025.8%2031.5%2025.8%2058.9%200%2096.5-58.9%20104.2-114.8%20110.5%209.2%207.9%2017%2022.9%2017%2046.4%200%2033.7-.3%2075.4-.3%2083.6%200%206.5%204.6%2014.4%2017.3%2012.1C428.2%20457.8%20496%20362.9%20496%20252%20496%20113.3%20383.5%208%20244.8%208zM97.2%20352.9c-1.3%201-1%203.3%20.7%205.2%201.6%201.6%203.9%202.3%205.2%201%201.3-1%201-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7%201.3%20.3%202.9%202.3%203.9%201.6%201%203.6%20.7%204.3-.7%20.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3%20.7zm32.4%2035.6c-1.6%201.3-1%204.3%201.3%206.2%202.3%202.3%205.2%202.6%206.5%201%201.3-1.3%20.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6%201-1.6%203.6%200%205.9%201.6%202.3%204.3%203.3%205.6%202.3%201.6-1.3%201.6-3.9%200-6.2-1.4-2.3-4-3.3-5.6-2z%22%2F%3E%3C%2Fsvg%3E")}a[href^="https://github.com"].elv-skipicon:before{display:none}.facepile a[href^="https://github.com"]:before,.sites-site-vert a:is([href^="https://www.youtube.com"],[href^="https://youtube.com"]):before,.sites-site-vert a[href^="https://github.com"]:before,a[href^="https://youtube.com"].lty-playbtn:before{display:none}a:is([href^="https://www.youtube.com"],[href^="https://youtube.com"]):not(.elv-externalexempt) .avatar,a[href^="https://github.com"]:not(.elv-externalexempt) .avatar{display:none}input[type=radio]+label,label.radio-align{vertical-align:middle}input[type=checkbox]{width:1.4em;height:1.4em}.btn-form,.btn-primary{cursor:pointer;border:2px solid;font-size:1em;text-align:center;font-weight:700;text-transform:uppercase;text-decoration:none;color:inherit;background-color:inherit}@media (prefers-color-scheme:dark){.btn-form{background-color:#000;border-color:transparent}}.btn-form{border-radius:1em;padding-left:.75em;padding-right:.75em;box-shadow:0 4px 3px -3px #000}.btn-primary{display:block;border-radius:1.5em;margin:0;padding:.5em 1em .4em;box-shadow:0 8px 6px -6px #000}.btn-form:focus,.btn-form:hover,.btn-primary:hover{border-color:transparent;background-color:#222;color:#fff}@media (prefers-color-scheme:dark){.btn-form:focus,.btn-form:hover{background-color:#fff;color:#222}}.btn-primary:hover{border-color:rgba(255,255,255,.3)}.btn-primary span{text-transform:none}.btn-c{margin-left:auto;margin-right:auto}@media (min-width:20em){.btn-primary{font-size:6vw}.btn-primary-sm,.btn-primary-standard{font-size:1.4em}}@media (min-width:28.125em){.btn-primary-sm{font-size:5.6vw}.btn-primary-standard{font-size:4vw}}@media (min-width:53.125em){.btn-primary-sm{font-size:2.666666666667em}.btn-primary-standard{font-size:1.666666666667em}}@media (min-width:87.5em){.btn-primary{font-size:5.25em}}.btn-primary-nogrow{font-size:1.4em}table{border-collapse:collapse;margin-bottom:2em}table td,table th{text-align:left;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:.4em;font-size:.8125em;vertical-align:top}table thead th{font-weight:300;text-transform:uppercase;letter-spacing:.5px;font-size:.75em;border-top:none}table thead th code{text-transform:none}table td:first-child,table th:first-child{padding-left:0}table th{border-color:var(--border-color)}table thead th{color:#222}table thead th a[href]{color:inherit}table .numeric{white-space:nowrap;text-align:right;font-family:Roboto Mono,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.numeric-note:before{content:"*";color:red}table .numeric-up:after{content:"↑";color:green}.numeric-note:before,table .numeric-up:after{margin:0 .25em;font-weight:700;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){table td{border-color:#333}table thead th{color:#ddd}}h2+table{margin-top:-.625em}@media (min-width:37.5em){table td,table th{padding:.4em .8em;font-size:1em}table thead th{font-size:.875em}}details.elv-popover{position:relative}details.elv-popover summary+*{position:absolute;z-index:999;background-color:var(--background-color);color:var(--color);border:1px solid #000;padding:.5rem;box-shadow:0 0 0 .3rem var(--shadow-color)}details.elv-popover *{white-space:nowrap}.elv-popover a{display:block;text-decoration:none;padding-inline:.5rem;margin-inline:-.5rem}.elv-popover a:focus,.elv-popover a:hover{background-color:#222;color:#fff}.elv-popover a:focus code,.elv-popover a:hover code{background-color:#fff;color:#222}@media (prefers-color-scheme:dark){.elv-popover a:focus,.elv-popover a:hover{background-color:#fff;color:#222}.elv-popover a:focus code,.elv-popover a:hover code{background-color:#222;color:#fff}}.truncate-overflow{--truncate-lh:1.5em;--truncate-lines:3;line-height:var(--truncate-lh);max-height:calc(var(--truncate-lh) * var(--truncate-lines));overflow:hidden}.quicktipstoc{font-size:.8888888888889em;background-color:#eee;list-style:none;padding:.5em 1em}@media (prefers-color-scheme:dark){.quicktipstoc{background-color:#333}}.quicktipstoc .active{font-weight:600}.quicktipstoc h3{margin-top:0}@media (min-width:37.5em){.quicktipstoc{margin:3% 0;float:left;border-radius:.25em;font-size:.8125em}}.sites--reverse a{display:flex;flex-direction:column-reverse}.sites-lo-footer{margin-bottom:2em}.sites-perf-si{display:none}.sites-lo&gt;.site-top .sites-perf-si{display:block}.sites-screenshot-container{border-radius:.4em;box-shadow:0 0 0 var(--card-shadow-size,3px) var(--card-shadow-color,var(--shadow-color))}.sites-screenshot{display:block;width:100%;height:auto;border-radius:.4em}.sites-screenshot-youtube-sq{aspect-ratio:1/1;object-fit:contain;background-color:#222}.sites-screenshot-container--icon{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1}.sites-screenshot-container--icon .avatar.sites-icon-auto{width:3.333333333333em;height:3.333333333333em}.sites-site-official .sites-screenshot{border-color:#666}@media (min-width:30em){.site-top{display:flex}.site-top&gt;.sites-data-container{flex-basis:70%}.site-top&gt;.sites-screenshot-container{flex-basis:30%;min-width:9em;margin-top:0;margin-left:1em}}.sites-perf-rank-neg,.sites-perf-rank-new,.sites-perf-rank-pos,.sites-perf-rank-same{margin-left:.5em;font-style:normal}.sites-perf-rank-same{color:#d23ed2;font-weight:900}.sites-perf-rank-same:before{content:"↔";line-height:1}.sites-perf-rank-new{font-style:italic;color:#e60074}.sites-perf-rank-pos{color:green}.sites-perf-rank-pos:before{content:"⬆";line-height:1}.sites-perf-rank-neg{color:#8b0000}.sites-perf-rank-neg:before{content:"⬇";line-height:1}.sites-vert{margin-top:2em;margin-bottom:2em}.elv-callout .sites-vert{margin-top:1em;margin-bottom:0}.sites-vert .sites-screenshot-container{margin-top:4px;margin-bottom:4px}.sites-vert .avatar{margin-right:3px;margin-left:0;width:1em;height:1em;object-fit:contain}.sites-vert--wc .avatar{margin-right:0}.sites-vert&gt;.lo-grid{--fl-gap-h:1rem;--fl-gap-v:1rem;--lo-c-minwidth:8.5em;--lo-grid-repeat:auto-fill}.sites-vert--lg&gt;.lo-grid,.sites-vert--md&gt;.lo-grid{--lo-c-minwidth:7em}@media (min-width:28.125em){.sites-vert--md&gt;.lo-grid{--lo-c-minwidth:8.5em}.sites-vert--lg&gt;.lo-grid{--lo-c-minwidth:10em}}.sites-site-name{display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8888888888889em}.sites-site-name--nowrap{display:block;font-size:.7777777777778em}.sites-site-description{display:none;margin:.6428571428571em 0;font-size:.7777777777778em}.sites-vert--lg .sites-site-description,.sites-vert--md .sites-site-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;width:100%}.sites-site-vert .sites-screenshot-container{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;position:relative}.sites-site-vert .sites-screenshot-container:after{content:"";position:absolute;inset:0;opacity:.3;background:var(--card-background);z-index:-1;border-radius:.4em}.sites-site-vert a:is(:focus,:hover){--card-shadow-color:rgba(234, 0, 255, 0.747);--card-shadow-size:0.3333333333333em}.sites-site-vert a{--card-shadow-color:var(--card-primary)}.sites-site-vert a:is(:focus,:hover) .sites-screenshot-container:after,.sites-site-vert a:is(:focus,:hover) img{opacity:.75}.sites-site-vert&gt;a{text-decoration:none}.sites-site-vert speedlify-score{justify-content:center}.sites-site-vert{position:relative}.sites-site-vert .sites-site-lighthouse{font-size:.6666666666667em;transform:translateY(-100%);position:absolute;right:1px;display:flex;flex-direction:column;justify-content:center;border-radius:1.4em 0 .4em 0;background:rgba(255,255,255,.9);font-weight:600;padding:4px}.sites-site-vert .sites-site-lighthouse .speedlify-score{background-color:#fff}@media (prefers-color-scheme:dark){.sites-site-vert .sites-site-lighthouse{background:rgba(0,0,0,.85)}}@supports (aspect-ratio:1 / 1){.img-gallery{--shadow-color:rgba(234, 0, 255, 0.747);display:flex;flex-direction:column;justify-content:center;aspect-ratio:1/2;border-radius:.4em;border:2px solid #ccc;margin-bottom:.3em;padding:.5em}.img-gallery .sites-screenshot{border:none}.sites-site-vert a:hover .img-gallery{box-shadow:0 0 0 4px var(--shadow-color)}.sites-site-vert a:hover .img-gallery .sites-screenshot{box-shadow:none}}.sites--center{text-align:center}.sites-tag{--tag-text:#000;--tag-bg:#dff7ff;font-size:.6666666666667em;line-height:1.5;display:inline-block;padding:0 .75em;border-radius:.75em;background:var(--tag-bg);color:var(--tag-text)}@media (prefers-color-scheme:dark){.sites-tag{--tag-text:#dff7ff;--tag-bg:#000}}.sites-featured{grid-column:1/3}.sites-featured .sites-screenshot{aspect-ratio:10/4.81;object-fit:cover;object-position:top}.sites-featured .sites-site-name{font-weight:700}.sites-vert:not(:has(.sites-featured)) .sites-site-name{font-weight:700}.sites-vert:has(.sites-featured) .sites-site-vert:not(.sites-featured) .avatar-indieweb{display:none}.sites-screenshot-container{position:relative}.sites-screenshot-container-icons{position:absolute;inset:0;display:flex;gap:.25em;align-items:flex-end;justify-content:flex-start;padding:.25em}.sites-screenshot-container-icons img{margin:0;max-width:1em}.opengraph-card{display:inline-flex;flex-direction:column;border:2px solid #000;border-radius:.5em;overflow:hidden;text-align:center;font-size:1.25em;font-weight:700;box-shadow:0 0 0 3px var(--shadow-color,transparent);opacity:.8}a[href].opengraph-card:focus,a[href].opengraph-card:hover{--shadow-color:rgba(234, 0, 255, 0.747);opacity:1}.opengraph-card span{display:block;margin:.5em}.opengraph-card img{display:block}.business-network-primary.business-network-primary{--fl-stackpoint:37.5em;--fl-gap-v:1em}.business-network-sites{padding-top:1em;padding-bottom:3em}.business-network-sites:not(:last-child){margin-bottom:3em;border-bottom:1px solid #666}.business-network-name{font-size:1.5em}.business-network-available{padding-left:3.230769230769em;font-size:.7222222222222em}.business-network-hire{text-align:center}.business-network-hire a[href]{padding:.5rem 2em .4rem}.elv-sg-component{background-color:#f9f9f9;border-top:1px dotted #ddd;border-bottom:1px dotted #ddd;margin:2rem 0}@media (prefers-color-scheme:dark){.elv-sg-component{background-color:#222}}.elv-sg-component:after,.elv-sg-component:before{content:" ";display:table}.elv-sg-component:after{clear:both}.elv-layout .elv-sg-component-full{margin-left:-1rem;margin-right:-1rem}lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer;max-width:720px}lite-youtube::before{content:attr(data-title);display:block;position:absolute;top:0;background-image:linear-gradient(180deg,rgb(0 0 0 / 67%) 0,rgb(0 0 0 / 54%) 14%,rgb(0 0 0 / 15%) 54%,rgb(0 0 0 / 5%) 72%,rgb(0 0 0 / 0%) 94%);height:99px;width:100%;font-family:"YouTube Noto",Roboto,Arial,Helvetica,sans-serif;color:hsl(0deg 0% 93.33%);text-shadow:0 0 2px rgba(0,0,0,.5);font-size:18px;padding:25px 20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}lite-youtube:hover::before{color:#fff}lite-youtube::after{content:"";display:block;padding-bottom:calc(100% / (16 / 9))}lite-youtube&gt;iframe{width:100%;height:100%;position:absolute;top:0;left:0;border:0}lite-youtube&gt;.lty-playbtn{display:block;width:100%;height:100%;background:no-repeat center/68px 48px;background-image:url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 48"&gt;&lt;path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/&gt;&lt;path d="M45 24 27 14v20" fill="white"/&gt;&lt;/svg&gt;');position:absolute;cursor:pointer;z-index:1;filter:grayscale(100%);transition:filter .1s cubic-bezier(0, 0, .2, 1);border:0}lite-youtube .lty-playbtn:focus,lite-youtube:hover&gt;.lty-playbtn{filter:none}lite-youtube.lyt-activated{cursor:unset}lite-youtube.lyt-activated::before,lite-youtube.lyt-activated&gt;.lty-playbtn{opacity:0;pointer-events:none}.lyt-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}is-land--lite-youtube,lite-youtube{max-width:100%;border-radius:.5em;overflow:hidden;background-size:contain;background-repeat:no-repeat;background-position:0 0}lite-youtube:defined&gt;.lty-playbtn{pointer-events:none}.youtube-related{display:flex;flex-wrap:wrap;gap:1em;margin:2em 0}.youtube-related&gt;*{flex-grow:1;flex-basis:12em}.youtube-related&gt;:first-child:last-child{max-width:22em}.elv-callout .youtube-related{margin:.5em 0}.elv-callout .youtube-related&gt;:first-child:last-child{max-width:14em}is-land--lite-youtube+a[href],lite-youtube+a[href]{display:block;text-align:center;font-size:.875em;margin-top:.2857142857143em}is-land.fluid,is-land.fluid is-land--lite-youtube,is-land.fluid lite-youtube{display:block;aspect-ratio:16/9}</pre></body></html>