@font-face{font-family:exo2;font-style:italic;font-weight:100;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:100;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:200;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:200;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:300;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:300;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:400;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:400;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:500;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:500;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:600;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:600;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:700;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:700;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:800;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:800;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:italic;font-weight:900;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:italic;font-weight:900;src:url(/fonts/exo/latin/Exo2-VariableFont_wght-italic.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:100;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:100;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:200;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:200;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:300;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:300;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:400;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:400;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:500;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:500;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:600;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:600;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:700;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:700;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:800;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:800;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:exo2;font-style:normal;font-weight:900;src:url(/fonts/exo/latin-ext/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:exo2;font-style:normal;font-weight:900;src:url(/fonts/exo/latin/Exo2-VariableFont_wght.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark light;--font-family:"Exo2", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, helvetica, arial, sans-serif;--font-weight-light:300;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--text-xs:.95rem;--text-sm:1rem;--text-base:1.1rem;--text-up:1.2rem;--text-lg:1.35rem;--text-xl:1.5rem;--text-2xl:1.8rem;--text-3xl:3rem;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--space-4xl:8rem;--header-height:85px;--max-width:1280px;--radius:12px;--radius-large:50px;--border-width:1px;--transition-func:ease;--transition-duration:0.3s;--icon-size-ref:24px;--bg:#0f1117;--bg-shape:rgb(0 212 255 / 3%);--color-card:#1a1d29;--halo:#191d28;--footer-bg:#64748b;--icon-as-bg:#393f59;--color-headline:#e2e8f0;--color-text:#cbdbef;--color-highlight:#00d4ff;--border-color:#2d3748;--color-badge:#8e98bf;--shadow:rgb(0 0 0 / 40%);--input-bg:var(--color-text);--input-color:#1c1c1c;--header-bg:rgb(15 17 23 / 95%);--header-border:rgb(45 55 72 / 50%);--header-shadow:rgb(0 0 0 / 30%);--logo-border:#00d4ff;--menu-label-bg:rgb(26 29 41 / 80%);--menu-label-hover:rgb(26 29 41 / 100%);--menu-item-hover:rgb(0 212 255 / 10%);--menu-item-active:rgb(0 212 255 / 15%)}:root:where(.light,.light *){--bg:#f5f7fa;--bg-shape:rgb(131 126 127 / 9%);--color-card:#fff;--halo:#e8ecf1;--icon-as-bg:#eaecee;--color-headline:#1e293b;--color-text:#334155;--color-highlight:#d33765;--border-color:#cbd5e1;--color-badge:#64748b;--shadow:rgb(0 0 0 / 15%);--input-bg:#eaecee;--input-color:#1e293b;--header-bg:rgb(255 255 255 / 98%);--header-border:rgb(203 213 225 / 80%);--header-shadow:rgb(15 23 42 / 8%);--logo-border:#d33765;--menu-label-bg:rgb(248 250 252 / 95%);--menu-label-hover:rgb(255 255 255 / 100%);--menu-item-hover:rgb(211 55 101 / 8%);--menu-item-active:rgb(211 55 101 / 12%)}a{text-underline-offset:5px;text-decoration-thickness:1px;font-weight:var(--font-weight-semibold)}*{scroll-margin-block-start:calc(var(--header-height) + var(--space-xl))}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%);white-space:nowrap;border-width:0;overflow:hidden}.hidden{display:none}.ltr\:hidden:where(:dir(ltr),[dir=ltr],[dir=ltr] *){display:none}section:not(:first-child){margin-block:var(--space-2xl)}.card{border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:0 10px 20px var(--shadow);transition:all var(--transition-duration)var(--transition-func);background-color:var(--color-card)}summary::marker{color:var(--color-highlight)}::-ms-backdrop{margin:0;padding:0;border:0 solid;box-sizing:border-box}*,::after,::before,::backdrop{margin:0;padding:0;border:0 solid;box-sizing:border-box}html,:host{font-family:var(--font-family);line-height:1.5;text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit;word-break:break-all;overflow-wrap:break-word;text-underline-offset:5px}b,strong{font-weight:var(--font-weight-bold)}code,kbd,samp,pre{font-family:var(--font-family-mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-size:1em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse;display:block;overflow:auto}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block}img,video{height:auto;max-width:100%}button,input,select,optgroup,textarea{border-radius:0;color:inherit;font:inherit;opacity:1;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;background-color:#0000}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}::placeholder{opacity:1}[hidden]:where(:not([hidden=until-found])){display:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:auto}.icon svg{width:1em;height:1em}h1{font-size:var(--text-2xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--text-xl);font-weight:var(--font-weight-bold)}h3,.sidebar h3,h4{font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}h1,h2,h3,.sidebar h3,h4{margin:0;color:var(--color-headline);margin-bottom:var(--space-sm);background-color:var(--bg)}p{margin:var(--space-lg)0;font-size:var(--text-base);line-height:1.6}blockquote p:first-of-type::before{content:open-quote}blockquote p:last-of-type::after{content:close-quote}.post-main a:not(.go-next,.anchor-link,.link){color:var(--color-highlight)}.post-main:where(.light,.light *) a:not(.go-next,.anchor-link,.link){text-decoration:underline}.anchor-link{font-size:smaller;text-decoration:none;.symbol { color: var(--color-highlight); margin-inline-end: var(--space-xs); }}@media(hover:hover){.post-main a:not(.go-next,.anchor-link,.link):hover{text-decoration:underline}.post-main:where(.light,.light *) a:not(.go-next,.anchor-link,.link):hover{text-decoration:none}}html,body{overflow-x:clip}body{margin:0;padding:0;background-color:var(--bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--text-base);line-height:1.6;font-weight:var(--font-weight-normal)}body::before{position:fixed;top:0;left:0;z-index:-1;width:100vw;height:100vh;background:radial-gradient(circle at 10% 20%,var(--bg-shape) 0%,transparent 40%),radial-gradient(circle at 90% 80%,var(--bg-shape) 0%,transparent 40%),repeating-conic-gradient(var(--bg-shape) 0 12deg,transparent 12deg 360deg);opacity:.8;content:'';pointer-events:none}body::after{position:fixed;top:0;left:0;z-index:-2;width:100vw;height:100vh;opacity:.35;content:'';pointer-events:none;background-image:repeating-linear-gradient(90deg,transparent 0 3px,var(--bg-shape) 3px 4px),repeating-linear-gradient(0,transparent 0 3px,var(--bg-shape) 3px 4px)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0;padding-inline:var(--space-md)}.site-header{position:sticky;top:0;z-index:100;box-shadow:0 2px 8px var(--header-shadow);background-color:var(--header-bg);backdrop-filter:blur(10px);padding-block:var(--space-md);margin-block-end:var(--space-2xl);border-block-end:1px solid var(--header-border);.container { display: grid; align-items: center; grid-template-columns: auto 1fr auto auto; grid-template-areas: "logo nav-menu menu-ext dark-mode"; gap: var(--space-xs); .logo { grid-area: logo; justify-self: start; a { display: flex; justify-content: center; align-items: center; } } img { border: 2px solid var(--logo-border); border-radius: 50%; box-shadow: 0 2px 8px var(--shadow); } }}.nav-menu{grid-area:nav-menu}.menu{--icon-size-ref:20px;position:relative;.dropdown { position: relative; } .dropdown-toggle { display: flex; justify-content: center; align-items: center; min-width: 120px; padding: var(--space-xs) var(--space-sm); border: 1px solid var(--border-color); border-radius: var(--radius); color: var(--color-text); font-size: var(--text-base); gap: var(--space-xs); background-color: transparent; font-weight: var(--font-weight-semibold); cursor: pointer; } .dropdown-toggle:hover, .dropdown-toggle:focus { background-color: var(--menu-label-hover); border-color: var(--color-highlight); outline: none; } .dropdown-icon { flex-shrink: 0; } .dropdown:hover .dropdown-menu, .dropdown:focus-within .dropdown-menu { display: block; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 100; display: none; min-width: 200px; margin: 2px 0 0; padding: var(--space-xs); border: 1px solid var(--border-color); border-radius: var(--radius); box-shadow: 0 4px 16px var(--shadow); background-color: var(--color-card); list-style: none; } .dropdown-item { margin: 0; } .dropdown-link { display: flex; align-items: center; padding: var(--space-xs) var(--space-sm); border-radius: calc(var(--radius) - 2px); color: var(--color-text); font-size: var(--text-base); gap: var(--space-sm); font-weight: var(--font-weight-normal); text-decoration: none; } .dropdown-link:hover, .dropdown-link:focus { background-color: var(--menu-item-hover); color: var(--color-highlight); outline: none; } .dropdown-link.active { background-color: var(--menu-item-active); color: var(--color-highlight); font-weight: var(--font-weight-semibold); } svg { width: var(--icon-size-ref); height: var(--icon-size-ref); flex-shrink: 0; } .link-text { flex: 1; }}.translations .link{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.menu-ext{grid-area:menu-ext;.dropdown-menu { right: 0; left: auto; }}@media(hover:hover){.menu .dropdown-link:hover .link-text{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}}.theme-toggle{--icon-size-ref:18px;--offset:24px;grid-area:dark-mode;position:relative;display:flex;align-items:center;width:64px;height:34px;padding:6px;border:1px solid var(--border-color);border-radius:var(--radius-large);background-color:var(--color-card);cursor:pointer;gap:10px}.theme-toggle::after{position:absolute;top:4px;left:7px;content:"";width:var(--offset);height:var(--offset);background-color:var(--color-highlight);border-radius:50%}.theme-toggle:where(.dark,.dark *)::after{transform:translateX(var(--offset))}:is(.moon,.sun) .icon{display:block}:is(.moon,.sun) svg{width:var(--icon-size-ref);height:var(--icon-size-ref)}.dark .moon,.light .sun{display:flex}.skip-link{position:absolute;z-index:1000;width:1px;height:1px;max-width:25ch;margin:-1px;padding:0;text-align:center;clip-path:inset(50%);white-space:nowrap;border-width:0;overflow:hidden}.skip-link:focus{position:static;width:auto;height:auto;margin:0;padding:0;clip-path:none;white-space:normal;overflow:visible}.pagination{display:flex;justify-content:space-between;border-style:dotted;border-top-width:1px;border-color:var(--border-color);padding-top:var(--space-md)}.prev a{margin-right:var(--space-md)}.next a{text-align:right;margin-left:var(--space-md)}.prev a.group,.next a.group{display:flex;text-decoration:none}.prev a.group:hover,.next a.group:hover{text-decoration:none}.arrow-left{margin-right:var(--space-md);color:var(--color-highlight)}.arrow-right{margin-left:var(--space-md);color:var(--color-highlight)}.prev .title,.next .title{display:flex;flex-direction:column}.cursus-title{margin-block:var(--space-2xl)0;background-color:initial;text-shadow:2px 2px 3px var(--color-card)}.cursus-intro{font-size:var(--text-up);text-shadow:2px 2px 3px var(--color-card)}.cursus{max-width:65ch;margin:var(--space-md)0;list-style-type:none;border-inline-start:2px solid var(--color-highlight);.item { margin-block: var(--space-lg); border-radius: var(--radius); }}.cursus .inner{display:flex;width:100%;.icon { display: flex; justify-content: center; align-items: center; width: var(--icon-size-ref); height: var(--icon-size-ref); border-radius: var(--radius); color: var(--bg); margin-top: var(--space-md); background-color: var(--color-highlight); }}.cursus .content{margin-top:0;flex:1;.card { padding: var(--space-md); margin-inline-start: var(--space-md); } .header { margin-block-end: var(--space-md); .title { background-color: var(--color-card); color: var(--color-headline); font-size: var(--text-xl); line-height: 1.3; margin-block: 0; } } .text { max-width: 65ch; color: var(--color-text); }}:where(:dir(ltr),[dir=ltr],[dir=ltr] *) .cursus .item .inner .icon{margin-left:calc(.25rem * -3)}:where(:dir(rtl),[dir=rtl],[dir=rtl] *) .cursus .item .inner .icon{margin-right:-79px}.badge{display:inline-block;margin:0;margin-block:var(--space-sm);padding:2px 5px;border:1px solid var(--color-badge);border-radius:var(--radius);color:var(--color-badge);font-size:var(--text-xs)}.scrolltop{margin-block:var(--space-lg);text-align:center;.link { text-decoration: none; .icon { display: inline-block; padding: .5rem; border: 0; border-radius: 50%; color: var(--bg); line-height: var(--icon-size-ref); background-color: var(--color-highlight); svg { width: var(--icon-size-ref); height: var(--icon-size-ref); transform: rotate(-180deg); } } }}@media(hover:hover){.scrolltop{.link:hover { text-decoration: none; }}}.site-footer{display:flex;justify-content:center;align-items:center;color:var(--footer-bg);text-align:center;opacity:.8;border-style:dotted;border-top-width:var(--border-width);border-color:var(--border-color);margin-block-start:var(--space-lg);padding-block:var(--space-xs)var(--space-lg);gap:var(--space-sm)}.error-404{.error-img { display: block; margin-block: var(--space-lg); } .go-back { display: inline-block; margin-block: var(--space-lg); .icon { --icon-size-ref: 60px; display: inline-block; border-radius: 50%; color: var(--bg); transform: rotate(90deg); background-color: var(--color-highlight); svg { width: var(--icon-size-ref); height: var(--icon-size-ref); } } }}@media(width < 480px){:root{--header-height:70px}.site-header{padding-block:.625rem;.container { grid-template-columns: auto 1fr 1fr auto; grid-template-areas: "logo nav-menu menu-ext dark-mode"; gap: var(--space-xs); justify-items: center; .logo { justify-self: start; img { width: 32px; height: 32px; } } }}.nav-menu,.menu-ext{justify-self:center}.menu{.dropdown-toggle { min-width: auto; padding: 0.375rem 0.5rem; font-size: var(--text-xs); gap: 0.25rem; } .dropdown-menu { min-width: 160px; }}.theme-toggle{--icon-size-ref:14px;width:52px;height:28px;gap:6px;&::after { top:4px; left:5px; width:18px; height:18px; } &:where(.dark,.dark *)::after { transform:translateX(20px); }}}@media(width >=480px){.site-header{padding-block:var(--space-sm);.container { gap: var(--space-sm); }}.menu{.dropdown-toggle { padding: var(--space-xs) var(--space-sm); }}}@media(width >=640px){.cursus{.item { .header { display: flex; justify-content: space-between; align-items: center; } }}}@media(width >=768px){:root{--header-height:97px}.site-header{padding-block:var(--space-lg);.container { grid-template-columns: 1fr auto auto auto; gap: var(--space-lg); }}.nav-menu{justify-self:center}.menu-ext{justify-self:end}.container{padding-inline:var(--space-md)}.contact{padding:var(--space-xs)}}@media(width >=853px){.posts{.listing { gap: var(--space-lg); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }}.listing-item{.resized { min-height: 180px; } .text { padding-block-end: var(--space-xs); .summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-clamp: 2; text-overflow: ellipsis; overflow: hidden; } }}.posts .listing-item .title,.post-sidebar a{max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.badge{margin-block:initial}}@media(width >=1024px){.author{--icon-size-ref:32px}h1{font-size:var(--text-3xl);line-height:1.667em}h2{font-size:var(--text-2xl);line-height:1.3em}h3{font-size:var(--text-lg);line-height:1.3em}h4{font-size:var(--text-lg);line-height:1.3em}p{font-size:var(--text-up);line-height:1.6}.site-footer,.scrolltop{justify-content:flex-end;text-align:end}.single{grid-template-columns:1fr 280px;grid-template-areas:"main sidebar";column-gap:var(--space-xl);.post-main { grid-area: main; } .explain { padding: var(--space-md); } .post-sidebar { width: 280px; grid-area: sidebar; .toc-toggle { display: none; } .toc-wrapper { position: sticky; top: calc(var(--header-height) + var(--space-xl)); right: unset; bottom: unset; left: unset; z-index: 1; border-radius: var(--radius); transform: translateY(0); } } .toc-title { padding-inline-start: var(--space-md); } .post-sidebar a { font-size: var(--text-sm); } .toc-toggle { display: none; }}.container{padding-inline:var(--space-md)}section:not(:first-child,.skills){margin-block:var(--space-4xl)}.cursus-title{margin-block-start:var(--space-4xl)}.contact{display:grid;align-items:center;grid-template-columns:1fr 1fr;gap:20px;.nojs { align-items: center; } .intro { .icon { svg { width: calc(var(--icon-size-ref) * 15); height: calc(var(--icon-size-ref) * 15); } } } .response { top: 50%; left: 0; max-height: 100%; text-align: center; } .response-icon { display: inline-block; margin: 0 auto; font-size: 8rem; }}}@media(width >=1280px){.container{padding-inline:calc(.25rem * 32)}}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@keyframes slideleft{0%,20%,50%,80%,100%{transform:translateX(0)}40%{transform:translateX(-30px)}60%{transform:translateX(-15px)}}@media(prefers-reduced-motion:no-preference){.smooth{scroll-behavior:smooth}.go-next{animation:bounce 2s ease infinite;animation-play-state:running}.go-next:hover{animation-play-state:paused}.go-back{animation:slideleft 2s ease infinite;animation-play-state:running}.go-back:hover{animation-play-state:paused}@media(hover:hover){.card:where(.light,.light *):hover img,.img:where(.light,.light *):hover{transition:all var(--transition-duration)var(--transition-func);transform:scale(1.05)}}.site-header .logo a{transition:transform .2s ease}.site-header .logo a:hover{transform:scale(1.05)}.dropdown-toggle{transition:all .2s ease}.dropdown-icon{transition:transform .2s ease}.dropdown:hover .dropdown-toggle .dropdown-icon,.dropdown:focus-within .dropdown-toggle .dropdown-icon{transform:rotate(180deg)}.dropdown-link{transition:all .15s ease}.theme-toggle::after{transition:all 400ms var(--transition-func)}}@media print{.single-metadata,.site-footer,.footer{display:none}}.ie-overlay{position:fixed;inset:0;z-index:9999;display:flex;justify-content:center;align-items:center;background:rgb(0 0 0/85%)}.ie-overlay.hidden{display:none}.ie-message{max-width:500px;padding:2rem;border-radius:8px;background:#fff;text-align:center;box-shadow:0 4px 20px rgb(0 0 0/.5)}.ie-message h2{margin:0 0 1rem;color:#d00}