body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{min-height:100vh}:root{--ink:#15171c;--muted:#626a73;--paper:#f7f3ec;--surface:#fff;--line:#ddd5ca;--green:#2f6f5e;--blue:#315c9b;--coral:#c85f4b;--gold:#d6a84f;--shadow:0 24px 70px #272a3021}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f3ec;background:var(--paper);margin:0}.landing-page{background:linear-gradient(90deg,#315c9b12 1px,#0000 0),linear-gradient(180deg,#315c9b0f 1px,#0000 0),#f7f3ec;background:linear-gradient(90deg,#315c9b12 1px,#0000 1px),linear-gradient(180deg,#315c9b0f 1px,#0000 1px),var(--paper);background-size:72px 72px;color:#15171c;color:var(--ink);font-family:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh}.portfolio-nav{align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f3eceb;border:1px solid #ddd5cae6;border-bottom-color:#ddd5cab3;border-radius:8px;box-shadow:0 14px 40px #272a301a;display:flex;justify-content:space-between;left:50%;margin:0;min-width:0;padding:.75rem 1rem;position:fixed;top:.75rem;transform:translateX(-50%);transition:transform .24s ease,opacity .24s ease;width:min(1180px,calc(100% - 1.5rem));z-index:10}.portfolio-nav.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,calc(-100% - 1rem))}.brand{background:#15171c;background:var(--ink);border-radius:8px;color:#fff;display:grid;flex:0 0 auto;font-weight:800;height:2.5rem;place-items:center;text-decoration:none;width:2.5rem}.nav-links{display:flex;flex:1 1;gap:clamp(.55rem,3vw,2.25rem);justify-content:flex-end;min-width:0}.nav-links a{color:#626a73;color:var(--muted);font-weight:700;text-decoration:none;white-space:nowrap}.nav-links a:hover{color:#15171c;color:var(--ink)}.hero,.section{margin:0 auto;width:min(1180px,calc(100% - 3rem))}.hero{grid-gap:clamp(2rem,6vw,5rem);align-items:center;display:grid;gap:clamp(2rem,6vw,5rem);grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);min-height:calc(100vh - 5rem);padding:clamp(4rem,9vw,7rem) 0}.eyebrow{color:#2f6f5e;color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 1rem;text-transform:uppercase}.hero h1,.section h2{color:#15171c;color:var(--ink);font-weight:850;line-height:.98;margin:0}.hero h1{font-size:clamp(3.25rem,9vw,6.8rem);max-width:820px}.intro{color:#626a73;color:var(--muted);font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.7;margin:1.5rem 0 0;max-width:690px}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.btn{align-items:center;border:1px solid #15171c;border:1px solid var(--ink);border-radius:8px;display:inline-flex;font-weight:800;justify-content:center;min-height:3rem;padding:.85rem 1.15rem;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{box-shadow:0 14px 30px #15171c29;transform:translateY(-2px)}.btn-primary{background:#15171c;background:var(--ink);color:#fff}.btn-secondary{background:#ffffff8c;color:#15171c;color:var(--ink)}.hero-panel{background:#fff;background:var(--surface);border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #272a3021;box-shadow:var(--shadow);min-height:460px;overflow:hidden}.panel-header{background:#ece4d8;border-bottom:1px solid #ddd5ca;border-bottom:1px solid var(--line);display:flex;gap:.45rem;padding:1rem}.panel-header span{border-radius:50%;height:.72rem;width:.72rem}.panel-header span:first-child{background:#c85f4b;background:var(--coral)}.panel-header span:nth-child(2){background:#d6a84f;background:var(--gold)}.panel-header span:nth-child(3){background:#2f6f5e;background:var(--green)}.panel-body{display:flex;flex-direction:column;justify-content:space-between;min-height:405px;padding:clamp(1.25rem,4vw,2rem)}.panel-kicker{color:#315c9b;color:var(--blue);font-size:.82rem;font-weight:800;margin:0 0 .85rem;text-transform:uppercase}.panel-body h2{font-size:clamp(1.75rem,4vw,2.65rem);line-height:1.05;margin:0;max-width:360px}.signal-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr);margin-top:2rem}.signal-grid span{aspect-ratio:1.35;background:#e5edf5;border:1px solid #cfdae7;border-radius:8px}.signal-grid span:nth-child(2),.signal-grid span:nth-child(5){background:#e8f0dc;border-color:#d3dfc5}.signal-grid span:nth-child(3),.signal-grid span:nth-child(4){background:#f5e3dd;border-color:#e8c8bd}.section{border-top:1px solid #ddd5ca;border-top:1px solid var(--line);padding:clamp(3.5rem,7vw,6rem) 0}.section-heading{grid-gap:clamp(1rem,5vw,4rem);align-items:start;display:grid;gap:clamp(1rem,5vw,4rem);grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);margin-bottom:2rem}.section h2{font-size:clamp(2rem,5vw,4rem);max-width:780px}.project-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{background:#fff;background:var(--surface);border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #272a3014;color:#15171c;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;min-height:315px;padding:1.35rem;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.project-card:focus-visible,.project-card:hover{border-color:#315c9b7a;box-shadow:0 18px 42px #272a3024;transform:translateY(-3px)}.project-card:focus-visible{outline:3px solid #315c9b3d;outline-offset:3px}.project-card p{color:#315c9b;color:var(--blue);font-size:.82rem;font-weight:800;margin:0}.project-card h3{font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.1;margin:auto 0 1rem}.about-content p,.contact-section p,.project-card span{color:#626a73;color:var(--muted);line-height:1.7}.project-card strong{color:#2f6f5e;color:var(--green);display:inline-flex;font-size:.9rem;margin-top:1.25rem;width:fit-content}.project-detail{margin:0 auto;padding:clamp(7rem,12vw,9rem) 0 clamp(4rem,8vw,6rem);width:min(1180px,calc(100% - 3rem))}.back-link{color:#2f6f5e;color:var(--green);display:inline-flex;font-weight:850;margin-bottom:2rem;text-decoration:none}.back-link:hover{color:#15171c;color:var(--ink)}.project-detail-hero{max-width:920px;padding-bottom:clamp(2.5rem,6vw,4rem)}.project-detail-hero h1{color:#15171c;color:var(--ink);font-size:clamp(3rem,8vw,6rem);font-weight:850;line-height:.98;margin:0}.project-detail-hero p:last-child{color:#626a73;color:var(--muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.7;margin:1.35rem 0 0;max-width:760px}.project-detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-panel{background:#ffffffd1;border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #272a3014;padding:clamp(1.25rem,3vw,1.75rem)}.detail-panel-wide{grid-column:1/-1}.detail-panel h2{color:#15171c;color:var(--ink);font-size:clamp(1.45rem,3vw,2.2rem);line-height:1.08;margin:0 0 1rem}.detail-list,.detail-panel p{color:#626a73;color:var(--muted);line-height:1.7}.detail-panel p{margin:0}.detail-list{grid-gap:.8rem;display:grid;gap:.8rem;margin:0;padding-left:1.1rem}.about-content{grid-gap:clamp(1.5rem,5vw,4rem);align-items:start;display:grid;gap:clamp(1.5rem,5vw,4rem);grid-template-columns:minmax(0,.9fr) minmax(280px,.8fr)}.about-content p{font-size:1.08rem;margin:0}.strength-list{grid-gap:.8rem;display:grid;gap:.8rem;list-style:none;margin:0;padding:0}.strength-list li{background:#ffffffb8;border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;font-weight:700;padding:1rem}.contact-section,.tools-section{grid-gap:clamp(1.5rem,5vw,4rem);align-items:center;display:grid;gap:clamp(1.5rem,5vw,4rem);grid-template-columns:minmax(240px,.5fr) minmax(0,1fr)}.tool-list{display:flex;flex-wrap:wrap;gap:.75rem}.tool-list span{background:#fff;background:var(--surface);border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;color:#15171c;color:var(--ink);font-weight:800;padding:.7rem .95rem}.role-list{display:flex;flex-wrap:wrap;gap:.75rem}.role-list span{background:#ffffffd1;border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;color:#15171c;color:var(--ink);font-weight:800;padding:.85rem 1rem}.experience-list{grid-gap:1rem;display:grid;gap:1rem}.experience-item{grid-gap:clamp(1rem,4vw,3rem);align-items:start;background:#ffffffd1;border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #272a3014;display:grid;gap:clamp(1rem,4vw,3rem);grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);padding:1.35rem}.experience-item p{color:#315c9b;color:var(--blue);font-size:.82rem;font-weight:800;margin:0 0 .55rem}.experience-item h3{color:#15171c;color:var(--ink);font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.1;margin:0}.experience-item span{color:#626a73;color:var(--muted);line-height:1.7}.certification-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.certification-card{background:#fff;background:var(--surface);border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #272a3014;display:flex;flex-direction:column;justify-content:space-between;min-height:235px;padding:1.25rem}.certification-card span{background:#2f6f5e;background:var(--green);border-radius:8px;color:#fff;display:inline-flex;font-size:.72rem;font-weight:850;margin-bottom:.85rem;padding:.32rem .55rem;text-transform:uppercase;width:fit-content}.certification-card h3{color:#15171c;color:var(--ink);font-size:1.25rem;line-height:1.1;margin:0}.certification-card p{color:#626a73;color:var(--muted);line-height:1.6;margin:1rem 0 0}.resume-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.resume-card{background:#ffffffd1;border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #272a3014;padding:1.35rem}.resume-card h3{color:#15171c;color:var(--ink);font-size:1.25rem;margin:0 0 1rem}.resume-card ul{grid-gap:.75rem;color:#626a73;color:var(--muted);display:grid;gap:.75rem;line-height:1.6;margin:0;padding-left:1.1rem}.resume-callout{align-items:center;background:#fff;background:var(--surface);border:1px solid #ddd5ca;border:1px solid var(--line);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:1rem;padding:1.25rem}.resume-callout p{color:#626a73;color:var(--muted);line-height:1.7;margin:0;max-width:720px}.resume-callout strong{color:#15171c;color:var(--ink)}.contact-section{padding-bottom:clamp(5rem,9vw,8rem)}.contact-section p{margin:1rem 0 0;max-width:620px}.contact-actions,.contact-section .btn{justify-self:start}.contact-actions{display:flex;flex-wrap:wrap;gap:.75rem}.site-footer{background:#15171c;background:var(--ink);color:#fff}.footer-bottom,.footer-inner{margin:0 auto;width:min(1180px,calc(100% - 3rem))}.footer-inner{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) auto;padding:clamp(2.5rem,6vw,4rem) 0 2rem}.footer-brand{color:#fff;font-size:1.25rem;font-weight:850;text-decoration:none}.footer-inner p{color:#ffffffb8;line-height:1.7;margin:.85rem 0 0;max-width:520px}.footer-links{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;justify-content:flex-end}.footer-links a{color:#ffffffc2;font-weight:800;text-decoration:none}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid #ffffff29;color:#ffffff94;display:flex;font-size:.92rem;gap:1rem;justify-content:space-between;padding:1.25rem 0}@media (max-width:920px){.about-content,.contact-section,.hero,.section-heading,.tools-section{grid-template-columns:1fr}.hero{min-height:auto}.experience-item,.project-detail-grid,.project-grid{grid-template-columns:1fr}.certification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-grid{grid-template-columns:1fr}.project-card{min-height:250px}}@media (max-width:640px){.portfolio-nav{padding:.55rem .65rem;top:.5rem;width:calc(100% - .75rem)}.brand{font-size:.88rem;height:2.25rem;width:2.25rem}.nav-links{gap:.42rem}.nav-links a{font-size:.8rem}.hero,.project-detail,.section{width:min(100% - 2rem,1180px)}.hero h1{font-size:clamp(2.85rem,16vw,4rem)}.hero-panel{min-height:360px}.panel-body{min-height:305px}.btn,.contact-actions,.hero-actions,.resume-callout .btn{width:100%}.certification-grid{grid-template-columns:1fr}.footer-bottom,.footer-inner{grid-template-columns:1fr;width:min(100% - 2rem,1180px)}.footer-bottom,.footer-inner,.footer-links{justify-content:flex-start}.footer-bottom{flex-direction:column}}@media (max-width:360px){.portfolio-nav{padding:.45rem .5rem;width:calc(100% - .5rem)}.brand{font-size:.78rem;height:2rem;width:2rem}.nav-links{gap:.3rem}.nav-links a{font-size:.7rem}}@media (prefers-reduced-motion:reduce){.portfolio-nav{transition:none}}
/*# sourceMappingURL=main.4ea4b172.css.map*/