#content{width:var(--content-width);margin:0 auto 4rem;position:relative}#page-shell{grid-template-columns:auto 1fr;align-items:start;display:grid}@media (max-width:992px){#page-shell{grid-template-rows:1fr auto;grid-template-columns:1fr}}
#page-header{z-index:100;height:var(--header-height);width:var(--content-width);flex-direction:row;justify-content:flex-end;align-items:center;margin:0 auto;display:flex;position:sticky;top:0}#page-header nav{flex-direction:row;align-items:center;gap:1rem;display:flex;position:relative}#menu-button{display:none}.nav-links{flex-direction:row;gap:1rem;display:flex}.nav-item{color:var(--text);font-size:1.25rem;text-decoration:none;position:relative}.nav-item:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.nav-item:after{content:"";background-color:var(--primary);transform-origin:0 100%;width:100%;height:3px;transition:transform .2s ease-out;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-item:hover:after{transform:scaleX(1)}#skip-link a{width:1px;height:1px;margin-right:1rem;position:absolute;top:auto;left:-10000px;overflow:hidden}#skip-link a:focus{width:auto;height:auto;position:static}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:768px){#page-header{justify-content:flex-end}#menu-button{color:var(--primary);justify-content:center;align-items:center;display:inline-flex}#menu-button svg{width:2rem;height:2rem}.nav-links{background:var(--accent);border:1px solid var(--border);z-index:200;border-radius:.5rem;flex-direction:column;gap:.2rem;min-width:14rem;padding:.75rem;display:none;position:absolute;top:calc(100% + .5rem);right:0}.nav-links.open{display:flex}.nav-item{width:100%;font-size:var(--body-lg);border-radius:.35rem;padding:.45rem .5rem}.nav-item:hover{background:rgb(from var(--primary) r g b / .1)}.nav-item:after{display:none}}
#footer{text-align:center;width:100%;font-size:var(--body-sm);color:var(--text);flex-wrap:wrap;justify-content:center;align-self:center;align-items:center;display:flex}.copyright{flex:0 0 100%;margin-bottom:.5rem}#footer svg{flex:1;width:25px;height:25px;margin:0 5px;display:none}@media (max-width:992px){#footer svg{width:25px;height:25px;display:inline-block}}
#about{min-height:calc(100svh - var(--header-height));flex-direction:column;justify-content:center;display:flex}.about-header{flex-direction:column;gap:.35rem;margin-bottom:1.25rem;display:flex}#introduction{font-size:var(--h3);color:var(--primary);margin-left:var(--title-left-margin)}#about-heading{line-height:.95;font-size:clamp(3rem, 8vw, var(--h1));max-width:100%;margin:0;font-weight:400}.name{display:block}#title{font-size:var(--h2);color:var(--primary);max-width:min(65ch,60%);margin:0;font-weight:400}#description{font-size:var(--body-lg);max-inline-size:min(65ch,60%);margin-bottom:2rem}#contact-btn{border:1px solid var(--primary);width:fit-content;color:var(--primary);font-size:var(--button-text);border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;display:inline-flex;box-shadow:0 4px 4px #00000040}#contact-btn:hover{background:rgb(from var(--primary) r g b / .1)}#contact-btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:576px){#title{max-width:100%}}
#experience{--job-gap:.5rem;--experience-gap:5rem;--duration-gap:1rem;--duration-right-offset:2rem;--duration-line-width:5rem;--duration-line-height:2px;--duration-dot-size:12px;--experience-card-gap:.8rem;--experience-card-padding:1.5rem;--experience-card-radius:15px;--experience-connector-length:2.5rem;--experience-connector-dot-size:12px}@media (max-width:1200px){#experience{--duration-right-offset:1.5rem}}@media (max-width:992px){#experience{--duration-right-offset:1rem;--duration-line-width:3rem;--duration-dot-size:8px}}@media (max-width:768px){#experience{--duration-line-width:3rem;--experience-card-padding:1.25rem;--experience-connector-length:0;--experience-connector-dot-size:0}.experience-body:after,.experience-body:before{display:none}}@media (max-width:576px){#experience{--duration-gap:.6rem;--duration-right-offset:.5rem;--duration-line-width:2.25rem;--experience-card-padding:1rem;--experience-card-gap:.5rem}}#experience-list{gap:var(--experience-gap);flex-direction:column;display:flex}.job-card{gap:var(--job-gap);flex-direction:column;display:flex}.duration{align-self:flex-end;align-items:center;gap:var(--duration-gap);margin-right:var(--duration-right-offset);flex-flow:row;display:flex}.duration-line{width:var(--duration-line-width);height:var(--duration-line-height);background:var(--primary);display:inline-block;position:relative}.duration-line:after,.duration-line:before{content:"";width:var(--duration-dot-size);height:var(--duration-dot-size);border:2px solid var(--primary);background:var(--primary);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.duration-line:after{left:100%}.experience-body .company{color:rgb(from var(--text) r g b / .7)}.experience-body{gap:var(--experience-card-gap);border:2px solid var(--primary);border-radius:var(--experience-card-radius);padding:var(--experience-card-padding);flex-direction:column;display:flex;position:relative}.experience-body:before{content:"";width:var(--experience-connector-length);border-top:3px dashed var(--primary);position:absolute;top:50%;left:0;transform:translate(-100%,-50%)}.experience-body:after{content:"";top:50%;left:calc(var(--experience-connector-length) * -1);width:var(--experience-connector-dot-size);height:var(--experience-connector-dot-size);border:3px solid var(--primary);background:var(--primary);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}@media (max-width:1200px){#experience{padding-left:calc(var(--experience-connector-length) + (var(--experience-connector-dot-size) / 2) + .25rem)}}
#projects{--item-gap:.5rem;--project-gap:5rem;--project-card-gap:.8rem;--project-card-padding:1.5rem;--project-card-radius:15px;--project-connector-length:2.5rem;--project-connector-dot-size:12px}@media (max-width:768px){#projects{--project-card-padding:1.25rem;--project-connector-length:0;--project-connector-dot-size:0}.projects-card:after,.projects-card:before{display:none}}@media (max-width:576px){#projects{--project-card-padding:1rem;--project-card-gap:.5rem}}#projects-list{gap:var(--project-gap);flex-direction:column;display:flex}#projects-title{font-size:var(--h2);margin-bottom:var(--title-margin);margin-left:var(--title-left-margin)}.project-card{gap:var(--item-gap);flex-direction:column;display:flex}.project-card hr{border-color:var(--primary)}.project-card{gap:var(--project-card-gap);border:2px solid var(--primary);border-radius:var(--project-card-radius);padding:var(--project-card-padding);flex-direction:column;display:flex;position:relative}.project-card:before{content:"";width:var(--project-connector-length);border-top:3px dashed var(--primary);position:absolute;top:50%;left:0;transform:translate(-100%,-50%)}.project-card:after{content:"";top:50%;left:calc(var(--project-connector-length) * -1);width:var(--project-connector-dot-size);height:var(--project-connector-dot-size);border:3px solid var(--primary);background:var(--primary);position:absolute;transform:translate(-50%,-50%)rotate(45deg)}.project-link{border:1px solid var(--primary);color:var(--primary);background:0 0;border-radius:.5rem;place-self:end;padding:.5rem 1rem}.project-link:hover{background:rgb(from var(--primary) r g b / .3)}.technology-list{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.technology-item{font-size:var(--body-sm);color:var(--background);background:var(--text);border-radius:5px;padding:.25rem .5rem}.technology-list-container{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.2rem;margin-top:.5rem;display:flex}.show-more{height:fit-content}.expanded{transform:rotate(90deg)}@media (max-width:1200px){#projects{padding-left:calc(var(--project-connector-length) + (var(--project-connector-dot-size) / 2) + .25rem)}}
#contact-form{border:1px solid var(--primary);border-radius:8px;grid-template-rows:repeat(4,auto);grid-template-columns:1fr 1fr;gap:1.2rem;max-width:1100px;margin:0 1rem;padding:1.2rem;display:grid}#contact-title{margin-bottom:.5rem}#contact-description{margin-bottom:var(--title-margin);margin-left:var(--title-left-margin);max-inline-size:60%;color:var(--primary)}#name-group,#email-group{grid-row:1}#message-group{grid-column:1/span 2}#captcha-group{grid-column:1}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group input{background:var(--accent);border:1px solid var(--border);width:100%;color:var(--text);font-size:var(--body-sm);border-radius:4px;padding:.5rem;font-family:inherit}#contact-form textarea{border:1px solid var(--border);background:var(--accent);width:100%;color:var(--text);font-size:var(--body-sm);resize:vertical;border-radius:4px;min-height:8rem;max-height:18rem;padding:.5rem;font-family:inherit}#submit-group{grid-area:4/1/auto/span 2}.submit-btn{border:1px solid var(--primary);cursor:pointer;background:0 0;border-radius:4px;width:100%;padding:.5rem 1rem}.submit-btn:hover{background:rgb(from var(--primary) r g b / .3)}.captcha-error{color:var(--error);font-size:var(--body-sm);margin-top:.5rem}@media (max-width:576px){#contact-form{flex-direction:column;display:flex}#submit-group{flex-direction:column;grid-column:1;gap:.5rem;width:100%;display:flex}#contact-description{max-inline-size:80%;margin:1rem auto}}
#sidebar{width:fit-content;bottom:0;left:var(--sidebar-left-offset);flex-direction:column;justify-content:center;align-self:end;align-items:center;gap:10px;margin-bottom:-4rem;animation:1s ease-out forwards moveIn;display:flex;position:sticky}@keyframes moveIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}#sidebar svg{width:30px;height:30px}.vertical-line{background-color:var(--text);width:2px}.line-long{height:15rem;margin-top:4px}.line-short{height:5rem;margin-bottom:4px}@media (max-width:992px){#sidebar,.vertical-line{display:none}}
