*,*:after,*:before{box-sizing:border-box}:root{--kemet-color-white: 255 255 255;--kemet-color-black: 0 0 0;--kemet-color-slate-50: 248 250 252;--kemet-color-slate-100: 241 245 249;--kemet-color-slate-200: 226 232 240;--kemet-color-slate-300: 203 213 225;--kemet-color-slate-400: 148 163 184;--kemet-color-slate-500: 100 116 139;--kemet-color-slate-600: 71 85 105;--kemet-color-slate-700: 51 65 85;--kemet-color-slate-800: 30 41 59;--kemet-color-slate-900: 15 23 42;--kemet-color-slate-950: 2 6 23;--kemet-color-gray-50: 249 250 251;--kemet-color-gray-100: 243 244 246;--kemet-color-gray-200: 226 232 240;--kemet-color-gray-300: 209 213 219;--kemet-color-gray-400: 56 163 175;--kemet-color-gray-500: 107 114 128;--kemet-color-gray-600: 75 85 99;--kemet-color-gray-700: 55 65 81;--kemet-color-gray-800: 30 41 59;--kemet-color-gray-900: 17 24 39;--kemet-color-gray-950: 3 7 18;--kemet-color-neutral-50: 250 250 250;--kemet-color-neutral-100: 245 245 245;--kemet-color-neutral-200: 229 229 229;--kemet-color-neutral-300: 212 212 212;--kemet-color-neutral-400: 163 163 163;--kemet-color-neutral-500: 115 115 115;--kemet-color-neutral-600: 82 82 82;--kemet-color-neutral-700: 64 64 64;--kemet-color-neutral-800: 38 38 38;--kemet-color-neutral-900: 23 23 23;--kemet-color-neutral-950: 10 10 10;--kemet-color-stone-50: 250 250 249;--kemet-color-stone-100: 245 245 244;--kemet-color-stone-200: 231 229 228;--kemet-color-stone-300: 214 211 209;--kemet-color-stone-400: 168 162 158;--kemet-color-stone-500: 120 113 108;--kemet-color-stone-600: 41 37 36;--kemet-color-stone-700: 68 64 60;--kemet-color-stone-800: 41 37 36;--kemet-color-stone-900: 28 25 23;--kemet-color-stone-950: 12 10 9;--kemet-color-red-50: 254 242 242;--kemet-color-red-100: 254 226 226;--kemet-color-red-200: 254 202 202;--kemet-color-red-300: 252 165 165;--kemet-color-red-400: 248 113 113;--kemet-color-red-500: 239 68 68;--kemet-color-red-600: 220 38 38;--kemet-color-red-700: 185 28 28;--kemet-color-red-800: 153 27 27;--kemet-color-red-900: 127 29 29;--kemet-color-red-950: 69 10 10;--kemet-color-orange-50: 255 247 237;--kemet-color-orange-100: 255 237 213;--kemet-color-orange-200: 254 215 170;--kemet-color-orange-300: 253 186 116;--kemet-color-orange-400: 251 146 60;--kemet-color-orange-500: 249 115 22;--kemet-color-orange-600: 234 88 12;--kemet-color-orange-700: 194 65 12;--kemet-color-orange-800: 154 52 18;--kemet-color-orange-900: 124 45 18;--kemet-color-orange-950: 67 20 7;--kemet-color-amber-50: 255 251 235;--kemet-color-amber-100: 254 243 199;--kemet-color-amber-200: 253 230 138;--kemet-color-amber-300: 252 211 77;--kemet-color-amber-400: 251 191 36;--kemet-color-amber-500: 245 158 11;--kemet-color-amber-600: 217 119 6;--kemet-color-amber-700: 180 83 9;--kemet-color-amber-800: 146 64 14;--kemet-color-amber-900: 120 53 15;--kemet-color-amber-950: 69 26 3;--kemet-color-yellow-50: 254 252 232;--kemet-color-yellow-100: 254 249 195;--kemet-color-yellow-200: 254 240 138;--kemet-color-yellow-300: 253 224 71;--kemet-color-yellow-400: 250 204 21;--kemet-color-yellow-500: 234 179 8;--kemet-color-yellow-600: 202 138 4;--kemet-color-yellow-700: 161 98 7;--kemet-color-yellow-800: 133 77 14;--kemet-color-yellow-900: 113 63 18;--kemet-color-yellow-950: 66 32 6;--kemet-color-lime-50: 247 254 231;--kemet-color-lime-100: 236 252 203;--kemet-color-lime-200: 217 249 157;--kemet-color-lime-300: 190 242 100;--kemet-color-lime-400: 163 230 53;--kemet-color-lime-500: 132 204 22;--kemet-color-lime-600: 101 163 13;--kemet-color-lime-700: 77 124 15;--kemet-color-lime-800: 63 98 18;--kemet-color-lime-900: 54 83 20;--kemet-color-lime-950: 26 46 5;--kemet-color-green-50: 240 253 244;--kemet-color-green-100: 220 252 231;--kemet-color-green-200: 187 247 208;--kemet-color-green-300: 134 239 172;--kemet-color-green-400: 74 222 128;--kemet-color-green-500: 34 197 94;--kemet-color-green-600: 22 163 74;--kemet-color-green-700: 21 128 61;--kemet-color-green-800: 22 101 52;--kemet-color-green-900: 20 83 45;--kemet-color-green-950: 5 46 22;--kemet-color-emerald-50: 236 253 245;--kemet-color-emerald-100: 209 250 229;--kemet-color-emerald-200: 167 243 208;--kemet-color-emerald-300: 110 231 183;--kemet-color-emerald-400: 52 211 153;--kemet-color-emerald-500: 16 185 129;--kemet-color-emerald-600: 5 150 105;--kemet-color-emerald-700: 4 120 87;--kemet-color-emerald-800: 6 95 70;--kemet-color-emerald-900: 6 78 59;--kemet-color-emerald-950: 2 44 34;--kemet-color-teal-50: 240 253 250;--kemet-color-teal-100: 204 251 241;--kemet-color-teal-200: 153 246 228;--kemet-color-teal-300: 94 234 212;--kemet-color-teal-400: 45 212 191;--kemet-color-teal-500: 20 184 166;--kemet-color-teal-600: 13 148 136;--kemet-color-teal-700: 15 118 110;--kemet-color-teal-800: 17 94 89;--kemet-color-teal-900: 19 78 74;--kemet-color-teal-950: 4 47 46;--kemet-color-cyan-50: 236 254 255;--kemet-color-cyan-100: 207 250 254;--kemet-color-cyan-200: 165 243 252;--kemet-color-cyan-300: 103 232 249;--kemet-color-cyan-400: 34 211 238;--kemet-color-cyan-500: 6 182 212;--kemet-color-cyan-600: 8 145 178;--kemet-color-cyan-700: 14 116 144;--kemet-color-cyan-800: 21 94 117;--kemet-color-cyan-900: 22 78 99;--kemet-color-cyan-950: 8 51 68;--kemet-color-sky-50: 240 249 255;--kemet-color-sky-100: 224 242 254;--kemet-color-sky-200: 186 230 253;--kemet-color-sky-300: 125 211 252;--kemet-color-sky-400: 56 189 248;--kemet-color-sky-500: 14 165 233;--kemet-color-sky-600: 2 132 199;--kemet-color-sky-700: 3 105 161;--kemet-color-sky-800: 7 89 133;--kemet-color-sky-900: 12 74 110;--kemet-color-sky-950: 8 47 73;--kemet-color-blue-50: 239 246 255;--kemet-color-blue-100: 219 234 254;--kemet-color-blue-200: 191 219 254;--kemet-color-blue-300: 147 197 253;--kemet-color-blue-400: 96 165 250;--kemet-color-blue-500: 59 130 246;--kemet-color-blue-600: 37 99 235;--kemet-color-blue-700: 29 78 216;--kemet-color-blue-800: 30 64 175;--kemet-color-blue-900: 30 58 138;--kemet-color-blue-950: 23 37 84;--kemet-color-indigo-50: 238 242 255;--kemet-color-indigo-100: 224 231 255;--kemet-color-indigo-200: 199 210 254;--kemet-color-indigo-300: 165 180 252;--kemet-color-indigo-400: 129 140 248;--kemet-color-indigo-500: 99 102 241;--kemet-color-indigo-600: 79 70 229;--kemet-color-indigo-700: 67 56 202;--kemet-color-indigo-800: 55 48 163;--kemet-color-indigo-900: 49 46 129;--kemet-color-indigo-950: 30 27 75;--kemet-color-violet-50: 245 243 255;--kemet-color-violet-100: 237 233 254;--kemet-color-violet-200: 221 214 254;--kemet-color-violet-300: 196 181 253;--kemet-color-violet-400: 167 139 250;--kemet-color-violet-500: 139 92 246;--kemet-color-violet-600: 124 58 237;--kemet-color-violet-700: 109 40 217;--kemet-color-violet-800: 91 33 182;--kemet-color-violet-900: 76 29 149;--kemet-color-violet-950: 46 16 101;--kemet-color-purple-50: 250 245 255;--kemet-color-purple-100: 243 232 255;--kemet-color-purple-200: 233 213 255;--kemet-color-purple-300: 216 180 254;--kemet-color-purple-400: 192 132 252;--kemet-color-purple-500: 168 85 247;--kemet-color-purple-600: 147 51 234;--kemet-color-purple-700: 126 34 206;--kemet-color-purple-800: 107 33 168;--kemet-color-purple-900: 88 28 135;--kemet-color-purple-950: 59 7 100;--kemet-color-fuchsia-50: 253 244 255;--kemet-color-fuchsia-100: 250 232 255;--kemet-color-fuchsia-200: 245 208 254;--kemet-color-fuchsia-300: 240 171 252;--kemet-color-fuchsia-400: 232 121 249;--kemet-color-fuchsia-500: 217 70 239;--kemet-color-fuchsia-600: 192 38 211;--kemet-color-fuchsia-700: 162 28 175;--kemet-color-fuchsia-800: 134 25 143;--kemet-color-fuchsia-900: 112 26 117;--kemet-color-fuchsia-950: 74 4 78;--kemet-color-pink-50: 253 242 248;--kemet-color-pink-100: 252 231 243;--kemet-color-pink-200: 251 207 232;--kemet-color-pink-300: 249 168 212;--kemet-color-pink-400: 244 114 182;--kemet-color-pink-500: 236 72 153;--kemet-color-pink-600: 219 39 119;--kemet-color-pink-700: 190 24 93;--kemet-color-pink-800: 157 23 77;--kemet-color-pink-900: 131 24 67;--kemet-color-pink-950: 80 7 36;--kemet-color-rose-50: 255 241 242;--kemet-color-rose-100: 255 228 230;--kemet-color-rose-200: 254 205 211;--kemet-color-rose-300: 253 164 175;--kemet-color-rose-400: 251 113 133;--kemet-color-rose-500: 244 63 94;--kemet-color-rose-600: 225 29 72;--kemet-color-rose-700: 190 18 60;--kemet-color-rose-800: 159 18 57;--kemet-color-rose-900: 136 19 55;--kemet-color-rose-950: 76 5 25;--kemet-color-foreground: var(--kemet-color-primary);--kemet-color-background: var(--kemet-color-white);--kemet-color-text: var(--kemet-color-gray-800);--kemet-color-primary: var(--kemet-color-sky-800);--kemet-color-white-to-black: var(--kemet-color-white);--kemet-color-white-to-primary: var(--kemet-color-white);--kemet-color-gray-50-to-transparent: var(--kemet-color-gray-50);--kemet-color-primary-to-transparent: var(--kemet-color-primary);--kemet-color-error: var(--kemet-color-red-500);--kemet-color-success: var(--kemet-color-green-500);--kemet-color-neutral: var(--kemet-color-gray-500);--kemet-color-warning: var(--kemet-color-orange-500);--kemet-border-radius-sm: .1875rem;--kemet-border-radius-md: .25rem;--kemet-border-radius-lg: .5rem;--kemet-border-radius-xl: 1rem;--kemet-border-radius-circle: 50%;--kemet-border-radius-pill: 9999px;--kemet-elevation-none: 0 0 rgba(0, 0, 0, 0);--kemet-elevation-layer-1: 0 1px 2px 0 rgba(0, 0, 0, .05);--kemet-elevation-layer-2: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--kemet-elevation-layer-3: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--kemet-elevation-layer-4: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--kemet-elevation-layer-5: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--kemet-elevation-layer-6: 0 25px 50px -12px rgba(0, 0, 0, .25);--kemet-elevation-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--kemet-spacer-auto: auto;--kemet-spacer-none: 0;--kemet-spacer-3xs: .125rem;--kemet-spacer-2xs: .25rem;--kemet-spacer-xs: .5rem;--kemet-spacer-sm: .75rem;--kemet-spacer-md: 1rem;--kemet-spacer-lg: 1.25rem;--kemet-spacer-xl: 1.75rem;--kemet-spacer-2xl: 2.25rem;--kemet-spacer-3xl: 3rem;--kemet-spacer-4xl: 4.5rem;--kemet-upload-margin: 1rem}html{color:rgb(var(--kemet-color-text))}[polarity=dark]{--kemet-color-text: var(--kemet-color-white);--kemet-color-foreground: var(--kemet-color-white);--kemet-color-background: var(--kemet-color-primary);--kemet-color-white-to-black: var(--kemet-color-black);--kemet-color-white-to-primary: var(--kemet-color-primary);--kemet-color-gray-50-to-transparent: transparent;--kemet-color-primary-to-transparent: transparent;--kemet-upload-margin: 0;--kemet-elevation-none: none;--kemet-elevation-layer-1: none;--kemet-elevation-layer-2: none;--kemet-elevation-layer-3: none;--kemet-elevation-layer-4: none;--kemet-elevation-layer-5: none;--kemet-elevation-layer-6: none;--kemet-elevation-inner: none}:root{--color-white: 248 248 248;--color-black: 0 0 0;--color-primary: 229 193 22;--color-secondary: 29 118 196;--color-tertiary: 5 22 31;--kemet-color-text: var(--color-white);--footer-offset: -6rem;--footer-reoffset: 0;overflow:auto}@media screen and (min-width: 768px){:root{--footer-offset: -10rem;--footer-reoffset: 8rem}}body{font:16px Ubuntu,sans-serif;color:var(--color-white);margin:0 0 -4rem;min-height:100vh;display:flex;flex-direction:column;overflow:hidden}body>footer{color:rgb(var(--color-tertiary));text-align:center;position:relative;z-index:1;transform:translateY(var(--footer-offset))}body>footer a{text-decoration:none;color:rgb(var(--color-secondary))}body>footer me-waves{position:relative}@media screen and (min-width: 768px){body>footer me-waves{top:1rem}}body>footer me-footer-container{transform:translateY(var(--footer-reoffset))}a{color:rgb(var(--color-secondary));text-decoration:none}h1,h2,h3,h4,h5,h6{padding:0;margin:0}main{flex:1;color:#fff;background-color:rgb(var(--color-tertiary))}main>header a{color:inherit;text-decoration:none;display:inline-flex;gap:1rem;align-items:center;position:absolute;top:0;left:0;width:100%;z-index:2;padding:2rem;background:transparent}main>header h1{font-size:clamp(1.75rem,2.5vw,3rem);text-shadow:0 2px 2px rgba(0,0,0,.26)}main>header h2{color:#ffffff40;margin:0;font-size:clamp(1.5rem,2.5vw,2rem)}main>header img{width:64px;height:64px;border-radius:50%;outline:2px solid white;outline-offset:2px}time{font-size:.9rem;color:rgb(var(--kemet-color-gray-800))}article{line-height:2;max-width:1280px;padding:2rem;margin:10rem auto}article h1{font-size:clamp(1.75rem,2.5vw,4rem);line-height:1.2;margin:2rem 0;padding:0}article h2{font-size:clamp(1.5rem,2.5vw,2.25rem);margin:2rem 0;padding:0}article hr{opacity:.25}article time{color:inherit}pre{padding:2rem}kemet-card{color:rgb(var(--color-tertiary));text-align:left;line-height:1.5;border-radius:var(--kemet-border-radius-lg);box-shadow:var(--kemet-elevation-layer-3)}me-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:100vh}me-hero .loader{width:50px;--b: 8px;aspect-ratio:1;border-radius:50%;background:rgb(var(--color-primary));-webkit-mask:repeating-conic-gradient(rgba(0,0,0,0) 0deg,#000 1deg 70deg,rgba(0,0,0,0) 71deg 90deg),radial-gradient(farthest-side,rgba(0,0,0,0) calc(100% - var(--b) - 1px),#000 calc(100% - var(--b)));-webkit-mask-composite:destination-in;mask-composite:intersect;animation:l5 1s infinite}@keyframes l5{to{transform:rotate(.5turn)}}me-latest-blog-posts{display:flex;margin:0;padding:4rem;background:#fff;justify-content:center}me-latest-blog-posts h2{font-size:clamp(1.5rem,2.5vw,2rem);margin:2rem 0}me-latest-blog-cards{display:flex;gap:2rem;flex-direction:column}@media screen and (min-width: 1024px){me-latest-blog-cards{display:grid;grid-auto-flow:column}}me-social-menu ul{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2rem 0 0;padding:0;list-style:none}me-social-menu a{display:block;width:2rem;height:2rem}me-social-menu svg{width:100%;height:100%;fill:currentColor}me-blog-cards{display:grid;grid-template-columns:1fr;gap:2rem;margin:auto;padding:10rem 2rem;max-width:1280px}@media screen and (min-width: 640px){me-blog-cards{grid-template-columns:1fr 1fr}}@media screen and (min-width: 1280px){me-blog-cards{grid-template-columns:1fr 1fr 1fr}}me-project-figure{display:block;text-align:center;padding:1rem 0}me-project-figure img{display:inline-flex;outline:1px solid rgb(var(--color-white)/25%);outline-offset:.5rem;border-radius:var(--kemet-border-radius-lg);overflow:hidden;width:98%;height:auto;box-shadow:var(--kemet-elevation-layer-3)}@media screen and (min-width: 769px){me-project-skills{display:flex;gap:1rem;align-items:center}}me-project-skills ul{display:inline-flex;column-gap:1rem;flex-wrap:wrap;list-style:none;align-items:center;margin:0;padding:0}me-project-skills li{white-space:nowrap}me-project-skills li:not(:last-child):after{content:","}me-404{display:flex;flex-direction:column;min-height:75vh;align-items:center;justify-content:center}me-404 span{font-size:10rem;font-weight:700}
