:root{--standard-text: #1A1A1A;--always-white: #ffffff;--site-background: #eceff1;--content-background: #ffffff;--project-preview: #ffffff;--nav-background: #ffffff;--default-button: #ffffff;--active-nav: #dee8f3;--nav-border: transparent;--contact-border: #9c9c9c;--anchor-link: #76129e;--content-line: #666666;--code-bg: #f3f3f3;--toggle-thumb: #ffffff;--toggle-track: #ccc;--tech-stack-section: #eeeeee;--tech-stack-border: #000000;--hover-nav-text: #eef2f6;--hover-default-button: #f5f5f5;--hover-project-preview: #f5f5f5;--hover-anchor-link: #9213a3}[data-theme=dark]{--standard-text: #ffffff;--site-background: #111111;--content-background: #1D1D1D;--project-preview: #222222;--nav-background: #222222;--default-button: #444444;--active-nav: #111111;--nav-border: #555555;--project-img-border: #9c9c9c;--anchor-link: #83b1e7;--content-line: #444444;--code-bg: #353535;--toggle-thumb: #000000;--toggle-track: #4d4d4d;--tech-stack-section: #222933;--tech-stack-border: #0059ff;--hover-nav-text: #1A1A1A;--hover-default-button: #555555;--hover-project-preview: #333333;--hover-anchor-link: #a0c0e5}@media (max-width: 640px){:root{--content-background: var(--site-background);--site-font-size: 12px;--content-width: 90%;--content-padding: 0 1rem;--nav-link-gap: .75rem;--name-header-size: 4rem;--home-desc-width: 85%;--full-contact-button-visibility: none;--contact-button-icon-visibility: flex;--home-contact-margin-top: 1rem;--home-contact-button-gap: 3rem;--main-page-header-size: 3rem;--main-page-header-align: center;--main-page-grid-columns: 1fr;--experience-header-flex-direction: column;--project-desc-size: 1.125rem;--project-date-size: 1.125rem;--desktop-resume-button-display: none;--mobile-resume-button-display: flex;--detail-page-header-size: 3rem;--text-content-padding: .3rem .5rem;--text-page-header-size: 2rem;--text-body-max-img-width: 100%;--text-content-bg-shadow: none;--text-content-p-size: 1.2rem;--text-content-code-size: 1rem;--text-content-h3-size: 1.3rem}}@media (min-width: 641px){:root{--site-font-size: 13px;--content-width: 80%;--nav-link-gap: 2rem;--name-header-size: 5rem;--home-desc-width: 80%;--full-contact-button-visibility: none;--contact-button-icon-visibility: flex;--home-contact-margin-top: 1.5rem;--home-contact-button-gap: 3.75rem;--main-page-header-size: 3rem;--main-page-header-align: left;--main-page-grid-columns: repeat(2, 1fr);--experience-header-flex-direction: row;--project-desc-size: 1rem;--project-date-size: 1rem;--desktop-resume-button-display: none;--mobile-resume-button-display: flex;--text-content-padding: 3rem 5rem;--text-page-header-size: 3rem;--text-body-max-img-width: 100%;--text-content-bg-shadow: 0 2px 8px rgba(0, 0, 0, .1);--text-content-p-size: 1.15rem;--text-content-code-size: .95rem;--text-content-h3-size: 1.125rem}}@media (min-width: 1024px){:root{--site-font-size: 14px;--content-width: 70%;--name-header-size: 6rem;--home-desc-width: 65%;--full-contact-button-visibility: flex;--contact-button-icon-visibility: none;--home-contact-margin-top: 3rem;--main-page-header-size: 3rem;--main-page-header-align: left;--desktop-resume-button-display: flex;--mobile-resume-button-display: none;--text-content-padding: 3rem 5rem;--text-body-max-img-width: 90%;--text-content-h3-size: 1.25rem}}@media (min-width: 1280px){:root{--site-font-size: 16px;--content-width: 60%;--home-desc-width: 60%;--main-page-header-size: 3rem;--main-page-header-align: left;--text-content-padding: 3rem 5rem;--text-page-header-size: 3rem;--text-body-max-img-width: 80%;--text-content-h3-size: 1.25rem}}@media (min-width: 2560px){:root{--site-font-size: 18px;--content-width: 50%;--home-desc-width: 45%;--main-page-header-size: 4rem;--main-page-header-align: left;--text-content-padding: 3rem 5rem;--text-page-header-size: 4rem;--text-body-max-img-width: 80%;--text-content-h3-size: 1.25rem}}.home-page{display:flex;flex-direction:column;height:70vh}.home-container{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.name-header{font-size:var(--name-header-size);margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.1875),0 0 10px rgba(0,0,0,.15),3px 5px 20px rgba(0,0,0,.1125),0 0 12px rgba(255,255,255,.45)}[data-theme=dark] .name-header{text-shadow:0 0 6px rgb(255 255 255 / 40%),0 0 10px rgb(255 255 255 / 20%)}.name-desc{font-size:1.3rem;width:var(--home-desc-width);text-align:center;font-weight:600;opacity:0;text-shadow:1px 1px 2px rgba(0,0,0,.12),0 0 4px rgba(0,0,0,.1),0 0 6px rgba(255,255,255,.4)}[data-theme=dark] .name-desc{text-shadow:0 0 3px rgb(255 255 255 / 40%),0 0 5px rgb(255 255 255 / 20%)}.contact-button-container{margin-top:var(--home-contact-margin-top);display:flex;gap:var(--home-contact-button-gap);flex-wrap:wrap;align-items:center;justify-content:center}.gmail-image{height:1.563rem}.linkedin-image{height:1.5rem;border-radius:.25rem}.yt-image{height:1.25rem}@keyframes flyInLeft{0%{opacity:0;transform:translate(-100px)}to{opacity:1;transform:translate(0)}}@keyframes flyInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes flyInUp{0%{opacity:0;transform:translateY(200px)}to{opacity:1;transform:translateY(0)}}.fly-in-left{animation:flyInLeft .6s ease-out forwards}.fly-in-right{animation:flyInRight .6s ease-out forwards;animation-delay:.3s}.fly-in-bottom-1{animation:flyInUp .3s ease-out forwards;animation-delay:.75s}.fly-in-bottom-2{animation:flyInUp .3s ease-out forwards;animation-delay:.9s}.fly-in-bottom-3{animation:flyInUp .3s ease-out forwards;animation-delay:1.05s}.navbar{transition:color .2s ease,background-color .2s ease,border-color .2s ease;background-color:var(--nav-background);color:var(--standard-text);height:4rem;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem;border-left:.075rem solid var(--nav-border);border-right:.075rem solid var(--nav-border);border-bottom:.075rem solid var(--nav-border)}.nav-links{width:var(--content-width);display:flex;list-style:none;padding:0;margin:0;font-size:1.125rem;font-weight:700;gap:var(--nav-link-gap)}.nav-links li{text-align:center;cursor:pointer}.nav-link-text{padding:.25rem 1rem;border-radius:1rem;display:inline-block}.nav-link-text:hover{background-color:var(--hover-nav-text)}.nav-links a{text-decoration:none;color:inherit}.active-page{transition:background-color .2s ease;background-color:var(--active-nav)!important}.jm-logo{height:2rem;align-self:center;display:block;transition:transform .2s ease}.jm-logo:hover{transform:scale(1.1)}#dark-mode-item{margin-left:auto}.dark-mode-switch{position:relative;display:inline-block;width:3.59375rem;height:2.0125rem;align-self:center}.dark-mode-switch input{opacity:0;width:0;height:0}.dark-mode-switch .slider{position:absolute;inset:0;cursor:pointer;background-color:var(--toggle-track);border-radius:34px;transition:background-color .2s ease}.dark-mode-switch .slider img{position:absolute;left:.21625rem;top:.21625rem;width:1.58125rem;height:1.58125rem;border-radius:50%;background-color:var(--toggle-thumb);box-shadow:0 .071875rem .215625rem #0000004d;transition:transform .3s ease,background-color .3s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;display:none}.dark-mode-switch .slider img[src]{display:block}.dark-mode-switch input:checked~.slider img{transform:translate(1.58125rem)}.project-image{height:5rem;margin-bottom:.75rem;border-radius:.5rem}.project-preview-header{transition:color .2s ease,background-color .2s ease;padding:0;margin:0;font-size:1.8rem}.project-preview-desc{font-size:var(--project-desc-size)}.project-grid{display:grid;grid-template-columns:var(--main-page-grid-columns);gap:2rem}.project-preview-container{transition:color .2s ease,background-color .2s ease,border .2s ease;background-color:var(--project-preview);padding:1.5rem;border-radius:.5rem;border:2px solid var(--hover-project-preview);text-align:center;min-height:8rem;cursor:pointer;box-shadow:0 2px 8px #0000001a;opacity:0}.project-preview-container:hover{background-color:var(--hover-project-preview)}.project-contact-btn{margin-left:1rem}@keyframes mainFlyInUp{0%{opacity:0;transform:translateY(200px)}to{opacity:1;transform:translateY(0)}}.main-fly-in-bottom{animation:mainFlyInUp .4s ease-out forwards}.main-fly-in-bottom-1{animation:mainFlyInUp .4s ease-out forwards;animation-delay:.25s}.main-fly-in-bottom-2{animation:mainFlyInUp .4s ease-out forwards;animation-delay:.4s}.main-fly-in-bottom-3{animation:mainFlyInUp .4s ease-out forwards;animation-delay:.55s}.main-fly-in-bottom-4{animation:mainFlyInUp .4s ease-out forwards;animation-delay:.7s}.main-fly-in-bottom-5{animation:mainFlyInUp .4s ease-out forwards;animation-delay:.85s}.main-fly-in-bottom-6{animation:mainFlyInUp .4s ease-out forwards;animation-delay:1s}.header-container{display:flex;flex-direction:var(--experience-header-flex-direction);flex-wrap:wrap;align-items:center;justify-content:center}.exp-header{flex-grow:1}.view-resume-desktop{margin:1rem 0;display:var(--desktop-resume-button-display)!important}.view-resume-mobile{margin:1rem 0;display:var(--mobile-resume-button-display)!important}.exp-preview-container{padding:2rem;margin-top:1.5rem;transition:color .2s ease,background-color .2s ease,border .2s ease;background-color:var(--project-preview);border-radius:.5rem;border:2px solid var(--hover-project-preview);min-height:8rem;cursor:pointer;box-shadow:0 2px 8px #0000001a}.exp-preview-container:hover{background-color:var(--hover-project-preview)}.resume-breadcrumb-container{margin-bottom:1rem}.resume-content{margin-bottom:3rem!important}.resume-frame{width:100%;height:calc(100vh - 160px);border:none}.resume-actions{margin:.5rem 0 1rem}.experience-date{font-size:var(--project-date-size);font-style:italic;margin:0}.stewarts-img{border-radius:.75rem}.price-chopper-img{border:8px solid white;border-radius:.75rem;height:4.25rem!important}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.95rem}.breadcrumb-item{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;transition:color .2s ease;font-weight:700!important}.breadcrumb-sep{opacity:.6}.breadcrumb-current{transition:color .2s ease,background-color .2s ease;font-weight:600;color:var(--standard-text)}.breadcrumb a{transition:color .2s ease,background-color .2s ease;color:var(--anchor-link);text-decoration:none;font-weight:700}.breadcrumb a:hover{text-decoration:underline;cursor:pointer;color:var(--hover-anchor-link)}.badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:.375rem;font-size:.9rem;font-weight:700;line-height:1;white-space:nowrap;border:.0625rem solid #ffffff14;background:#ffffff0f}.techStack__heading{margin:0 0 .5rem;font-size:1.25rem;letter-spacing:.0125rem}.techStack__grid{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width: 43.75rem){.techStack__grid{grid-template-columns:1fr 1fr}}.techStack__section{transition:color .2s ease,background-color .2s ease,border .2s ease;background:var(--tech-stack-section);border:.0625rem solid var(--tech-stack-border);border-radius:.625rem;padding:.75rem;box-shadow:0 2px 8px #0000001a}.techStack__title{margin:0 0 .5rem;font-size:.95rem;font-weight:700;padding-bottom:.375rem}.techStack__badges{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.vite{background:#646cff;color:#fff}.react{background:#61dafb;color:#0b0f14}.ts{background:#3178c6;color:#fff}.tailwind{background:#06b6d4;color:#051923}.twig{background:#ff7f00;color:#fff}.vue{background:#42b883;color:#fff}.javascript{background:#f7df1e;color:#000}.go{background:#00add8;color:#032027}.php{background:#777bb3;color:#fff}.python{background:#3776ab;color:#ffdf76}.postgres{background:#336791;color:#fff}.redis{background:#d82c20;color:#fff}.docker{background:#0db7ed;color:#03121a}.digitalocean{background:#0080ff;color:#fff}.route53{background:#f90;color:#211a00}.nginx{background:#009639;color:#00170a}.certbot{background:#2dce89;color:#041711}.eslint{background:#4b32c3;color:#fff}.stylelint{background:#263238;color:#e6f1f5}.prettier{background:#f7b93e;color:#1a1400}.cypress{background:#2e2e2e;color:#fff}.golangci,.gofmt,.gotest{background:#00add8;color:#032027}.coming-soon-container{transition:color .2s ease,background-color .2s ease,border-color .2s ease;border:2px solid #ffa500;border-radius:.5rem;padding:1rem 2rem;background-color:#ffa50060;margin:1.25rem 0;align-items:center;justify-content:center;display:flex}.coming-soon-title{transition:color .2s ease;color:var(--standard-text);font-weight:700;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;margin:0}.text-page-header-row{display:flex;align-items:center;margin-bottom:1rem}.text-page-header{font-size:var(--text-page-header-size);flex-grow:1;margin:0}#text-body h2{display:block;margin-bottom:.5rem;font-size:1.5rem;font-weight:700;unicode-bidi:isolate}#text-body h3{margin:0;margin-top:.5rem;margin-bottom:.25rem;font-size:var(--text-content-h3-size)!important}#text-body h4{margin:0;margin-top:.5rem;margin-bottom:.25rem;font-size:var(--text-content-h4-size)}#text-body p{margin-top:0!important;margin-bottom:2rem;font-size:var(--text-content-p-size);line-height:1.55rem;letter-spacing:.01em}#content-img-container{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-bottom:1rem}#text-body img{border-radius:1rem;border:2px solid var(--project-img-border);box-shadow:0 2px 8px #0000001a;margin-bottom:1rem;max-width:var(--text-body-max-img-width);height:auto}#content-img-container p{font-style:italic;text-align:center;width:70%}#text-body hr{margin:0;margin:3rem 0;border:0;height:1px;background:var(--content-line);transition:color .2s ease,background-color .2s ease}#text-body a{text-decoration:none;color:var(--anchor-link);cursor:pointer}#text-body a:hover{text-decoration:underline;color:var(--hover-anchor-link)}#text-body ul{margin-top:.5rem;margin-bottom:2rem}#text-body code{font-size:var(--text-content-code-size);font-weight:600;background-color:var(--code-bg);padding:.1rem .4rem;border-radius:4px;font-family:monospace;transition:color .2s ease,background-color .2s ease}#security-list p{margin:0;margin:.25rem 0}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--nav-h: 6rem;color-scheme:light dark;color:var(--standard-text);background-color:var(--site-background)!important;transition:color .2s ease,background-color .2s ease;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{font-size:var(--site-font-size);scrollbar-gutter:stable both-edges}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#5c5c5c80;border-radius:10px;border:2px solid transparent;background-clip:content-box}.content{width:var(--content-width);margin:0 auto;flex-grow:1}.text-content{transition:color .2s ease,background-color .2s ease,border-color .2s ease;box-shadow:var(--text-content-bg-shadow);width:var(--content-width);margin:0 auto;flex-grow:1;background-color:var(--content-background);padding:var(--text-content-padding);border-radius:2rem}html,body{margin:0;padding:0;display:flex;flex-direction:column}.page{min-height:calc(100dvh - var(--nav-h));display:flex;flex-direction:column}.guide-footer{margin-top:4rem;position:relative;height:4.5rem}.left-guide-button{left:2rem}.right-guide-button{right:2rem}.left-guide-button,.right-guide-button{position:absolute;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease;bottom:2.25rem;height:2.25rem;width:auto;padding:1rem;font-size:1rem;font-weight:700;background-color:var(--default-button);color:var(--standard-text);border:2px solid var(--hover-default-button);border-radius:.375rem;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:center;align-items:center}.left-guide-button:hover,.right-guide-button:hover{background-color:var(--hover-default-button);transform:scale(1.05)}.main-page-header{font-size:var(--main-page-header-size);text-align:var(--main-page-header-align);margin:0;flex-grow:1;text-shadow:1px 1px 2px rgba(0,0,0,.12),0 0 4px rgba(0,0,0,.1),0 0 6px rgba(255,255,255,.4)}[data-theme=dark] .main-page-header{text-shadow:0 0 3px rgb(255 255 255 / 40%),0 0 5px rgb(255 255 255 / 20%)}.main-page-desc{text-align:var(--main-page-header-align);transition:color .2s ease,background-color .2s ease;font-size:1rem;font-weight:700;font-style:italic;margin:0;margin-bottom:2rem}.left-arrow-spacer{margin-right:.5rem}.right-arrow-spacer{margin-left:.5rem}.contact-button{transition:color .2s ease,background-color .2s ease;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;position:relative;background-color:var(--default-button);color:var(--standard-text);height:2.5rem;padding:.825rem 1.1rem;font-size:1.375rem;gap:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:1rem;border:none;border-radius:.4rem;overflow:hidden;z-index:0;cursor:pointer;box-shadow:0 2px 8px #0000001a}.contact-button:before,.contact-button:after{content:"";position:absolute;width:0;height:0;border:2px solid var(--contact-border);border-radius:.375rem;pointer-events:none;transition:width .3s ease,height .3s ease;z-index:1}.contact-button:before{top:0;left:0;border-right:none;border-bottom:none}.contact-button:after{bottom:0;right:0;border-left:none;border-top:none}.contact-button:hover:before{width:100%;height:100%}.contact-button:hover:after{width:100%;height:100%}.contact-image{height:1.5rem}.home-contact-button{display:var(--full-contact-button-visibility);opacity:0}.mobile-home-contact-button{display:var(--contact-button-icon-visibility);opacity:0}.github-image-wrapper{position:relative;height:1.563rem;width:1.563rem}.github-image{position:absolute;top:0;left:0;height:100%;width:100%;transition:opacity .2s ease}.github-image.dark,[data-theme=dark] .github-image.light{opacity:0}[data-theme=dark] .github-image.dark{opacity:1}.no-margin{margin:0!important}
