header{align-items:center;background-color:#fff;border-bottom:1px solid #111;color:#111;display:flex;justify-content:space-between;left:0;padding:18px 40px;position:sticky;text-align:left;top:0;width:100%;z-index:1000}.site-mark{color:#111;display:inline-flex;flex-direction:column;gap:2px;text-decoration:none}.site-mark span{font-size:1.35rem;font-weight:800;letter-spacing:0}.site-mark small{color:#555;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}header nav ul{display:flex;gap:6px;list-style-type:none;margin:0;padding:0}header nav ul li{display:inline-flex}header nav ul li a{color:#111;font-size:.92rem;font-weight:700;padding:8px 10px;text-decoration:none}header nav ul li a:hover{background:#111;color:#fff}@media (max-width: 760px){header{align-items:flex-start;flex-direction:column;gap:14px;padding:18px 22px}header nav ul{flex-wrap:wrap}}.about-page{margin:0 auto;max-width:1160px;padding:72px 24px 88px;text-align:left}.about-hero{align-items:stretch;display:grid;gap:48px;grid-template-columns:minmax(0,1fr) 320px}.headshot{border:1px solid #d9d9d9;border-radius:50%;max-height:220px;max-width:220px;width:100%}.about-copy h2{font-size:clamp(2.25rem,5.6vw,4.5rem);letter-spacing:0;line-height:1;margin:0 0 16px;max-width:760px}.about-copy p{color:#222;font-size:1.05rem;line-height:1.65;margin:0 0 14px;max-width:760px}.eyebrow{color:#555!important;font-size:.82rem!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.about-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.about-actions a{align-items:center;border:1px solid #111;color:#111;display:inline-flex;gap:8px;font-weight:700;padding:10px 14px}.about-actions a:hover,.about-actions .primary-action{background:#111;color:#fff}.about-actions .primary-action:hover{background:#fff;color:#111}.hero-card{border:1px solid #111;display:flex;flex-direction:column;justify-content:space-between;min-height:100%;padding:24px}.hero-card-media{align-items:center;display:flex;justify-content:center;min-height:250px;width:100%}.hero-card .headshot{display:block;margin:0 auto}.hero-card>div,.hero-card dl{width:100%}.hero-card>div{margin-top:18px}.hero-card strong,.hero-card span{display:block}.hero-card strong{font-size:1.25rem}.hero-card span{color:#555}.hero-card-links{display:grid;gap:10px;margin-top:18px}.hero-card-links a{color:#111;font-weight:700}.hero-card-links a:hover{color:#555}.hero-card dl{border-top:1px solid #111;margin:20px 0 0;padding-top:18px}.hero-card dt{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-card dd{color:#333;margin:4px 0 16px}.about-highlights{display:grid;gap:18px;grid-template-columns:repeat(3,1fr);margin-top:48px}.about-highlights div{border-top:2px solid #111;padding-top:14px}.highlight-icon{color:#111;display:inline-flex;font-size:1.15rem;margin-bottom:10px}.about-highlights h3{margin:0 0 8px}.about-highlights p{color:#333;line-height:1.55;margin:0}.fit-section{border:1px solid #111;margin-top:48px;padding:28px}.fit-section h2{font-size:1.6rem;margin:0 0 12px}.fit-section p{max-width:920px}.fit-section ul{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:24px 0 0;padding:0}.fit-section li{border-top:1px solid #111;font-weight:700;padding-top:10px}@media (max-width: 760px){.about-page{padding-top:44px}.about-hero,.about-highlights,.fit-section ul{grid-template-columns:1fr}.headshot{max-height:180px;max-width:180px}.hero-card-media{min-height:auto}}.portfolio{margin:0 auto;max-width:1160px;padding:72px 24px 88px;text-align:left}.portfolio-eyebrow,.portfolio-title,.portfolio-description{text-align:center}.portfolio-title{font-size:clamp(2.1rem,5vw,4.2rem);letter-spacing:0;line-height:1;margin:0 auto 18px;max-width:880px}.portfolio-description{color:#333;font-size:1.05rem;margin:0 auto 34px;max-width:860px}.featured-project{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:center;text-align:left;margin:36px 0 48px;padding:28px;border:1px solid #111}.featured-label{margin:0 0 8px;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#555}.featured-copy h3{margin-top:0;margin-bottom:12px;font-size:clamp(2rem,4vw,3rem)}.featured-copy p{color:#222;margin-bottom:14px;line-height:1.65}.featured-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.featured-links a,.project-links a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #111;color:#111;text-decoration:none;font-weight:700}.featured-links a:hover,.project-links a:hover{background:#111;color:#fff}.featured-media{align-self:center;display:flex;flex-direction:column;align-items:center}.featured-gallery{display:flex;gap:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;border:1px solid #d9d9d9;background:#f5f5f5}.featured-shot{flex:0 0 100%;width:100%;display:block;max-height:720px;object-fit:cover;scroll-snap-align:start}.featured-gallery::-webkit-scrollbar{display:none}.gallery-controls{display:flex;justify-content:center;gap:8px;margin-top:14px;width:100%}.gallery-arrow{width:40px;height:40px;border:1px solid #111;background:#fff;color:#111;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.gallery-arrow-glyph{display:block;font-size:1.2rem;font-weight:700;line-height:1}.gallery-arrow:hover{background:#111;color:#fff}.case-study-section{margin:0 0 48px;padding:28px;text-align:left;border:1px solid #111}.case-study-header{max-width:820px;margin-bottom:20px}.case-study-header h3{margin-top:0;margin-bottom:12px;font-size:2rem}.case-study-header p{margin-bottom:0}.case-study-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}@media (max-width: 1100px){.case-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.case-study-grid{grid-template-columns:1fr}}.case-study-card{border:1px solid #d9d9d9;display:flex;flex-direction:column;padding:20px}.case-study-card h4{margin-top:0;margin-bottom:12px}.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:28px}.project{border:1px solid #d9d9d9;display:flex;flex-direction:column;min-height:100%;padding:20px;text-align:left}.project h3{margin:0 0 4px}.project-category{color:#555;font-size:.82rem;font-weight:700;letter-spacing:.05em;margin:0 0 14px;text-transform:uppercase}.project-image{position:relative}.project-image img{width:100%;aspect-ratio:16 / 10;border:1px solid #eee;display:block;object-fit:cover}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.overlay a{color:#fff;text-decoration:none;margin:5px;padding:8px 12px;border:2px solid white;transition:background-color .3s ease}.overlay a:hover{background-color:#fff;color:#000}.project-image:hover .overlay{opacity:1}.description{color:#222;line-height:1.55;margin-top:10px}.section-label{border-top:2px solid #111;font-size:.86rem;letter-spacing:.08em;margin:0 0 22px;padding-top:16px;text-transform:uppercase}@media (max-width: 800px){.portfolio{padding-top:44px}.featured-project,.case-study-grid{grid-template-columns:1fr}.featured-media{width:100%}.gallery-controls{justify-content:center}.gallery-arrow{width:42px;height:42px}.featured-shot{max-height:420px}}.contact{margin:0 auto;max-width:880px;padding:96px 24px 120px;text-align:center}.contact h2{font-size:clamp(2.1rem,5vw,4.2rem);letter-spacing:0;line-height:1;margin:0 auto 18px;text-align:center}.contact p{color:#333;font-size:1.05rem;margin-left:auto;margin-right:auto;max-width:720px;text-align:center}.contact-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}.contact-links a{border:1px solid #111;color:#111;font-weight:700;padding:10px 14px}.contact-links a:hover{background:#111;color:#fff}.resume{margin:0 auto;max-width:1160px;padding:72px 24px 88px;text-align:left}.summary-statement{border:1px solid #111;margin-bottom:32px;padding:28px 24px 12px;text-align:center}.download-button{display:inline-flex;padding:10px 20px;margin-top:20px;margin-bottom:40px;font-size:16px;text-decoration:none;color:#fff;background-color:#111;border:1px solid #111;cursor:pointer}.download-button:hover{background-color:#fff;color:#111}.page-header{font-size:clamp(2.1rem,5vw,4.2rem);letter-spacing:0;line-height:1;text-align:center;margin:0 auto 20px;max-width:900px}.resume-eyebrow,.summary-statement p{text-align:center}.summary-statement p{color:#333;font-size:1.05rem;margin:0 auto 20px;max-width:900px}.columns{display:grid;gap:32px;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);align-items:start}.left-column,.right-column{text-align:left;display:grid;gap:24px}.resume-panel{border:1px solid #111;background:#fff;padding:18px 18px 10px}.resume-panel-work{min-height:100%}.work-experience-item{list-style-type:disc;padding-left:22px;line-height:1.55}.resume h1,.resume h2,.resume h3,.resume p,.resume ul,.resume li{text-align:left;margin-bottom:10px}.resume section h2{font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}.resume h3{font-size:1.12rem;margin-top:22px}.panel-scroll{max-height:360px;overflow-y:auto;padding-right:8px}.panel-scroll-compact{max-height:220px}.panel-scroll-work{max-height:1100px}.resume-stack p:last-child{margin-bottom:0}.resume-entry{border-top:1px solid #e4e4e4;padding-top:14px;margin-top:14px}.resume-entry:first-child{border-top:0;margin-top:0;padding-top:0}.resume-entry-title{color:#111;font-size:1rem;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}.resume-entry-detail{color:#222;font-size:.96rem;margin-bottom:4px}.resume-entry-meta{color:#666;font-size:.88rem;margin-bottom:0}.skills-groups{display:grid;gap:14px}.skill-group{border-top:1px solid #e4e4e4;padding-top:14px}.skill-group:first-child{border-top:0;padding-top:0}.skill-group-label{color:#111;font-size:.84rem;font-weight:700;letter-spacing:.06em;margin-bottom:6px;text-transform:uppercase}.skill-group-copy{color:#333;font-size:.95rem;line-height:1.55;margin-bottom:0}.resume-role{border-top:1px solid #d9d9d9;padding-top:18px;margin-top:18px}.resume-role:first-child{border-top:0;margin-top:0;padding-top:0}.panel-scroll::-webkit-scrollbar{width:10px}.panel-scroll::-webkit-scrollbar-thumb{background:#c7c7c7;border:2px solid #fff}.panel-scroll::-webkit-scrollbar-track{background:#f3f3f3}@media (max-width: 800px){.columns{grid-template-columns:1fr}.resume{padding-top:44px}.panel-scroll,.panel-scroll-compact,.panel-scroll-work{max-height:none;overflow:visible;padding-right:0}}footer{align-items:center;background-color:#111;color:#fff;display:flex;justify-content:space-between;padding:24px 40px;width:100%}footer p{margin:0}.footer-links{display:flex;gap:16px}footer a{color:#fff;display:inline-flex;text-decoration:none}@media (max-width: 640px){footer{align-items:flex-start;flex-direction:column;gap:16px;padding:24px}}#root{width:100%;min-height:100vh;margin:0;padding:0;text-align:center}.app-container{min-height:100vh}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#111;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}a{font-weight:500;color:#111;text-decoration:inherit}a:hover{color:#555}.icon-link,.icon-button-link{align-items:center;display:inline-flex;gap:8px}.icon-link svg,.icon-button-link svg{flex:none;font-size:.95rem}body{margin:0;min-width:320px;min-height:100vh;background:#fff}h1{line-height:1.1}p{line-height:1.65}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#111}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}
