body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{height:100%;margin:0;overflow:hidden;padding:0}body{-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}.App{padding-bottom:env(safe-area-inset-bottom)}.App-header{padding-top:env(safe-area-inset-top)}a:active,button:active{opacity:.75}.App{color:#fff;display:flex;flex-direction:column;height:100dvh;overflow:hidden;text-align:center}.App .footer span{font-family:Inter,sans-serif;font-size:12px}.App-header{align-items:center;background-color:#1a237e;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-family:Inter,sans-serif;gap:6px;justify-content:center;min-height:12vh;padding:14px 16px;position:relative}.header-name{font-size:calc(18px + 1.5vmin);font-weight:700;letter-spacing:.02em;line-height:1}.header-accent{background-color:#ffffff73;border-radius:2px;height:2px;width:36px}.header-role{color:#ffffffb3;font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.floating-cta-group{display:none}@media screen and (min-width:600px){.floating-cta-group{align-items:center;display:flex;flex-direction:column;gap:5px;position:fixed;right:16px;top:14px;z-index:1000}}.header-location{color:gray;font-family:Inter,sans-serif;font-weight:500;letter-spacing:.1em}.header-location,.header-skill-rotator{font-size:10px;text-transform:uppercase}.header-skill-rotator{color:#ffffffbf;font-weight:400;letter-spacing:.12em;opacity:0;transition:opacity .4s ease}.header-skill-rotator.header-skill-rotator--visible{opacity:1}.avatar-icon{bottom:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));height:90%;left:20px;position:absolute;width:auto}.app-top{flex-shrink:0}nav{background-color:#fff;border-bottom:1px solid #e0e0e0;gap:8px;height:56px;justify-content:center;position:relative}.hamburger,nav{align-items:center;display:flex}.hamburger{background:none;border:none;border-radius:0;cursor:pointer;flex-direction:column;gap:5px;height:18px;height:44px;justify-content:space-between;justify-content:center;padding:0;width:24px;width:44px}.hamburger span{background-color:gray;border-radius:2px;display:block;height:2px;transition:all .25s ease;width:22px}.nav-menu{display:none}.nav-menu.nav-menu--open{background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 6px 16px #0000001a;display:flex;flex-direction:column;left:-.5%;padding:8px 0;position:absolute;right:-.5%;top:56px;z-index:999}.nav-menu.nav-menu--open .nav-links{font-size:14px;padding:14px 24px;text-align:left}.nav-menu.nav-menu--open .nav-links:after{display:none}a:active,a:hover{background-color:#0000;color:#1a237e}.nav-links{color:gray;font-family:Inter,sans-serif;font-size:13px;font-weight:600;letter-spacing:.08em;padding:4px 8px;position:relative;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.nav-links:after{background-color:#1a237e;bottom:-2px;content:"";height:2px;left:0;position:absolute;transition:width .2s ease;width:0}.nav-links:hover{color:#1a237e}.nav-links:hover:after{width:100%}.main-section{background-color:#eef0f4;width:100%}.main-section,.sub-section{display:flex;flex:1 1;flex-direction:column;min-height:0}.sub-section{-webkit-overflow-scrolling:touch;background-color:#fff;border-radius:10px;box-shadow:0 4px 16px #0000001f;color:gray;margin:10px;max-width:100%;overflow-x:hidden;overflow-y:auto;padding:20px 20px calc(env(safe-area-inset-bottom) + 130px);scrollbar-width:none;text-align:left}.sub-section::-webkit-scrollbar{display:none}h3{color:#1a237e;font-size:18px;letter-spacing:.02em;margin-bottom:16px;margin-top:4px}.text-area{float:left;margin:15px;min-height:90%;width:90%}#profile-pic{box-shadow:0 4px 16px #0000001f;float:right;height:22%;margin:4%;width:22%}li{margin:5px}a.show-more{color:#1a237e}.recent-projects-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr}.recent-project-card{border:1px solid #e8e8e8;border-radius:10px;box-shadow:0 4px 16px #0000001f;display:flex;flex-direction:column;gap:10px;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.recent-project-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-3px)}.recent-project-title{color:#1a237e;font-family:Inter,sans-serif;font-size:16px;font-weight:700}.recent-project-description{color:gray;font-size:14px;line-height:1.6;margin:0}.recent-project-tech{border-top:1px solid #f0f0f0;display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px}.recent-project-pill{background-color:#eef0f4;border-radius:12px;color:#1a237e;cursor:default;font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 10px}.tech-tooltip{background-color:#1a237e;border-radius:6px;box-shadow:0 4px 12px #0003;color:#fff;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:1.4;padding:7px 12px;pointer-events:none;position:fixed;text-align:center;transform:translateY(calc(-100% - 10px));width:180px;z-index:1000}.tech-tooltip:after{border:5px solid #0000;border-top-color:#1a237e;content:"";position:absolute;top:100%}.in-progress-section{border-bottom:1px solid #e8e8e8;margin-bottom:24px;padding-bottom:20px}.in-progress-heading{align-items:center;display:flex;gap:8px;margin-bottom:12px}.in-progress-dot{animation:pulse-dot 1.8s ease-in-out infinite;background-color:#22c55e;border-radius:50%;display:inline-block;flex-shrink:0;height:9px;width:9px}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 #22c55e80}50%{box-shadow:0 0 0 6px #22c55e00}}.in-progress-card{display:flex;flex-direction:column;gap:8px}.in-progress-title{color:#1a237e;font-family:Inter,sans-serif;font-size:16px;font-weight:700;text-decoration:none}.in-progress-title:hover{text-decoration:underline}.about-hero{align-items:center;display:flex;flex-direction:column;gap:24px;padding:24px 16px 16px}.about-profile-pic{border-radius:50%;box-shadow:0 4px 16px #0000001f;flex-shrink:0;height:140px;object-fit:cover;width:140px}.about-bio{color:gray;max-width:600px}.about-bio p{line-height:1.7;margin-bottom:10px}.about-name{color:#1a237e;font-size:22px;margin-top:0}.about-intro{color:#676767;font-size:15px;font-weight:600}.about-divider{border-top:1px solid #e0e0e0;margin:16px 24px}.about-video-section{color:gray;padding:0 24px 24px}.about-video-section h3{color:#1a237e}.about-video-wrapper{max-width:480px}.about-video-wrapper iframe{border-radius:6px;box-shadow:0 4px 16px #0000001f;height:270px;width:100%}@keyframes pill-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skills-section{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}.skills-label{color:#1a237e;font-size:15px;font-weight:600;letter-spacing:.03em;margin-bottom:8px;text-transform:uppercase}.skills-pills{display:flex;flex-wrap:wrap;gap:8px}.skill-pill{animation:pill-in .3s ease forwards;border-radius:20px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;opacity:0;padding:6px 16px;transition:transform .15s ease,box-shadow .15s ease}.skill-pill:hover{box-shadow:0 4px 10px #00000026;transform:translateY(-2px)}.skill-pill--proficient{background:linear-gradient(135deg,#039,#006);color:#fff}.skill-pill--some{background-color:#e0e0e0;color:gray}.video-toggle{background:linear-gradient(135deg,#039,#006);border:none;border-radius:20px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:13px;font-weight:600;letter-spacing:.02em;padding:8px 18px;transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.video-toggle:hover{box-shadow:0 4px 12px #0033994d;transform:translateY(-1px)}.skills-show-all{background:none;border:1px solid #ccc;border-radius:20px;color:gray;cursor:pointer;font-family:Inter,sans-serif;font-size:12px;font-weight:600;height:auto;margin-top:10px;padding:4px 14px;transition:border-color .2s ease,color .2s ease}.skills-show-all:hover{border-color:#1a237e;color:#1a237e}button{background-color:#1a237e;border:none;border-radius:4px;color:#fff;cursor:pointer;height:30px}button:disabled{background-color:#949ce9}#admin_header_text{float:left;width:70%}#logout_button{float:left;margin:5%}.spinner-wrapper{align-items:center;display:flex;height:100%;justify-content:center}.spinner{animation:spin .8s linear infinite;border:4px solid #d3d3d3;border-radius:50%;border-top-color:#1a237e;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.floating-cta{display:none}@media screen and (min-width:600px){.floating-cta{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#ffffff26;border:1px solid #fff6;border-radius:20px;color:#fff;cursor:pointer;display:block;font-family:Inter,sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;padding:7px 16px;text-transform:uppercase;transition:background .2s ease,border-color .2s ease,transform .2s ease;z-index:1000}.floating-cta:hover{background:#ffffff47;border-color:#ffffffb3;transform:translateY(-1px)}}.ai-strategies-intro{color:gray;font-size:15px;line-height:1.7;margin:0;padding:16px 16px 0}.philosophies-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr;padding:16px}.philosophy-entry{display:flex;flex-direction:column;gap:6px}.philosophy-number{color:#1a237e;font-family:Inter,sans-serif;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1;opacity:.12}.philosophy-divider{background:linear-gradient(90deg,#039,#006);border-radius:2px;height:2px;width:32px}.philosophy-title{color:#1a237e;font-family:Inter,sans-serif;font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0}.philosophy-body{color:gray;font-size:14px;line-height:1.7;margin:0}.mobile-cta{align-items:center;bottom:calc(env(safe-area-inset-bottom) + 56px);display:flex;flex-direction:column;gap:4px;left:50%;position:fixed;transform:translateX(-50%);z-index:999}.mobile-cta-location{color:gray;font-size:9px;font-weight:500;letter-spacing:.12em}.mobile-cta-button,.mobile-cta-location{font-family:Inter,sans-serif;text-transform:uppercase}.mobile-cta-button{background:#1a237e;border:none;border-radius:24px;box-shadow:0 4px 16px #0000334d;color:#fff;cursor:pointer;font-size:13px;font-weight:700;height:auto;letter-spacing:.08em;padding:10px 28px;transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.mobile-cta-button:hover{box-shadow:0 6px 20px #0036;transform:translateY(-1px)}@media screen and (min-width:600px){.mobile-cta{display:none}}.footer{align-items:center;background-color:#1a237e;box-sizing:border-box;color:#ffffffb3;display:flex;flex-shrink:0;font-family:Inter,sans-serif;font-size:12px;justify-content:center;letter-spacing:.04em;padding:14px;width:100%}.project-rotator{display:flex;flex:1 1;flex-direction:column;gap:6px;min-height:0;padding:8px}.project-carousel{align-items:stretch;display:flex;flex:1 1;gap:8px}.carousel-track{flex:1 1;min-height:0;min-width:0;overflow:hidden;position:relative}.project-content-wrapper{inset:0;position:absolute;transition:transform .35s ease-in-out}#project-content-wrapper-2{display:none}.project-content-wrapper.next{transform:translate(100%);-webkit-transform:translate(100%)}.project-content-wrapper.previous{transform:translate(-100%);-webkit-transform:translate(-100%)}.carousel-arrow{align-items:center;align-self:center;background-color:#1a237e;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:34px;justify-content:center;transition:background .2s ease;width:34px}.carousel-arrow:hover:not(:disabled){background:#2735bd}.carousel-arrow:disabled{background-color:#ddd;color:#aaa;cursor:default}.project-counter{color:gray;font-family:Inter,sans-serif;font-size:13px;letter-spacing:.05em;text-align:center}.project-content{border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 16px #0000001f;display:flex;flex-direction:column;height:100%}.project-header{border-bottom:1px solid #eee;color:#1a237e;font-family:Inter,sans-serif;font-size:15px;font-weight:700;letter-spacing:.02em;padding:10px 14px 8px}.project-details-loading{align-items:center;display:flex;flex:1 1;justify-content:center}.project-details{display:grid;flex:1 1;grid-template-columns:1fr;margin:8px 4%;min-height:0;overflow-y:auto;scrollbar-width:none}.project-details::-webkit-scrollbar{display:none}.detail-header-text{color:#1a237e;font-family:Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.project-featured{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.project-featured-image-wrap{border-bottom:1px solid #eee;flex-shrink:0;height:180px;overflow:hidden;padding:10px}.project-featured-screenshot{border-radius:4px;display:block;height:100%;object-fit:cover;object-position:top;width:100%}.project-featured-description{color:gray;display:flex;flex:1 1;flex-direction:column;font-family:Inter,sans-serif;font-size:13px;justify-content:center;min-height:0;overflow-y:auto;padding:12px 16px;text-align:left}.project-featured-description p{line-height:1.5;margin:0 0 8px}.project-featured-description a{color:#1a237e;font-weight:600;text-decoration:none}.project-featured-description a:hover{text-decoration:underline}@media screen and (min-width:600px){.project-featured{align-items:stretch;flex-direction:row}.project-featured-image-wrap{border-bottom:none;border-right:1px solid #eee;flex:0 0 37%;height:auto;padding:12px}.project-featured-description{font-size:14px;padding:20px 16px;text-align:right}.project-featured-description p{margin:0 0 10px}}.project-button-wrapper{margin:2px;text-align:center}.goal-content,.tech-content{display:grid;grid-template-rows:20px 3fr;justify-items:center;margin:1%}.contact-form{gap:16px;max-width:480px}.contact-form,.contact-form label{display:flex;flex-direction:column}.contact-form label{color:gray;font-size:14px;gap:4px;width:100%}.contact-form label div{font-weight:600;width:100%}.contact-form label input,.contact-form label textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-family:Inter,sans-serif;font-size:14px;padding:8px 10px;transition:border-color .2s ease;width:100%}.contact-form label input:focus,.contact-form label textarea:focus{border-color:#1a237e;outline:none}.contact-form label textarea{min-height:100px;resize:vertical}.contact-form .submit-button{align-self:flex-start;background-color:#1a237e;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;height:30px;margin-top:4px;padding:0 20px;transition:opacity .2s ease}.contact-form .submit-button:hover{opacity:.85}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.admin-header h3{margin:0}.admin-logout{background:#0000;border:1px solid #1a237e;border-radius:4px;color:#1a237e;cursor:pointer;font-family:Inter,sans-serif;font-size:13px;padding:6px 16px;transition:background .2s ease,color .2s ease}.admin-logout:hover{background:#1a237e;color:#fff}.admin-forms-grid{display:flex;flex-direction:column;gap:32px}.admin-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px 24px}.admin-card textarea{min-height:60px}.admin-card-title{color:#1a237e;font-family:Inter,sans-serif;font-size:14px;font-weight:600;letter-spacing:.06em;margin:0 0 16px;text-transform:uppercase}.admin-success{color:#2e7d32;font-size:13px;margin:0}@media screen and (min-width:600px){.hamburger{display:none}.nav-menu{display:flex;gap:8px}.nav-links{font-size:14px}.project-details,.recent-projects-grid,.skills-section{grid-template-columns:1fr 1fr}.sub-section{padding-bottom:20px}.philosophies-list{gap:24px 48px;grid-template-columns:1fr 1fr;padding:24px}.about-hero{align-items:flex-start;flex-direction:row;padding:32px}.about-profile-pic{height:180px;width:180px}.admin-forms-grid{align-items:flex-start;flex-direction:row}.admin-card{flex:1 1}}
/*# sourceMappingURL=main.8cd91d9f.css.map*/