.hero{min-height:70vh;display:flex;align-items:center;padding:3rem 0 2rem;position:relative}.hero-inner{max-width:var(--max-width);margin:0 auto;padding:0 2rem;width:100%;display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}@media(min-width:768px){.hero-inner{grid-template-columns:320px 1fr;gap:3.5rem}}@media(min-width:1024px){.hero-inner{grid-template-columns:360px 1fr;gap:4rem}}.hero-photo{position:relative}.photo-frame{position:relative;border-radius:3px;overflow:hidden;border:1px solid var(--color-border)}.headshot{width:100%;height:auto;display:block;filter:grayscale(100%);transition:filter .4s ease}.photo-frame:hover .headshot{filter:grayscale(0%)}.hero-content h1{margin-bottom:1rem;max-width:14ch}.tagline{font-size:1.125rem;color:var(--color-text-light);font-weight:500;margin:0}.hero-ctas{display:flex;gap:1rem;margin-top:1.75rem;flex-wrap:wrap}.hero-cta{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;border-radius:3px;letter-spacing:.01em;transition:background .2s ease,color .2s ease,border-color .2s ease}.hero-cta-primary{background:var(--color-accent);color:#fff}.hero-cta-primary:hover{background:var(--color-accent-hover);color:#fff}.hero-cta-secondary{background:transparent;color:var(--color-text);border:1.5px solid var(--color-border)}.hero-cta-secondary:hover{border-color:var(--color-text);color:var(--color-text)}.scroll-indicator{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);width:24px;height:24px}.scroll-indicator:after{content:"";position:absolute;width:10px;height:10px;border-right:2px solid var(--color-text-light);border-bottom:2px solid var(--color-text-light);transform:rotate(45deg);animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:rotate(45deg) translateY(0);opacity:.4}50%{transform:rotate(45deg) translateY(6px);opacity:.8}}.section{padding:3rem 2rem}.section-container{max-width:var(--content-width);margin:0 auto}.section-narrow{max-width:var(--narrow-width)}.section-wide{max-width:var(--max-width)}.section-header{margin-bottom:2.5rem}.label{display:inline-block;font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light);font-weight:500;margin-bottom:.75rem}.label--blue{color:var(--color-blue)}.label--coral{color:var(--color-coral)}.label--golden{color:var(--color-golden)}.section-header h2{margin:0}.manifesto-section{padding:3.5rem 2rem 3rem}.manifesto p{font-size:1.125rem;line-height:1.8;margin-bottom:1.5rem;max-width:100%}.manifesto p:last-child{margin-bottom:0}.manifesto strong{color:var(--color-text);font-weight:600}.manifesto-cta{color:var(--color-text);font-weight:600;border-bottom:2px solid var(--color-coral);padding-bottom:1px}.manifesto-cta:hover{color:var(--color-coral)}.skills-section{padding-top:2.5rem;padding-bottom:2.5rem;background:#7e9db70f;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.skills-grid{display:flex;flex-wrap:wrap;gap:.75rem}.skill-tag{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;font-weight:500;color:var(--color-text-medium);border:1px solid var(--color-border);border-radius:3px;padding:.5rem 1.25rem;transition:border-color .2s ease,color .2s ease;white-space:nowrap}.skill-tag:hover{border-color:var(--color-blue);color:var(--color-blue)}.services-section{padding-top:3rem;padding-bottom:3rem}.services-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr)}}.service-card{padding:2rem 1.75rem;border:1px solid var(--color-border);border-radius:3px;transition:border-color .2s ease}.service-card:hover{border-color:var(--color-coral)}.service-problem{font-size:1.125rem;font-weight:600;line-height:1.4;margin-bottom:1rem;color:var(--color-text)}.service-solution{font-size:.9375rem;line-height:1.7;color:var(--color-text-medium);margin:0}.services-footer{margin-top:2.5rem;text-align:center}.services-catchall{font-size:1rem;line-height:1.7;color:var(--color-text-medium);max-width:52ch;margin:0 auto 1.75rem}.services-cta{display:inline-block;padding:.75rem 2rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:#fff;background:var(--color-accent);border-radius:3px;letter-spacing:.01em;transition:background .2s ease}.services-cta:hover{background:var(--color-accent-hover);color:#fff}.showcase{padding:0;overflow:clip;position:relative;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.showcase:before,.showcase:after{content:"";position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none}.showcase:before{left:0;background:linear-gradient(to right,var(--color-background) 0%,transparent 100%)}.showcase:after{right:0;background:linear-gradient(to left,var(--color-background) 0%,transparent 100%)}.showcase-track{display:flex;gap:1.5rem;padding:2.5rem 0;width:max-content}@supports (animation-timeline: view()){.showcase{view-timeline:--showcase-section block}.showcase-track{animation:showcase-scroll linear both;animation-timeline:--showcase-section;animation-range:cover 0% cover 100%}}@keyframes showcase-scroll{0%{transform:translate(0)}to{transform:translate(calc(-100% + 100vw))}}.showcase-item{position:relative;flex-shrink:0;width:420px;aspect-ratio:16 / 10;border-radius:2px;overflow:hidden;cursor:default;border:1px solid var(--color-border)}.showcase-item img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%);opacity:.8;transition:filter .5s ease,opacity .5s ease,transform .5s ease}.showcase-item:hover img{filter:grayscale(0%);opacity:1;transform:scale(1.02)}.showcase-label{position:absolute;bottom:0;left:0;right:0;padding:1.5rem 1rem .75rem;background:linear-gradient(to top,rgba(255,255,255,.9) 0%,transparent 100%);font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light);transform:translateY(4px);opacity:0;transition:opacity .4s ease,transform .4s ease}.showcase-item:hover .showcase-label{opacity:1;transform:translateY(0)}.timeline{display:flex;flex-direction:column;gap:2.5rem}.timeline-item{display:grid;grid-template-columns:1fr;gap:1rem;padding-bottom:2.5rem;border-bottom:1px solid var(--color-border)}@media(min-width:640px){.timeline-item{grid-template-columns:120px 1fr;gap:2rem}}.timeline-item:last-child{border-bottom:none;padding-bottom:0}.timeline-date time{font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-light);display:flex;align-items:center;gap:.5rem}.timeline-date time:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-coral);flex-shrink:0}.timeline-content h3{margin-bottom:.5rem}.timeline-content .role{font-weight:500;color:var(--color-text);margin-bottom:.75rem;font-size:.9375rem}.timeline-content .description{line-height:1.7;max-width:56ch;margin:0}.projects-section{border-top:1px solid var(--color-border)}.section-subhead{margin:.75rem 0 0;color:var(--color-text-light);font-size:1rem;line-height:1.6;max-width:52ch}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:0}@media(min-width:768px){.projects-grid{grid-template-columns:1fr 1fr}}.project-card{padding:2rem 1.75rem;border:1px solid var(--color-border);border-radius:3px;display:flex;flex-direction:column;gap:1rem;transition:border-color .2s ease;position:relative}.project-card:hover{border-color:var(--color-blue)}.project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.project-name{font-size:1.125rem;font-weight:600;margin:0;line-height:1.3}.project-links{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.project-link{color:var(--color-text-light);text-decoration:none;display:flex;align-items:center;transition:color .2s ease}.project-link:hover{color:var(--color-blue)}.project-link:not(.project-link--demo){position:relative;z-index:2}.project-link--demo{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.project-link--demo:after{content:"";position:absolute;inset:0;z-index:1}.project-description{margin:0;color:var(--color-text-medium);font-size:.9375rem;line-height:1.65;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:auto}.project-tag{font-family:var(--font-mono);font-size:.625rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-light);border:1px solid var(--color-border);border-radius:2px;padding:.25rem .5rem;white-space:nowrap}.this-that-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}@media(min-width:640px){.this-that-grid{grid-template-columns:1fr 240px;gap:3rem;align-items:center}}@media(min-width:1024px){.this-that-grid{grid-template-columns:1fr 280px}}.this-that-photo{border-radius:3px;overflow:hidden;border:1px solid var(--color-border);aspect-ratio:1}.this-that-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%);transition:filter .5s ease}.this-that-photo:hover img{filter:grayscale(0%)}.this-that-list{list-style:none;padding:0}.this-that-list li{padding:.75rem 0;border-bottom:1px solid var(--color-border);line-height:1.6;transition:color .2s ease}.this-that-list li:last-child{border-bottom:none}.this-that-section{background:#c49a5a0f;border-top:1px solid var(--color-border)}.this-that-list li:hover{color:var(--color-golden)}.contact-section{padding-bottom:2.5rem}.contact-section h2{margin-bottom:1.5rem}.contact-cta{position:relative;display:inline-block;font-size:1.5rem;font-weight:600;color:var(--color-text);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;background:none;border-top:none;border-left:none;border-right:none;cursor:copy;font-family:inherit;transition:border-color .3s ease}.contact-cta.copied{border-bottom-color:#4caf84}.copy-hint,.copy-confirm{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(5px);font-size:.7rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em;padding:.25em .65em;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.copy-hint:after,.copy-confirm:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent}.copy-hint{color:var(--color-text-light);background:var(--color-bg);border:1px solid currentColor}.copy-hint:after{border-top-color:var(--color-text-light)}.contact-cta:hover .copy-hint{opacity:1;transform:translate(-50%) translateY(0)}.contact-cta.copied .copy-hint{opacity:0;transform:translate(-50%) translateY(5px);transition:none}.copy-confirm{color:#fff;background:#4caf84}.copy-confirm:after{border-top-color:#4caf84}.contact-cta.copied .copy-confirm{opacity:1;transform:translate(-50%) translateY(0)}.contact-links{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:1.5rem}.contact-link{display:inline-flex;align-items:center;gap:.4rem;font-size:1rem;font-weight:500;color:var(--color-text);border-bottom:2px solid var(--color-blue);padding-bottom:.15rem;transition:all .2s ease}.contact-link:hover{color:var(--color-blue)}.contact-link svg{flex-shrink:0}@media(max-width:767px){.hero{min-height:auto;padding:2.5rem 0 1.5rem}.hero-inner{padding:0 1.5rem}.hero-photo{display:flex;justify-content:center}.photo-frame{max-width:240px;width:100%}.hero-content{text-align:center}.hero-ctas{justify-content:center}.hero-content h1{max-width:100%}.scroll-indicator{display:none}.section{padding:2.5rem 1.5rem}.manifesto-section{padding:2.5rem 1.5rem 2rem}.manifesto p{font-size:1rem}.showcase-item{width:300px}.showcase-track{gap:1rem;padding:1.5rem 0}.showcase:before,.showcase:after{width:40px}.skills-grid{gap:.5rem}.skill-tag{font-size:.625rem;padding:.375rem 1rem}.service-card{padding:1.5rem 1.25rem}.service-problem{font-size:1rem}.services-catchall{font-size:.9375rem}.contact-section{padding-bottom:2rem}.contact-cta{font-size:1.25rem}}
