:root{interpolate-size:allow-keywords;color-scheme:var(--color-scheme,dark light);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:contain;--app-header-height:5rem;--app-sidebar-width:260px;--duration-s:.25s;--duration-m:.35s;--duration-l:.65s;--duration-xl:1.35s;--animation-dialog-in:fadein var(--duration-m) ease-out;--animation-dialog-out:fadeout var(--duration-m) ease-out}.dark{--color-scheme:dark;--color-off-white:#1d1c1b;--color-white:#181818;--color-black:#fff;--rgb-white:24 24 24;--rgb-black:255 255 255;--color-grey-soft:#363330;--color-grey-light:#46423e;--color-grey-medium:#6c6660;--color-grey-dark:#a6a19b;--color-grey-pure:#c3bfbb;--color-text:#d1cdc7;--color-accent:#cc8339}.light{--color-scheme:light;--color-off-white:#f7f7f8;--color-white:#fff;--color-black:#000;--rgb-white:255 255 255;--rgb-black:24 24 24;--color-grey-soft:#dbe6f0;--color-grey-light:#cfdbe8;--color-grey-medium:#7694b2;--color-grey-dark:#57738e;--color-grey-pure:#44576a;--color-text:#181818;--color-accent:#963}*,:after,:before{box-sizing:inherit;margin:0;padding:0}html{box-sizing:border-box}body,html{height:100%}body{color:var(--color-text);background-color:var(--color-white);font-family:Inter Tight,Inter Tight Fallback\: Segoe UI,Inter Tight Fallback\: Helvetica Neue,Inter Tight Fallback\: Arial,Inter Tight Fallback\: Noto Sans,Inter Tight Fallback\: Liberation Sans,system-ui;font-size:.8rem;font-weight:500;line-height:1.4}embed,img,svg,video{-o-object-fit:cover;object-fit:cover;max-width:100%;display:block}button,video{cursor:pointer}p{text-wrap:pretty;color:var(--color-grey-pure);max-width:64ch}h1,h2,h3,h4,h5,h6{text-wrap:balance;color:var(--color-text);line-height:1.2}blockquote,h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}:where([role=list]){margin-left:0;list-style:none}a{cursor:pointer;transition:all var(--duration-s) ease-in-out;border-radius:.25rem;outline:1px solid #0000;text-decoration:none}a:focus-visible{outline-offset:.5rem;outline-color:var(--color-accent)}p a{color:var(--color-text);text-decoration:underline}p a:hover{color:var(--color-accent)}hr{background-color:var(--color-accent);border:0;height:1px;margin-block:4rem}button{font-size:inherit;background-color:#0000;border:none}.button{cursor:pointer;min-height:2.5rem;color:var(--color-white);text-align:center;background-color:var(--color-accent);transition:all var(--duration-s) ease-in-out;border-radius:8px;justify-content:center;align-items:center;padding-block:.5rem;padding-inline:2rem;font-weight:700;display:inline-flex}.button[disabled]{pointer-events:none;opacity:.35}.buttons-wrapper{flex-wrap:wrap;gap:.5rem;display:flex}h1,h2{display:grid}.article-subtitle,.article-title{text-transform:uppercase;font-size:1.5rem;font-weight:700;line-height:1}.article-title{color:var(--color-accent)}.article-subtitle{color:var(--color-text)}.article-subtitle2{text-transform:uppercase;color:var(--color-accent);margin-bottom:.5rem;font-size:1.25rem;font-weight:700;line-height:1}.article-description p:not(:last-child){margin-bottom:1rem}.app-layout{-moz-column-gap:4rem;transition:grid-template-columns var(--duration-l);column-gap:4rem;display:grid}@media (width>=1280px){.app-layout{grid-template-columns:0 1fr}}@media (width>=1280px){#app:has([aria-expanded=true]) .app-layout{grid-template-columns:calc(var(--app-sidebar-width) / 2) 1fr}}.page-enter-active,.page-leave-active{transition:opacity var(--duration-m) ease,transform var(--duration-m) ease}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(2rem)}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadeout{to{opacity:0}}@keyframes scalein{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleout{to{opacity:0;transform:scale(.9)}}.skip-link{z-index:9;width:max-content;color:var(--color-text);background-color:var(--color-white);transition-property:color,background-color,outline-offset,outline-color,transform;transition-duration:var(--duration-s);border:1px solid #0000;border-radius:8px;margin-inline:auto;padding:.5rem 1rem;font-weight:600;text-decoration-color:#0000;position:absolute;inset-block-start:0;inset-inline:0;transform:translateY(-100%)}.skip-link:focus{outline-color:var(--color-accent);outline-offset:-1px;transform:translateY(1rem)}.skip-link:hover{text-decoration:underline}.hamburger-button{transition:outline-color var(--duration-s) ease-out,outline-offset var(--duration-s) ease-out;border-radius:1rem;outline:1px solid #0000}.hamburger-button:focus-visible{outline-color:var(--color-accent);outline-offset:-4px}.hamburger-button .hamburger-line{fill:none;transition:stroke var(--duration-l),stroke-dasharray var(--duration-l),stroke-dashoffset var(--duration-l);stroke:var(--color-text);stroke-width:5.5px;stroke-linecap:round}.hamburger-button .bottom,.hamburger-button .top{stroke-dasharray:41 121}.hamburger-button[aria-expanded=true] .hamburger-line{stroke:var(--color-accent)}.hamburger-button[aria-expanded=true] .bottom,.hamburger-button[aria-expanded=true] .top{stroke-dashoffset:-102px}.theme-toggle{--color-shape:#c78500}.theme-toggle button{cursor:pointer;outline-offset:10px;width:28px;height:28px;box-shadow:inset 20px -20px 0 0 var(--color-shape);transition:outline-color var(--duration-s) ease-out,outline-offset var(--duration-s) ease-out,box-shadow var(--duration-l) ease-out;border:4px solid #0000;border-radius:100vw;outline:1px solid #0000}.theme-toggle button[aria-pressed=true]{--color-shape:#fa0;box-shadow:inset 8px -6px 0 0 var(--color-shape)}.theme-toggle button:focus-visible,.theme-toggle button:hover{outline-offset:0;outline-color:var(--color-shape)}.portfolio-header{z-index:8;background-color:rgb(var(--rgb-white)/94%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding-inline:2rem;position:sticky;top:0}.header-content{height:var(--app-header-height);justify-content:space-between}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:.5rem}.header-title-wrapper{outline-offset:.75rem}.header-subtitle,.header-title{white-space:nowrap;color:var(--color-accent);text-transform:uppercase;font-size:.75rem;line-height:1.2;display:block}.header-title{font-weight:800}.header-subtitle{color:var(--color-text);font-weight:600}details{interpolate-size:allow-keywords;margin-left:-1.25rem;padding-inline-start:1.25rem;overflow:hidden}details summary{cursor:pointer;list-style:none;position:relative}details summary .nav-link{font-weight:600}details summary::marker{content:none}details summary::-webkit-details-marker{display:none}details summary:before{content:"▶"/attr(label) "";transition:rotate var(--duration-m);padding:.5rem;font-size:.75rem;line-height:1;position:absolute;top:.4em;left:-1.25rem}details summary:focus-visible{outline:none}details summary:focus-visible:before{outline:1px solid var(--color-accent);outline-offset:-4px;border-radius:9px}details[open]>summary:before{color:var(--color-accent);top:.35em;rotate:90deg}details::details-content{block-size:0;transition:block-size var(--duration-l),content-visibility var(--duration-l);transition-behavior:allow-discrete}details[open]::details-content{block-size:auto}.menu{background-color:rgb(var(--rgb-white)/94%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);min-width:var(--app-sidebar-width);z-index:8;height:100%;max-height:calc(100lvh - 80px);transform:translateX(calc(-1 * var(--app-sidebar-width)));transition:transform var(--duration-l);padding-block:1rem;padding-inline:1.5rem 1rem;position:fixed;overflow-y:auto}.menu.show-menu{transform:translate(0)}@media (width>=768px){.menu{padding-block-end:3rem}}.nav-list{margin-inline-start:.75rem;padding-block-end:1rem;font-size:1rem}.nav-list .nav-list .nav-link{margin-block-end:.25rem;font-weight:500}.nav-link{text-underline-offset:.25em;min-height:2.25rem;color:var(--color-text);transition:opacity var(--duration-s) ease-out,color var(--duration-s) ease-out,font-weight var(--duration-m) ease-out,background-color var(--duration-s) ease-out,outline-color var(--duration-s) ease-out,outline-offset var(--duration-s) ease-out;background-color:#0000;border-radius:.5rem;align-items:center;margin-block-end:.5rem;padding-inline:.5rem;font-weight:600;display:inline-flex}@media (pointer:fine){.nav-link:hover{color:var(--color-black);text-decoration:underline}}.nav-link.router-link-active{color:var(--color-accent);font-weight:600!important}.nav-link:focus-visible{outline-color:var(--color-accent);outline-offset:-2px}.error-content h1{margin-block-end:1rem}.error-content p{margin-inline:auto;padding-block-end:1rem}.error-content a{color:inherit;text-decoration:underline}
