@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&display=swap);html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background-color:#fffdf8;margin:0}:root{--color-ink:#1f2933;--color-ink-soft:#52606d;--color-brand:#1f6f78;--color-brand-strong:#15565d;--color-accent:#f1a94e;--color-surface:#fffdf8;--color-surface-2:#f6f5ef;--color-border:#d9e2ec;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--space-1:0.5rem;--space-2:0.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--shadow-soft:0 8px 24px #0f172a14;--shadow-raised:0 20px 55px #0f172a24}#root,body,html{background-color:#fffdf8;background-color:var(--color-surface);box-sizing:border-box;color:#1f2933;color:var(--color-ink);font-family:Manrope,sans-serif;height:100%;margin:0}html{scroll-padding-top:120px}body{font-size:1.0625rem;letter-spacing:.01em;line-height:1.6}.skip-link{background-color:#fff;border:2px solid #1f6f78;border:2px solid var(--color-brand);border-radius:10px;border-radius:var(--radius-sm);color:#1f2933;color:var(--color-ink);font-weight:700;left:.75rem;padding:.5rem .75rem;position:absolute;text-decoration:none;top:-3.2rem;z-index:2000}.skip-link:focus{top:.75rem}a{color:#1f6f78;color:var(--color-brand);transition:color .2s ease}a:hover{color:#15565d;color:var(--color-brand-strong)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #1f6f7873;outline-offset:2px}figcaption,input,label,li,p,textarea{color:#52606d;color:var(--color-ink-soft);font-size:1.0625rem;line-height:1.6}.btn-dark{background-color:#1f6f78;background-color:var(--color-brand)}.btn-dark,.btn-outline-dark{border-color:#1f6f78;border-color:var(--color-brand)}.btn-outline-dark{color:#1f6f78;color:var(--color-brand)}.btn-outline-dark:hover{background-color:#1f6f78;border-color:#1f6f78;color:#fff}.btn{transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-1px)}.project-detail-shell,.projects-shell{margin-inline:auto;width:min(1120px,94vw)}.project-detail-header,.projects-hero{margin-bottom:2rem;margin-bottom:var(--space-5);text-align:center}.projects-eyebrow{color:#1f6f78;color:var(--color-brand);font-size:.78rem;font-weight:800;letter-spacing:.12em;margin:0;text-transform:uppercase}.projects-intro{margin:0 auto;max-width:60ch}.projects-grid{grid-gap:1.5rem;grid-gap:var(--space-4);display:grid;gap:1.5rem;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.projects-cta-row{display:flex;justify-content:center;margin-top:2rem;margin-top:var(--space-5)}.project-preview-card{background:#fffdf8;background:var(--color-surface);border:1px solid #d9e2ec;border:1px solid var(--color-border);border-radius:16px;border-radius:var(--radius-md);margin:0;max-width:100%;overflow:hidden;padding-top:1rem;padding-top:var(--space-3);transition:transform .25s ease,box-shadow .25s ease;width:100%}.project-preview-card:hover{box-shadow:0 8px 24px #0f172a14;box-shadow:var(--shadow-soft);transform:translateY(-4px)}.project-preview-thumbnail-frame{align-items:center;border-bottom:1px solid #d9e2ec;border-bottom:1px solid var(--color-border);display:flex;justify-content:center;width:100%}.project-thumbnail{border-radius:0;height:240px;object-fit:cover;overflow:hidden;width:100%}.project-preview-description{min-height:190px}.project-preview-title{font-size:1.55rem;margin-bottom:.75rem;margin-bottom:var(--space-2)}.project-preview-actions{display:flex;flex-wrap:wrap;gap:.75rem;gap:var(--space-2);margin-top:1.5rem;margin-top:var(--space-4)}.project-preview-actions .btn{min-width:136px}.project-detail-card{background:#ffffffe0;border:1px solid #d9e2ec;border:1px solid var(--color-border);border-radius:24px;border-radius:var(--radius-lg);margin:1.5rem 0;margin:var(--space-4) 0}.project-detail-summary{color:#1f2933;color:var(--color-ink);font-size:1.1rem}.project-detail-list{display:flex;flex-direction:column;gap:.75rem;gap:var(--space-2);padding-left:1.2rem}.project-detail-actions{margin-top:1.5rem;margin-top:var(--space-4)}.project-detail-figure{margin:1.5rem 0;margin:var(--space-4) 0}.project-detail-figure img{border-radius:16px;border-radius:var(--radius-md);width:100%}.project-detail-figure figcaption{margin-top:.75rem;margin-top:var(--space-2);text-align:center}.project-detail-footer{margin-top:1.5rem;margin-top:var(--space-4)}.card-image{max-width:375px}.contact-form{align-items:flex-start;display:flex;flex-direction:column;gap:.5rem;gap:var(--space-1);justify-content:center;min-width:200px}form.contact-form>input,form.contact-form>textarea{background-color:#ffffffe6;border:1px solid #d9e2ec;border:1px solid var(--color-border);border-radius:10px;border-radius:var(--radius-sm);margin-bottom:10px;padding:.62rem .78rem;width:100%}form.contact-form>textarea{min-height:120px}form.contact-form>input:focus,form.contact-form>textarea:focus{border-color:#1f6f78;border-color:var(--color-brand);outline:2px solid #1f6f784d}.contact-form button[disabled]{cursor:not-allowed;opacity:.7}.contact-status-message{color:#15565d;color:var(--color-brand-strong);font-weight:600}main{background-position:50%;background-size:cover;background:radial-gradient(circle at 10% 10%,#f1a94e24,#0000 25%),radial-gradient(circle at 90% 5%,#1f6f7814,#0000 30%),#fffdf8;background:radial-gradient(circle at 10% 10%,#f1a94e24,#0000 25%),radial-gradient(circle at 90% 5%,#1f6f7814,#0000 30%),var(--color-surface);min-height:100vh;padding-bottom:3rem;padding-bottom:var(--space-6);padding-top:88px}h1{font-weight:700;line-height:1.2;margin-bottom:1.5rem;margin-bottom:var(--space-4)}h1,h2,h3{color:#1f2933;color:var(--color-ink);font-family:"Source Serif 4",serif}.page-container-center{align-items:center;display:flex;justify-content:center;min-height:100vh}.portfolio-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(100deg,#15565df2,#1f6f78ed);border-bottom:1px solid #f1a94e4d}.portfolio-nav .navbar-brand.brand-mark{color:#fff;font-size:1.2rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.portfolio-nav .navbar-brand.brand-mark:hover{color:#fff;opacity:.92}.nav-toggle-btn{border:1px solid #fff6}.nav-list-gap{gap:.75rem;gap:var(--space-2)}.nav-link-custom{color:#f2f4f8;font-size:.98rem;font-weight:700;letter-spacing:.07em;padding-bottom:.8rem;position:relative;text-transform:uppercase}.nav-link-custom:hover{color:#fff}.nav-link-custom:focus-visible{color:#fff;outline:none}.nav-link-custom:after{background-color:#f1a94e;background-color:var(--color-accent);bottom:.25rem;content:"";height:2px;left:-.15rem;position:absolute;right:-.15rem;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.nav-link-custom:focus-visible:after{transform:scaleX(1)}.column-centered-content{align-items:center;display:flex;justify-content:center}.flex-row-container{display:flex;flex-direction:row;flex-wrap:wrap}.italic-text{font-style:italic}.experience-card{background-color:#fffdf8;background-color:var(--color-surface);border:1px solid #d9e2ec;border:1px solid var(--color-border);border-radius:16px;border-radius:var(--radius-md);margin:1rem;margin:var(--space-3);margin-bottom:2rem;margin-bottom:var(--space-5);margin-left:auto;margin-right:auto;max-width:800px;padding:2rem;padding:var(--space-5);width:90%}.education-card{background-color:#f6f5efcc;border-left:4px solid #f1a94e;border-left:4px solid var(--color-accent)}.resume-section>h2{margin-bottom:1.5rem;margin-bottom:var(--space-4)}.resume-section h2.mt-3{margin-top:2rem;margin-top:var(--space-5)}.resume-card-list{list-style:none}.resume-card-item,.resume-card-list{margin:0;padding:0}.resume-cta-row{display:flex;justify-content:center}.contact-card{max-width:600px;width:100%}.shadow{box-shadow:0 20px 55px #0f172a24;box-shadow:var(--shadow-raised)}.btn-dark:hover{background-color:#15565d;background-color:var(--color-brand-strong);border-color:#15565d;border-color:var(--color-brand-strong);color:#fff}@media only screen and (min-width:950px){body,figcaption,input,label,li,p,textarea{font-size:1.125rem}main{margin-top:40px}}@media only screen and (max-width:991px){.portfolio-nav{background:linear-gradient(100deg,#15565dfa,#1f6f78f5)}.nav-link-custom{margin-left:.4rem}.project-detail-shell,.projects-shell{width:min(1120px,92vw)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.home-shell{display:flex;flex-direction:column;gap:var(--space-6);margin-inline:auto;width:min(1120px,94vw)}#home-container.home-content-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:1fr;margin-bottom:var(--space-4)}.home-card{background-color:#ffffffb8;border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:0;width:100%}.home-hero-card{background:linear-gradient(130deg,#1f6f781a,#fffdf8eb),var(--color-surface)}.hero-card-body{display:flex;flex-direction:column;gap:var(--space-3)}.hero-eyebrow{color:var(--color-brand);font-size:.78rem;font-weight:800;letter-spacing:.12em;margin:0;text-transform:uppercase}.home-hero-title{font-size:clamp(2rem,4vw,3.2rem);margin:0}.home-hero-copy{font-size:1.1rem;margin:0;max-width:66ch}.hero-cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.home-panel-card{background-color:#ffffffd9}.home-panel-title{font-size:clamp(1.6rem,2.4vw,2rem);margin:0 0 var(--space-3);text-align:left}.skills-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));list-style:none;margin:0;padding:0}.skill-tile{align-items:center;background:#f6f5efcc;border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);justify-content:center;min-height:138px;padding:var(--space-3) var(--space-2);text-align:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.skill-tile:hover{border-color:var(--color-accent);box-shadow:var(--shadow-soft);transform:translateY(-3px)}.skill-icon-frame{align-items:center;display:flex;height:64px;justify-content:center;width:64px}.skill-label{color:var(--color-ink);font-size:.87rem;font-weight:700;margin:0}.home-bio-paragraph{margin-bottom:var(--space-3)}#home-top{scroll-margin-top:120px}.home-experience-section{border-top:1px solid var(--color-border);padding-top:var(--space-5);scroll-margin-top:120px}.home-back-to-top{display:flex;justify-content:center;margin-top:var(--space-2)}@media only screen and (min-width:960px){#home-container.home-content-grid{align-items:start;grid-template-columns:1.15fr 1fr}.home-hero-card,.home-skills-card{grid-column:1/-1}}@media only screen and (max-width:640px){.home-shell{width:min(1120px,92vw)}.home-hero-copy{font-size:1rem}.hero-cta-row .btn{width:100%}}.icon{height:42px;margin-right:var(--space-2);object-fit:contain;width:42px}.contact-shell{margin-inline:auto;width:min(1120px,94vw)}.contact-hero{margin-bottom:var(--space-5);text-align:center}.contact-intro{margin:0 auto;max-width:58ch}.contact-grid{grid-gap:var(--space-4);align-items:start;display:grid;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:var(--space-4)}#contact-info-card,.contact-grid .contact-card{background-color:#ffffffd6;border:1px solid var(--color-border);border-radius:var(--radius-lg)}#contact-info-card ul{list-style-type:none;margin-bottom:0;margin-top:var(--space-3);padding-left:0}#contact-info-card li{margin-bottom:var(--space-3)}#contact-info-card li a{align-items:center;color:var(--color-ink);display:inline-flex;font-weight:600;text-decoration:none}#contact-info-card li a:hover{color:var(--color-brand);text-decoration:underline;text-underline-offset:.2em}.codewars-row{margin-top:var(--space-4)}.codewars-row img{height:auto;max-width:100%}.contact-footer-note{margin-top:var(--space-4);text-align:center}.contact-back-home{display:flex;justify-content:center;margin-bottom:var(--space-4);margin-top:var(--space-4)}.contact-grid .home-card{background-color:#ffffffd6;border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:0;width:100%}.contact-grid .home-panel-title{text-align:left}.contact-grid .home-bio-paragraph{margin-bottom:var(--space-3)}@media only screen and (max-width:991px){.contact-shell{width:min(1120px,92vw)}.contact-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.fdfed712.css.map*/