.footer{background:#fff;border-top:1px solid #e5e7eb;margin-top:4rem;padding:2rem 0}.footer-content{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.footer-links{display:flex;gap:2rem}.footer-links a{color:#6b7280;text-decoration:none;font-weight:500;transition:color .2s ease}.footer-links a:hover{color:#111827}.footer-message{color:#6b7280;font-size:.95rem}.footer-message .heart{color:#006bb6!important}.footer-message .nyc{color:#f58426!important}@media (max-width: 768px){.footer{margin-top:3rem;padding:1.5rem 0}.footer-content{padding:0 1rem;flex-direction:column;gap:1rem;text-align:center}.footer-links{gap:1.5rem}}@media (max-width: 640px){.footer{margin-top:2rem;padding:1rem 0}.footer-content{gap:.75rem}.footer-links{gap:1rem}}.layout{min-height:100vh;display:flex;flex-direction:column}.nav{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}.nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;height:4rem}.nav-brand{font-size:1.5rem;font-weight:600;color:#111827;text-decoration:none;letter-spacing:-.025em}.nav-brand:hover{color:#374151}.nav-links{display:flex;gap:2rem;align-items:center}.nav-link{color:#6b7280;text-decoration:none;font-weight:500;font-size:.95rem;transition:color .2s ease;position:relative}.nav-link:hover,.nav-link.active{color:#111827}.nav-link.active:after{content:"";position:absolute;bottom:-1.5rem;left:0;right:0;height:2px;background:#111827}.main{flex:1;max-width:1200px;margin:0 auto;padding:3rem 2rem 0;width:100%}.clearfix:after{content:"";clear:both;display:table}.mobile-menu-button{display:none;flex-direction:column;justify-content:space-around;width:24px;height:24px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001}.hamburger-line{width:100%;height:2px;background-color:#111827;transition:all .3s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.mobile-menu-overlay.open{opacity:1;visibility:visible}.mobile-menu{position:fixed;top:0;right:0;width:280px;height:100vh;background:#fff;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column;box-shadow:-2px 0 10px #0000001a}.mobile-menu-overlay.open .mobile-menu{transform:translate(0)}.mobile-nav-links{display:flex;flex-direction:column;padding:4rem 0 1rem}.mobile-nav-link{display:block;padding:1rem 1.5rem;color:#374151;text-decoration:none;font-weight:500;font-size:1.1rem;transition:background-color .2s ease}.mobile-nav-link:hover{background-color:#f9fafb}.mobile-nav-link.active{background-color:#f3f4f6;color:#111827;font-weight:600}@media (max-width: 768px){.nav-container{padding:0 1rem;height:3.5rem}.nav-brand{font-size:1.25rem}.nav-links{display:none}.mobile-menu-button{display:flex}.main{padding:2rem 1rem 0}}.page{width:100%}.page-content{max-width:1200px;margin:0 auto}.page-title{font-size:3rem;font-weight:700;color:#111827;margin:0 0 2rem;letter-spacing:-.025em;line-height:1.1}.page-body{font-size:1.125rem;line-height:1.7;color:#374151}.intro-text{font-size:1.25rem;font-weight:500;color:#111827;margin-bottom:1.5rem}.warning-box{background-color:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:1rem 1.5rem;margin:2rem 0}.warning-box p{margin:0;color:#92400e;font-size:1rem;line-height:1.6}.placeholder-content{margin-top:3rem;padding:2rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;text-align:center;color:#6b7280;font-style:italic}@media (max-width: 768px){.page-title{font-size:2.5rem;margin-bottom:1.5rem}.page-body{font-size:1rem}.intro-text{font-size:1.125rem}.placeholder-content{margin-top:2rem;padding:1.5rem}}@media (max-width: 640px){.page-title{font-size:2rem}.page-body{font-size:.95rem}.intro-text{font-size:1rem}}.books-list{margin-top:2rem}.book-item{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid #f3f4f6}.book-item:last-child{border-bottom:none;margin-bottom:0}.book-header{margin-bottom:1rem}.book-title{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 .5rem;line-height:1.3}.favorite-asterisk{color:#dc2626;font-weight:700}.book-authors{color:#6b7280;font-size:.95rem;font-style:italic;margin:0}.book-description{color:#374151;line-height:1.7;margin:0 0 1rem}.amazon-link{color:#111827;text-decoration:none;font-weight:500;font-size:.95rem;transition:color .2s ease;display:inline-block}.amazon-link:hover{color:#374151}.amazon-link:after{content:" →";margin-left:.25rem;transition:margin-left .2s ease}.amazon-link:hover:after{margin-left:.5rem}@media (max-width: 768px){.books-list{margin-top:1.5rem}.book-item{margin-bottom:2.5rem;padding-bottom:1.5rem}.book-title{font-size:1.125rem}.book-description{font-size:.95rem}}@media (max-width: 640px){.book-item{margin-bottom:2rem;padding-bottom:1rem}.book-title{font-size:1rem}.book-authors,.book-description{font-size:.9rem}}.instagram-link{color:inherit;text-decoration:underline}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2rem;margin-bottom:1rem}.photo-item{position:relative;cursor:pointer;overflow:hidden}.photo-image{width:100%;height:auto;object-fit:contain;filter:grayscale(100%);transition:filter .3s ease}.photo-item:hover .photo-image{filter:grayscale(0%)}.photo-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.overlay-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.close-button{position:absolute;top:-3rem;right:0;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:.5rem;line-height:1;transition:opacity .2s ease}.close-button:hover{opacity:.7}.overlay-image{max-width:100%;max-height:100%;object-fit:contain}@media (max-width: 768px){.photos-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.photo-overlay{padding:1rem}.close-button{top:-2.5rem;font-size:1.5rem}}@media (max-width: 640px){.photos-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}}.projects-list{margin-top:2rem}.project-item{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.project-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.project-title{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 1rem}.project-description{font-size:1.1rem;line-height:1.6;color:#374151;margin:0 0 1.5rem}.project-link{display:inline-block;color:#111827;text-decoration:none;font-weight:500;font-size:1rem;transition:color .2s ease}.project-link:hover{color:#6b7280}@media (max-width: 768px){.project-item{margin-bottom:2rem;padding-bottom:1.5rem}.project-title{font-size:1.375rem}.project-description{font-size:1rem}}.project-detail{max-width:1200px;margin:0 auto}.project-header{margin-bottom:3rem}.back-link{display:inline-block;color:#6b7280;text-decoration:none;font-weight:500;margin-bottom:1.5rem;transition:color .2s ease}.back-link:hover{color:#111827}.project-title{font-size:2.5rem;font-weight:700;color:#111827;margin:0 0 1rem}.project-tagline{font-size:1.25rem;line-height:1.6;color:#374151;margin:0;font-weight:500}.project-content{padding:0}.project-section{margin-bottom:3rem}.project-section:last-child{margin-bottom:0}.project-section h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.project-section p{font-size:1.1rem;line-height:1.7;color:#374151;margin:0 0 1rem}.project-section p:last-child{margin-bottom:0}.project-section h3{font-size:1.25rem;font-weight:600;color:#111827;margin:1.5rem 0 .75rem}.project-section h3:first-child{margin-top:0}.project-section ul{margin:.75rem 0 1rem;padding-left:1.5rem}.project-section li{font-size:1.1rem;line-height:1.6;color:#374151;margin-bottom:.5rem}.project-section li:last-child{margin-bottom:0}.project-section a{color:inherit;text-decoration:underline}.project-section a:hover{cursor:pointer}@media (max-width: 768px){.project-title{font-size:2rem}.project-tagline{font-size:1.1rem}.project-content{padding:0}.project-section{margin-bottom:2rem}.project-section h2{font-size:1.375rem}.project-section p{font-size:1rem}.project-section h3{font-size:1.125rem}.project-section li{font-size:1rem}}.resume{max-width:1600px;margin:0 auto}.page{position:relative}.resume-main{display:grid;grid-template-columns:4fr 1fr;gap:3rem;align-items:start}.resume-header{text-align:center;margin-bottom:2rem}.resume-name{font-size:2.5rem;font-weight:700;color:#111827;margin:0 0 1rem;letter-spacing:-.025em}.resume-tagline{font-size:1.125rem;color:#374151;line-height:1.6;margin:0 0 2rem;max-width:600px;margin-left:auto;margin-right:auto}.resume-section{margin-bottom:3rem}.section-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1.5rem;padding-bottom:.5rem;border-bottom:1px solid #d1d5db}.job{margin-bottom:2.5rem}.job:last-child{border-bottom:none;margin-bottom:0}.job-header{margin-bottom:1rem}.job-title-line{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .25rem}.location{font-weight:400;color:#6b7280}.job-dates{color:#6b7280;font-size:.95rem;font-weight:500;margin:0}.job-description{color:#374151;line-height:1.7}.job-description p{margin-bottom:1rem}.key-projects{margin-top:1.5rem}.key-projects h5{font-size:1rem;font-weight:600;color:#111827;margin:0 0 1rem}.key-projects ul{margin:0;padding-left:1.5rem}.key-projects li{margin-bottom:.75rem;line-height:1.6}.key-projects strong{color:#111827;font-weight:600}.skill-category{margin-bottom:2rem}.skill-category:last-child{border-bottom:none;margin-bottom:0}.skill-category h4{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #d1d5db}.skill-category p{color:#374151;line-height:1.6;margin:0;font-size:.95rem}.job:last-child{margin-bottom:0}.resume-section:last-child{margin-bottom:0}.skill-category:last-child{margin-bottom:0}.job-description p:last-child{margin-bottom:0}.key-projects li:last-child{margin-bottom:0}.print-footer{display:none}@media (max-width: 768px){.resume-header-actions{display:none}.resume-main{grid-template-columns:1fr;gap:2rem}.skills-sidebar{position:static;order:1}.experience-section{order:0}.resume-name{font-size:2rem}.resume-tagline,.job-title-line{font-size:1rem}.skill-category{margin-bottom:1.5rem;padding-bottom:1rem}}.resume-header-actions{position:absolute;top:1rem;right:1rem;z-index:10}.print-link{color:#374151;text-decoration:underline;font-size:1rem;font-weight:500;cursor:pointer;transition:color .2s ease}.print-link:hover{color:#111827}@media (max-width: 640px){.resume-section{margin-bottom:2rem}.job{margin-bottom:2rem;padding-bottom:1.5rem}.section-title{font-size:1.25rem;margin-bottom:1.5rem}}@page{margin:0}@media print{:root{--print-font-base: 1.2;--print-font-name: calc(2rem * var(--print-font-base));--print-font-tagline: calc(1rem * var(--print-font-base));--print-font-section: calc(.95rem * var(--print-font-base));--print-font-job-title: calc(.95rem * var(--print-font-base));--print-font-job-date: calc(.85rem * var(--print-font-base));--print-font-job-desc: calc(.85rem * var(--print-font-base));--print-font-projects: calc(.85rem * var(--print-font-base));--print-font-skills: calc(.95rem * var(--print-font-base));--print-font-skills-content: calc(.8rem * var(--print-font-base))}*{page-break-inside:avoid!important;break-inside:avoid!important}.resume{page-break-after:avoid!important;break-after:avoid!important;height:100vh!important;overflow:hidden!important}.nav,.footer,.resume-header-actions{display:none!important}body,.main{margin:0!important;padding:0!important;height:100vh!important;overflow:hidden!important}.page,.page-content{height:100vh!important;overflow:hidden!important}.resume{transform:scale(.85)!important;transform-origin:top left!important;width:118%!important;height:118%!important;padding:.4in!important;box-sizing:border-box!important}.resume-main{display:grid!important;grid-template-columns:4fr 1.2fr!important;gap:3.75rem!important;align-items:start!important}.skills-sidebar{display:block!important;order:2!important;position:static!important}.experience-section{display:block!important;order:1!important}.resume-name{font-size:var(--print-font-name)!important;margin-bottom:.5rem!important}.resume-tagline{margin-bottom:.75rem!important;font-size:var(--print-font-tagline)!important;line-height:1.4!important}.resume-section{margin-bottom:1rem!important}.section-title{margin-bottom:.5rem!important;font-size:var(--print-font-section)!important}.job{margin-bottom:.9rem!important}.job-header{margin-bottom:.25rem!important}.job-title-line{font-size:var(--print-font-job-title)!important}.job-dates{font-size:var(--print-font-job-date)!important}.job-description{font-size:var(--print-font-job-desc)!important;line-height:1.4!important}.job-description p{margin-bottom:.4rem!important}.key-projects{margin-top:.75rem!important}.key-projects h5{font-size:var(--print-font-projects)!important;margin-bottom:.4rem!important}.key-projects li{margin-bottom:.4rem!important;font-size:var(--print-font-projects)!important;line-height:1.4!important}.skill-category{margin-bottom:.8rem!important}.skill-category h4{font-size:var(--print-font-skills)!important;margin-bottom:.4rem!important}.skill-category p{font-size:var(--print-font-skills-content)!important;line-height:1.3!important}.print-footer{display:flex!important;justify-content:space-between;align-items:center;position:fixed;bottom:.2in;left:.5in;right:.5in;font-size:.65rem;line-height:1.2;color:#374151;border-top:1px solid #e5e7eb;padding-top:.5rem;background:#fff;z-index:1000}.print-footer span{white-space:nowrap;overflow:hidden}.print-footer span:first-child{text-align:left}.print-footer span:last-child{text-align:right}}*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;background-color:#fff;color:#111827;line-height:1.6}#root{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;overflow-y:scroll}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:#111827;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:#111827}p{margin-bottom:1rem}a{color:#111827;text-decoration:none;transition:color .2s ease}a:hover{color:#374151}a:focus-visible,button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}
