@charset "UTF-8";@layer init,props,app;@layer init{*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}img{display:block;width:100%;height:auto}}@layer props{:root{--app-container-max-width: 960px;--app-padding-inline: 1rem;--app-font-family-primary: "JetBrains Mono Variable", monospace;--app-color-text-primary: #fff;--app-color-text-primary-inverse: #000;--app-color-text-secondary: #aaa;--app-clip-path-squircle: polygon(100% 50%, 100% 56.6%, 100% 59.3%, 100% 61.4%, 99.9% 63.2%, 99.9% 64.8%, 99.9% 66.2%, 99.8% 67.5%, 99.8% 68.7%, 99.7% 69.8%, 99.6% 70.8%, 99.5% 71.8%, 99.5% 72.8%, 99.4% 73.7%, 99.3% 74.6%, 99.1% 75.4%, 99% 76.3%, 98.9% 77%, 98.8% 77.8%, 98.6% 78.5%, 98.5% 79.2%, 98.3% 79.9%, 98.1% 80.6%, 98% 81.3%, 97.8% 81.9%, 97.6% 82.5%, 97.4% 83.1%, 97.2% 83.7%, 97% 84.3%, 96.8% 84.8%, 96.5% 85.4%, 96.3% 85.9%, 96% 86.4%, 95.8% 86.9%, 95.5% 87.4%, 95.3% 87.9%, 95% 88.3%, 94.7% 88.8%, 94.4% 89.2%, 94.1% 89.7%, 93.8% 90.1%, 93.4% 90.5%, 93.1% 90.9%, 92.8% 91.3%, 92.4% 91.7%, 92% 92%, 91.7% 92.4%, 91.3% 92.8%, 90.9% 93.1%, 90.5% 93.4%, 90.1% 93.8%, 89.7% 94.1%, 89.2% 94.4%, 88.8% 94.7%, 88.3% 95%, 87.9% 95.3%, 87.4% 95.5%, 86.9% 95.8%, 86.4% 96%, 85.9% 96.3%, 85.4% 96.5%, 84.8% 96.8%, 84.3% 97%, 83.7% 97.2%, 83.1% 97.4%, 82.5% 97.6%, 81.9% 97.8%, 81.3% 98%, 80.6% 98.1%, 79.9% 98.3%, 79.2% 98.5%, 78.5% 98.6%, 77.8% 98.8%, 77% 98.9%, 76.3% 99%, 75.4% 99.1%, 74.6% 99.3%, 73.7% 99.4%, 72.8% 99.5%, 71.8% 99.5%, 70.8% 99.6%, 69.8% 99.7%, 68.7% 99.8%, 67.5% 99.8%, 66.2% 99.9%, 64.8% 99.9%, 63.2% 99.9%, 61.4% 100%, 59.3% 100%, 56.6% 100%, 50% 100%, 43.4% 100%, 40.7% 100%, 38.6% 100%, 36.8% 99.9%, 35.2% 99.9%, 33.8% 99.9%, 32.5% 99.8%, 31.3% 99.8%, 30.2% 99.7%, 29.2% 99.6%, 28.2% 99.5%, 27.2% 99.5%, 26.3% 99.4%, 25.4% 99.3%, 24.6% 99.1%, 23.7% 99%, 23% 98.9%, 22.2% 98.8%, 21.5% 98.6%, 20.8% 98.5%, 20.1% 98.3%, 19.4% 98.1%, 18.7% 98%, 18.1% 97.8%, 17.5% 97.6%, 16.9% 97.4%, 16.3% 97.2%, 15.7% 97%, 15.2% 96.8%, 14.6% 96.5%, 14.1% 96.3%, 13.6% 96%, 13.1% 95.8%, 12.6% 95.5%, 12.1% 95.3%, 11.7% 95%, 11.2% 94.7%, 10.8% 94.4%, 10.3% 94.1%, 9.9% 93.8%, 9.5% 93.4%, 9.1% 93.1%, 8.7% 92.8%, 8.3% 92.4%, 8% 92%, 7.6% 91.7%, 7.2% 91.3%, 6.9% 90.9%, 6.6% 90.5%, 6.2% 90.1%, 5.9% 89.7%, 5.6% 89.2%, 5.3% 88.8%, 5% 88.3%, 4.7% 87.9%, 4.5% 87.4%, 4.2% 86.9%, 4% 86.4%, 3.7% 85.9%, 3.5% 85.4%, 3.2% 84.8%, 3% 84.3%, 2.8% 83.7%, 2.6% 83.1%, 2.4% 82.5%, 2.2% 81.9%, 2% 81.3%, 1.9% 80.6%, 1.7% 79.9%, 1.5% 79.2%, 1.4% 78.5%, 1.2% 77.8%, 1.1% 77%, 1% 76.3%, .9% 75.4%, .7% 74.6%, .6% 73.7%, .5% 72.8%, .5% 71.8%, .4% 70.8%, .3% 69.8%, .2% 68.7%, .2% 67.5%, .1% 66.2%, .1% 64.8%, .1% 63.2%, 0% 61.4%, 0% 59.3%, 0% 56.6%, 0% 50%, 0% 43.4%, 0% 40.7%, 0% 38.6%, .1% 36.8%, .1% 35.2%, .1% 33.8%, .2% 32.5%, .2% 31.3%, .3% 30.2%, .4% 29.2%, .5% 28.2%, .5% 27.2%, .6% 26.3%, .7% 25.4%, .9% 24.6%, 1% 23.7%, 1.1% 23%, 1.2% 22.2%, 1.4% 21.5%, 1.5% 20.8%, 1.7% 20.1%, 1.9% 19.4%, 2% 18.7%, 2.2% 18.1%, 2.4% 17.5%, 2.6% 16.9%, 2.8% 16.3%, 3% 15.7%, 3.2% 15.2%, 3.5% 14.6%, 3.7% 14.1%, 4% 13.6%, 4.2% 13.1%, 4.5% 12.6%, 4.7% 12.1%, 5% 11.7%, 5.3% 11.2%, 5.6% 10.8%, 5.9% 10.3%, 6.2% 9.9%, 6.6% 9.5%, 6.9% 9.1%, 7.2% 8.7%, 7.6% 8.3%, 8% 8%, 8.3% 7.6%, 8.7% 7.2%, 9.1% 6.9%, 9.5% 6.6%, 9.9% 6.2%, 10.3% 5.9%, 10.8% 5.6%, 11.2% 5.3%, 11.7% 5%, 12.1% 4.7%, 12.6% 4.5%, 13.1% 4.2%, 13.6% 4%, 14.1% 3.7%, 14.6% 3.5%, 15.2% 3.2%, 15.7% 3%, 16.3% 2.8%, 16.9% 2.6%, 17.5% 2.4%, 18.1% 2.2%, 18.7% 2%, 19.4% 1.9%, 20.1% 1.7%, 20.8% 1.5%, 21.5% 1.4%, 22.2% 1.2%, 23% 1.1%, 23.7% 1%, 24.6% .9%, 25.4% .7%, 26.3% .6%, 27.2% .5%, 28.2% .5%, 29.2% .4%, 30.2% .3%, 31.3% .2%, 32.5% .2%, 33.8% .1%, 35.2% .1%, 36.8% .1%, 38.6% 0%, 40.7% 0%, 43.4% 0%, 50% 0%, 56.6% 0%, 59.3% 0%, 61.4% 0%, 63.2% .1%, 64.8% .1%, 66.2% .1%, 67.5% .2%, 68.7% .2%, 69.8% .3%, 70.8% .4%, 71.8% .5%, 72.8% .5%, 73.7% .6%, 74.6% .7%, 75.4% .9%, 76.3% 1%, 77% 1.1%, 77.8% 1.2%, 78.5% 1.4%, 79.2% 1.5%, 79.9% 1.7%, 80.6% 1.9%, 81.3% 2%, 81.9% 2.2%, 82.5% 2.4%, 83.1% 2.6%, 83.7% 2.8%, 84.3% 3%, 84.8% 3.2%, 85.4% 3.5%, 85.9% 3.7%, 86.4% 4%, 86.9% 4.2%, 87.4% 4.5%, 87.9% 4.7%, 88.3% 5%, 88.8% 5.3%, 89.2% 5.6%, 89.7% 5.9%, 90.1% 6.2%, 90.5% 6.6%, 90.9% 6.9%, 91.3% 7.2%, 91.7% 7.6%, 92% 8%, 92.4% 8.3%, 92.8% 8.7%, 93.1% 9.1%, 93.4% 9.5%, 93.8% 9.9%, 94.1% 10.3%, 94.4% 10.8%, 94.7% 11.2%, 95% 11.7%, 95.3% 12.1%, 95.5% 12.6%, 95.8% 13.1%, 96% 13.6%, 96.3% 14.1%, 96.5% 14.6%, 96.8% 15.2%, 97% 15.7%, 97.2% 16.3%, 97.4% 16.9%, 97.6% 17.5%, 97.8% 18.1%, 98% 18.7%, 98.1% 19.4%, 98.3% 20.1%, 98.5% 20.8%, 98.6% 21.5%, 98.8% 22.2%, 98.9% 23%, 99% 23.7%, 99.1% 24.6%, 99.3% 25.4%, 99.4% 26.3%, 99.5% 27.2%, 99.5% 28.2%, 99.6% 29.2%, 99.7% 30.2%, 99.8% 31.3%, 99.8% 32.5%, 99.9% 33.8%, 99.9% 35.2%, 99.9% 36.8%, 100% 38.6%, 100% 40.7%, 100% 43.4%)}}@layer app{.skeleton-item{--bg: linear-gradient(90deg, #aaa 25%, #ddd 50%, #aaa 75%);display:flex;flex-flow:column;align-items:center;gap:.5rem;min-height:114px;opacity:.25}.skeleton-item._list{display:grid;grid-template-columns:4rem minmax(0,1fr);grid-template-areas:"icon name" "icon description";align-items:start;column-gap:1rem}.skeleton-item :where(._icon,._name,p){background-image:var(--bg);background-size:200% 100%;animation:shimmer 3s infinite;border-radius:4px}.skeleton-item ._icon{grid-area:icon;width:64px;height:64px}.skeleton-item ._name{grid-area:name;height:1rem;width:5ch}.skeleton-item._list ._name{height:2rem;width:50%}.skeleton-item ._description{grid-area:description;display:flex;flex-flow:column;gap:.25rem}.skeleton-item ._description p{height:1rem}.skeleton-item ._description p:nth-child(1){width:80%}.skeleton-item ._description p:nth-child(2){width:90%}.skeleton-item ._description p:nth-child(3){width:30%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@view-transition{navigation: auto;}body{min-height:100dvh;background:linear-gradient(#274060,#1b2845);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:clip;overflow-y:scroll}.app{display:grid;grid-template-columns:100%;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"header" "content" "footer";align-items:start;width:100%;max-width:960px;min-height:100dvh;margin-inline:auto;color:#fff}.app>*{padding:.5rem}@media (width > 750px){.app{grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"header header" "nav content" "footer footer"}}.app__header{grid-area:header}@media (width <= 750px){.app__header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;background:#274060}}.app ._menu-mobile{display:flex;align-items:center;justify-content:center;font-size:2rem}.app ._menu-mobile input{display:none}.app ._menu-mobile:has(:checked){outline:none;opacity:.7}@media (width > 750px){.app ._menu-mobile{display:none}}@media (width <= 750px){.app__nav{display:none}}@media (width > 750px){.app__nav{grid-area:nav;position:sticky;top:2rem}}.app:has(#mobileNavTrigger:checked) .app__nav{display:block;position:fixed;top:2rem;left:1rem;z-index:5;padding:2rem;background:#274060;box-shadow:0 0 3px #092e5e}.app__content{grid-area:content}.app__footer{grid-area:footer}.container{width:100%;max-width:var(--app-container-max-width);margin-inline:auto;padding-inline:var(--app-padding-inline)}}.devlinxList{display:grid;grid-template-columns:100%;gap:2rem;padding-bottom:3rem}.app:has(.is-short) .devlinxList{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.devlinxItem{display:grid;grid-template-columns:4rem minmax(0,1fr);grid-template-areas:"icon name" "icon description";align-items:start;column-gap:1rem;text-decoration:none;color:var(--app-color-text-primary)}.devlinxItem.is-short{justify-self:center;display:inline-grid;grid-template-columns:100%;grid-template-areas:"icon" "name";justify-items:center;align-content:start;gap:.5rem;word-break:break-word}.devlinxItem__icon{grid-area:icon;display:flex;align-items:center;justify-content:center;width:64px;height:64px;color:var(--app-color-text-primary);font-size:4rem;clip-path:var(--app-clip-path-squircle)}.devlinxItem__icon svg{height:100%}.devlinxItem__icon img{width:fit-content;height:fit-content;max-width:100%}.devlinxItem__icon.as-text{font-family:var(--app-font-family-primary);font-weight:800}.devlinxItem__name{grid-area:name;display:flex;align-items:center;gap:1rem;font-family:var(--app-font-family-primary);font-size:2rem}.is-short .devlinxItem__name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.75rem;text-align:center}.devlinxItem__description{grid-area:description;color:var(--app-color-text-secondary);font-family:monospace;font-size:1rem;text-wrap:balance}.devlinxItem ._link{color:inherit;text-decoration:none;cursor:pointer}.devlinxItem.is-short:hover,.devlinxItem.is-short ._link:hover{text-decoration:underline}.devlinxItem:not(.is-short):hover ._link:after{content:"_";animation:blink 1.5s infinite both}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.BptiBwAt.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.BW1JPxja.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.By-yputv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.Com2F4yK.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.Ajscav9D.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media (width > 750px){.devlinxHeader[data-astro-cid-z6cq2e3w]{padding-block:2rem}}.devlinxHeader[data-astro-cid-z6cq2e3w] h1[data-astro-cid-z6cq2e3w]{display:flex;align-items:center;gap:5px;min-height:43px;font-family:var(--app-font-family-primary)}.devlinxHeader[data-astro-cid-z6cq2e3w] h1[data-astro-cid-z6cq2e3w] :first-child[data-astro-cid-z6cq2e3w]{font-weight:300}.devlinxFooter{padding-block:1rem}.devlinxFooter ._author{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-block:1rem;border-top:1px solid currentColor;color:var(--app-color-text-secondary);font-family:monospace}.devlinxFooter ._author a{color:var(--app-color-text-primary)}.devlinxFooter ._powered{display:flex;align-items:center;justify-content:center;gap:1ch}.devlinxFooter ._icon{width:1rem}.devlinxNav{font-family:monospace}.devlinxNav__list{list-style:none}.devlinxNav__listItem{color:var(--app-color-text-primary)}.devlinxNav ._link{position:relative;display:inline-flex;align-items:center;padding:.25rem;text-decoration:none;color:inherit;font-weight:300}.devlinxNav ._link.is-current{font-weight:bolder}.devlinxNav ._link.is-current:before{content:"▋";position:absolute;right:100%;animation:blink 1.5s 1 both}.devlinxNav ._link:not(.is-current):hover{background:var(--app-color-text-secondary);color:var(--app-color-text-primary-inverse)}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:0}}
