@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Serif+Text:ital@0;1&family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:100% / inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}button{background-color:inherit;border:none;cursor:pointer}:root{--content-max-width: 768px;--padding-inline: clamp(1rem, .5856rem + 1.768vw, 2rem)}.primary-layout{display:grid;grid-template-columns:minmax(var(--padding-inline),1fr) min(var(--content-max-width, 1280px),calc(100% - var(--padding-inline) * 2)) minmax(var(--padding-inline),1fr)}.primary-layout>*{grid-column:2;width:100%}.primary-layout>section:first-of-type{margin-top:1rem}.primary-layout>.full-width{grid-column:1 / -1;width:100%}@font-face{font-family:JetBrains Mono;src:url(./JetBrainsMono-Regular.BQaDgvhP.woff2) format("woff2");font-weight:400;font-style:normal;font-variant-ligatures:contextual}@property --bg-dark{syntax: "<color>"; initial-value: #1C1918; inherits: false;}@property --txt-dark{syntax: "<color>"; initial-value: #E9F0EE; inherits: false;}@property --bdr-dark{syntax: "<color>"; initial-value: #7B8186; inherits: false;}@property --pri-dark{syntax: "<color>"; initial-value: #302D2C; inherits: false;}@property --pri-comp-dark{syntax: "<color>"; initial-value: #474544; inherits: true;}@property --bg-light{syntax: "<color>"; initial-value: #F5F5F5; inherits: false;}@property --txt-light{syntax: "<color>"; initial-value: #1C1918; inherits: false;}@property --bdr-light{syntax: "<color>"; initial-value: #7B8186; inherits: false;}@property --pri-light{syntax: "<color>"; initial-value: #4E4744; inherits: false;}@property --pri-comp-light{syntax: "<color>"; initial-value: #625B59; inherits: true;}@property --bg-clr{syntax: "<color>"; initial-value: #1C1918; inherits: true;}@property --txt-clr{syntax: "<color>"; initial-value: #E9F0EE; inherits: true;}@property --bdr-clr{syntax: "<color>"; initial-value: #7B8186; inherits: true;}@property --pri-clr{syntax: "<color>"; initial-value: #302D2C; inherits: true;}@property --pri-comp{syntax: "<color>"; initial-value: #474544; inherits: true;}.hidden{display:none}html{scroll-behavior:smooth}body{background-color:var(--bg-clr);color:var(--txt-clr);font-family:Fira Sans,sans-serif}body[data-theme=light]{--bg-clr: var(--bg-light);--txt-clr: var(--txt-light);--bdr-clr: var(--bdr-light);--pri-clr: var(--pri-light);--pri-comp: var(--pri-comp-light)}body[data-theme=dark]{--bg-clr: var(--bg-dark);--txt-clr: var(--txt-dark);--bdr-clr: var(--bdr-dark);--pri-clr: var(--pri-dark);--pri-comp: var(--pri-comp-dark)}main{row-gap:2rem}h1,h2{font-family:"DM Serif Display",serif;font-weight:400}h3,h4{font-family:"DM Serif Text",serif;font-weight:400}h1{font-size:2.625rem;font-size:clamp(2.5rem,.509vw + .149rem,2.625rem)}h3{font-size:1.125rem;font-weight:400}p{font-size:.875rem;text-wrap:stable;text-wrap:pretty}button{font-family:Fira Sans,sans-serif;font-size:1rem;color:var(--txt-clr)}a{color:var(--txt-clr);text-decoration:none;--stroke-clr: var(--txt-clr)}.date{font-size:.75rem;font-weight:300}.btn{--btn-bdr-clr: var(--bdr-clr);background-color:var(--bg-clr);border-radius:.25rem;border:.5px solid var(--btn-bdr-clr);color:var(--txt-clr);padding:.5rem;display:flex;align-items:center;gap:.25rem;box-sizing:border-box;width:fit-content;position:relative;transition:border-color .2s ease-in-out,translate .2s ease-in-out}.btn.primary{background-color:var(--pri-clr);--btn-bdr-clr: transparent;color:var(--txt-dark)}.btn.vibrant{position:relative;background:linear-gradient(90deg,var(--pri-clr),var(--pri-comp),var(--bdr-clr),var(--pri-comp),var(--pri-clr));background-size:200% auto;--btn-bdr-clr: transparent;animation:gradientShift 5s linear infinite;overflow:hidden;color:var(--txt-dark)}.btn.icon{border:none}.btn.chat-btn{background-color:var(--pri-clr);color:var(--txt-dark);position:fixed;bottom:1rem;right:max(1rem,var(--padding-inline));transition:bottom .5s ease,border-color .2s ease-in-out,translate .2s ease-in-out;box-sizing:border-box}@media (max-width: 915px){.btn.chat-btn.bottom{bottom:4rem}}.btn.submit{display:grid;grid-template-columns:2rem;grid-template-rows:2rem;place-items:center;--padding: .25rem;aspect-ratio:1;width:2rem;height:2rem;justify-content:center;background-color:var(--pri-clr);color:var(--txt-clr);padding:0}.btn.submit svg{transform:translate(-.0625rem)}.btn.submit[disabled]{background-color:transparent;color:var(--bdr-clr)}.btn:not([disabled]):hover{translate:0 -.125rem;--btn-bdr-clr: var(--bdr-clr);--btn-bdr-clr: color-mix(in srgb, var(--bdr-clr) 50%, var(--txt-clr) 50%)}.btn:not([disabled]):focus{outline:2px solid color-mix(in srgb,var(--txt-clr) 50%,var(--pri-clr) 50%)}@keyframes gradientShift{to{background-position:200% center}}nav{display:flex;justify-content:space-between;align-items:center;padding-block:1rem}nav ul{display:flex;gap:1rem}nav ul.links{gap:2rem}nav ul.links a.active{font-weight:700}nav ul.icons li{color:color-mix(in srgb,var(--icon-clr) 75%,transparent 25%)}nav ul.icons li:hover{color:var(--icon-clr);cursor:pointer}#hero{display:grid;grid-template-areas:"about profile" "cta cta";grid-template-columns:1fr auto;grid-template-rows:1fr auto;column-gap:2rem}#hero .about{grid-area:about;display:flex;flex-direction:column;gap:.25rem}#hero .about .wave{display:inline-block;animation-name:wave;animation-duration:1s;animation-iteration-count:infinite;animation-play-state:paused;animation-timing-function:linear;transform-origin:bottom right;translate:-.5rem -.125rem;--deg: 5}#hero .about .wave:hover{animation-play-state:running}#hero .about p{line-height:1.25}@media (max-width: 377px){#hero .about p img{width:1.375rem}}#hero .about p strong:has(svg){display:flex;align-items:flex-end;gap:.3625rem}#hero .about .chat-arrow{transform:translate(.25rem,.25rem)}#hero .profile-pic{border-radius:50%;border:1px solid var(--bdr-clr);grid-area:profile}#hero .call-to-action{grid-area:cta;display:flex;flex-wrap:wrap;gap:clamp(.875rem,.509vw + .047rem,1rem);align-items:center}#hero .call-to-action .icons{display:flex;align-items:center;gap:clamp(.875rem,.509vw + .047rem,1rem)}@media (max-width: 570px){#hero{grid-template-areas:"profile" "about" "cta";grid-template-columns:1fr;grid-template-rows:repeat(3,auto);gap:1rem}}@keyframes wave{0%,to{transform:rotate(0);rotate:0deg}25%{transform:rotate(calc(var(--deg) * 1deg))}75%{transform:rotate(calc(var(--deg) * -1deg))}}.logo-frame{display:grid;place-content:center;width:4rem;height:calc(4rem - var(--padding-top));border:1px solid var(--bdr-clr);border-radius:50%;padding-top:var(--padding-top)}#experience{display:grid;gap:.75rem}#experience .toggle{--padding: .25rem;--true-height: 2.5rem;--base-height: calc(var(--true-height) - var(--padding) * 2);position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--padding);padding:var(--padding);background-color:var(--pri-clr);border-radius:.25rem;height:var(--base-height)}#experience .toggle button,#experience .toggle div{height:100%;padding:0}#experience .toggle button{transition:color .2s ease-in-out;background-color:transparent;position:relative;z-index:1;color:var(--txt-dark)}#experience .toggle .active{color:var(--txt-clr);border-radius:.25rem}#experience .toggle .slider{position:absolute;width:calc(50% - var(--padding) * 2);height:calc(100% - var(--padding) * 2);background-color:var(--bg-clr);border-radius:.25rem;transition:transform .2s ease-in-out;top:calc(50% - 1px);top:-webkit-calc(50%);left:var(--padding);translate:0 -50%}#experience .toggle .slider.work{transform:translate(0)}#experience .toggle .slider.education{transform:translate(calc(100% + var(--padding) * 2))}#experience .work-experience,#experience .education-experience{display:grid;gap:1rem;padding:1rem;border-radius:.25rem;border:.5px solid var(--bdr-clr)}#experience .work-experience .exp-item,#experience .education-experience .exp-item{font-size:.875rem;line-height:1.25;display:grid;grid-template-columns:auto 1fr;gap:1rem}#experience .work-experience .exp-item .company-logo,#experience .education-experience .exp-item .company-logo{display:grid;justify-content:center;margin-top:1.25rem}#experience .work-experience .exp-item .subtitle,#experience .education-experience .exp-item .subtitle{font-style:italic}#experience .work-experience .exp-item li,#experience .education-experience .exp-item li{list-style-type:disc;margin-left:1.5rem}#blog{display:grid;gap:.5rem}#blog .header{display:flex;justify-content:space-between;align-items:center}#blog .header a{display:flex;align-items:center;gap:.25rem}#blog .posts{display:grid}#blog .posts .post{display:grid;gap:.5rem;border:.5px solid var(--bdr-clr);padding:1rem}#blog .posts .post:first-of-type{border-radius:.25rem .25rem 0 0;border-bottom:0}#blog .posts .post:last-of-type{border-radius:0 0 .25rem .25rem}#blog .posts .post:nth-of-type(2):last-of-type{border-top:.5px solid var(--bdr-clr)}#blog .posts .post:not(:first-of-type):not(:last-of-type){border-radius:0;border-bottom:0}#blog .posts .post:first-of-type:last-of-type{border-radius:.25rem;border:.5px solid var(--bdr-clr)}hgroup{display:flex;justify-content:space-between;align-items:top;gap:.5rem}hgroup .title{display:grid;gap:.5rem}hgroup .title h1{text-transform:capitalize}hgroup .date{margin-top:.5rem}article.blog-post{--max-width: clamp(20.9375rem, 110.178vw - .305rem, 48rem);max-width:var(--max-width);margin-inline:auto;display:grid;gap:.5rem}article.blog-post>*{max-width:var(--max-width)}article.blog-post h2:first-of-type{display:none}article.blog-post .tags{display:flex;flex-wrap:wrap;gap:.5rem}article.blog-post .tags .tag{padding:.25rem .5rem;border:.5px solid var(--bdr-clr);border-radius:.25rem;font-size:.75rem;color:var(--bdr-clr)}.prose{display:grid;gap:.5rem;margin-top:.25rem;font-size:.875rem;max-width:100%;word-break:break-word;overflow-wrap:break-word}.prose>*{box-sizing:border-box;max-width:clamp(20.9375rem,110.178vw - .305rem,48rem)}.prose h2:not(:first-of-type){margin-top:1rem}.prose h2{font-size:xx-large}.prose h3{font-size:x-large;margin-top:.75rem}.prose p{line-height:1.33;font-size:large}.prose ol{list-style-type:decimal;margin-left:1rem;line-height:1.25;font-size:large}.prose ul{list-style-type:disc;margin-left:1rem;line-height:1.33;font-size:large}.back{display:flex;align-items:center;font-size:.75rem}code{font-family:JetBrains Mono,monospace;padding:.0625rem .25rem;background-color:var(--pri-clr);border-radius:.25rem;font-size:large;color:var(--txt-dark);display:inline}code:has(span~span){display:block;line-height:1.5;padding-block:.5rem;font-size:clamp(.51rem,2.036vw + .001rem,1rem);overflow-x:auto;white-space:pre}code:has(span~span) span{display:inline}#projects{display:grid;gap:.5rem}#projects .header{display:flex;justify-content:space-between;align-items:center}#projects .header a{display:flex;align-items:center;gap:.25rem}#projects .projects{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15.3125rem,1fr))}@supports not (--webkit-device-pixel-ratio: 1){#projects .projects{container:projects / inline-size}}#projects .projects .project{padding:1rem;border-radius:.25rem;border:1px solid var(--bdr-dark);gap:.5rem;display:grid}#projects .projects .project img{width:100%;display:block;height:auto}#projects .projects .project .proj-header{display:flex;justify-content:space-between;align-items:center}#projects .projects .project .tech{display:flex;gap:.625rem;margin-block:1rem}#projects .projects .project .tech .tech-icon{position:relative;transform:translateY(0);transition:transform .2s ease-in-out}#projects .projects .project .tech .tech-icon .tooltip{background-color:var(--pri-clr);padding:.25rem .5rem;position:absolute;border-radius:.25rem;top:-1.25rem;left:1.25rem;opacity:0;z-index:1;transition:opacity .3s ease-in-out}#projects .projects .project .tech .tech-icon:hover{transform:translateY(-.125rem)}#projects .projects .project .tech .tech-icon:hover .tooltip{opacity:1}#projects .projects .project .proj-links{display:flex;gap:.5rem}@container projects (31.625rem < inline-size < 47.9375rem){#projects .projects .project:first-child{display:grid;grid-column:span 2;grid-template-columns:repeat(2,1fr);column-gap:1rem;row-gap:0;grid-template-rows:repeat(3,1fr) auto}#projects .projects .project:first-child>img{grid-column:2;grid-row:1 / -1;place-self:center}}@supports (--webkit-device-pixel-ratio: 1){@media (34rem < width < 50.875rem){#projects .projects .project:first-child{grid-column:span 2;grid-template-columns:1fr 1fr}#projects .projects .project:first-child>img{grid-column:2;grid-row:1 / span 4;margin:0}#projects .projects .project:first-child>div{grid-row:auto;grid-column:1}}}.chatbot{--width: 20rem;z-index:2;position:fixed;bottom:1rem;right:var(--padding-inline);width:var(--width);background-color:var(--bg-clr);height:4.5rem;color:inherit;border:.5px solid var(--bdr-clr);border-radius:.25rem;padding:1rem;box-sizing:border-box;display:grid;gap:.625rem;transition:height .5s ease,bottom .6s ease,box-shadow .5s ease,right .5s ease;overflow:hidden;@keyframes typing{0%{transform:scale(1);opacity:.4}50%{transform:scale(1.4);opacity:1}to{transform:scale(1);opacity:.4}}}@media (max-width: 91.875rem){.chatbot.bottom{bottom:4.5rem}}@media (max-width: 34.125rem){.chatbot.bottom{bottom:6.5rem}}@media (max-width: 27rem){.chatbot{--right: calc((100% - var(--width)) / 2)}.chatbot.chat-open{right:var(--right)}}.chatbot.chat-open{height:25rem;height:calc-size(auto);box-shadow:0 0 2rem color-mix(in srgb,var(--txt-clr) 33%,transparent)}.chatbot:not(.chat-open){cursor:pointer}.chatbot .sml{font-size:.75rem;font-weight:400}.chatbot .header{-webkit-user-select:none;user-select:none}.chatbot .header>div{display:flex;justify-content:space-between;align-items:center}.chatbot .header>div .close,.chatbot .header>div .open{cursor:pointer}.chatbot .header .support:before{content:"";display:inline-block;width:.375rem;height:.375rem;border-radius:50%;background-color:#50e350;border:none;margin-right:.25rem;margin-bottom:.06125rem}.chatbot .chat{display:flex;flex-direction:column;gap:.625rem;height:17.25rem;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none;scroll-behavior:smooth}.chatbot .chat ::-webkit-scrollbar{display:none}.chatbot .chat .intro{display:flex;flex-direction:column;height:100%;justify-content:center;align-items:center;gap:.625rem;text-align:center}.chatbot .chat .msg{font-size:.75rem;padding:.5rem;font-weight:300}.chatbot .chat .msg.bot-msg{align-self:flex-start;display:flex;gap:.625rem}.chatbot .chat .msg.bot-msg>div:has(svg){width:1rem}.chatbot .chat .msg.bot-msg>div:has(svg) svg{translate:0 -.15625rem}.chatbot .chat .msg.bot-msg span{display:flex;align-items:center;min-height:1rem;line-height:1.25}.chatbot .chat .msg.user-msg{align-self:flex-end;background-color:var(--pri-clr);color:var(--txt-dark);border-radius:.25rem}.chatbot .typing-animation .dots{position:relative;display:inline-block;width:.25rem;height:.25rem;border-radius:50%;background-color:var(--txt-clr);animation:typing 1.5s infinite steps(3);margin-left:.25rem}.chatbot .typing-animation .dots:before,.chatbot .typing-animation .dots:after{content:"";display:inline-block;position:absolute;top:0;left:-.5rem;width:.25rem;height:.25rem;border-radius:50%;background-color:var(--txt-clr)}.chatbot .typing-animation .dots:after{left:.5rem}.chatbot .interface{display:flex;gap:.5rem;align-items:center}.chatbot .interface .input{--padding: .5rem;--max-height: 2rem;resize:none;width:100%;height:calc(var(--max-height) - var(--padding) * 2);background:transparent;color:inherit;font-family:Fira Sans,sans-serif;font-size:.75rem;font-weight:300;border:none;border:.5px solid var(--bdr-clr);border-radius:.25rem;outline:none;padding:var(--padding);overflow:hidden}.chatbot::backdrop{background-color:#1c19187f;-webkit-backdrop-filter:blur(.125rem);backdrop-filter:blur(.125rem)}footer{margin-top:4rem}footer .footer{margin-block:2rem;display:flex;justify-content:space-between;align-items:center;font-weight:300}footer .footer a{font-weight:400}footer .footer .icons{display:flex;align-items:center;gap:1.5rem}@media (max-width: 544px){.footer{flex-direction:column-reverse;gap:1rem}}
