:root{--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: Georgia, "Times New Roman", serif;--color-ink: #1b1b1a;--color-soft-ink: #3c3c39;--color-muted-local: #696966;--color-line: #d8d6cf;--color-line-strong: #bdb9ae;--color-accent: #8f3142;--color-accent-dark: #642330;--color-blue: #36566a;--shadow-soft: 0 18px 48px rgba(31, 31, 31, .08);--shadow-lift: 0 24px 62px rgba(31, 31, 31, .14);--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-fluid: cubic-bezier(.16, 1, .3, 1);--hover-duration: .42s;color-scheme:light;font-family:var(--font-sans);line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--color-bg, #f3f3f1);color:var(--color-text, #1f1f1f)}body{min-width:320px;margin:0;background:linear-gradient(180deg,#ffffffd1,#f3f3f100 24rem),linear-gradient(90deg,rgba(255,255,255,.42) 1px,transparent 1px),var(--color-bg, #f3f3f1);background-size:auto,44px 44px,auto}body,button,input,textarea{font:inherit}a{color:inherit}img{display:block;max-width:100%}button,input,textarea{border-radius:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.skip-link{position:absolute;left:1rem;top:1rem;z-index:10;transform:translateY(-150%);background:var(--color-ink);color:#fff;padding:.65rem .85rem}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:5;border-bottom:1px solid rgba(216,214,207,.86);background:#f8f8f5eb;backdrop-filter:blur(14px)}.header-inner,.footer-inner,main{width:min(1120px,calc(100% - 2rem));margin:0 auto}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0}.brand{display:inline-flex;flex-direction:column;gap:.08rem;text-decoration:none}.brand-name{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;transition:color .24s var(--ease-standard)}.brand:hover .brand-name{color:var(--color-accent)}.brand-title,.eyebrow,.source-label{color:var(--color-muted, #606060);font-size:.76rem;font-weight:750;letter-spacing:0;text-transform:uppercase}.primary-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.15rem}.nav-toggle{display:none;align-items:center;gap:.55rem;border:1px solid var(--color-line-strong);background-color:#ffffffb8;color:var(--color-ink);cursor:pointer;padding:.58rem .72rem;transition:background-color .17s var(--ease-standard),border-color .17s var(--ease-standard),color .17s var(--ease-standard),transform .17s var(--ease-standard)}.nav-toggle:hover,.nav-toggle:focus-visible,.nav-toggle[aria-expanded=true]{border-color:var(--color-accent);background-color:var(--color-accent);color:#fff;transform:scale(1.025)}.nav-toggle-icon{display:grid;gap:.18rem;width:1.05rem}.nav-toggle-icon span{display:block;height:2px;background:currentColor;transition:opacity .17s var(--ease-standard),transform .17s var(--ease-standard)}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:nth-child(1){transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle-icon span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.primary-nav a{display:inline-flex;align-items:center;justify-content:center;position:relative;border:1px solid transparent;padding:.55rem .72rem;text-decoration:none;transform:scale(1);transition-duration:var(--hover-duration);transition-property:background-color,border-color,color,transform;transition-timing-function:var(--ease-fluid);will-change:transform}.primary-nav a:after{position:absolute;right:.72rem;bottom:.36rem;left:.72rem;height:1px;background:var(--color-accent);content:"";opacity:0;transform:scaleX(0);transform-origin:left;transition-duration:var(--hover-duration);transition-property:opacity,transform;transition-timing-function:var(--ease-fluid)}.primary-nav a:hover,.primary-nav a:focus-visible{border-color:#cbc7bc;background-color:#ffffffad;color:var(--color-accent-dark);transform:scale(1.025)}.primary-nav a[aria-current=page]{border-color:#cbc7bc;background-color:#ffffffad;color:var(--color-accent-dark)}.primary-nav a:hover:after,.primary-nav a[aria-current=page]:after{opacity:1;transform:scaleX(1)}main{padding:clamp(3.5rem,7vw,6.25rem) 0 5rem}h1,h2,h3{font-family:var(--font-serif);line-height:1.05;margin:0}h1{max-width:11ch;color:var(--color-ink);font-size:clamp(3.2rem,6vw,6.8rem);font-weight:700}h2{color:var(--color-ink);font-size:clamp(1.45rem,2.5vw,2rem)}p{margin:0}.lead,.prose{color:var(--color-soft-ink);font-size:clamp(1.05rem,1.6vw,1.24rem)}.prose{display:grid;gap:1rem}.prose a{color:var(--color-accent-dark);font-weight:750;text-decoration-color:#8f314273;text-decoration-thickness:.08em;text-underline-offset:.22em;transition:color .26s var(--ease-standard),text-decoration-color .26s var(--ease-standard)}.prose a:hover,.prose a:focus-visible{color:var(--color-blue);text-decoration-color:currentColor}.home-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);align-items:center;gap:clamp(2rem,5vw,5.25rem)}.hero-copy{display:grid;gap:1.35rem}.hero-copy .eyebrow,.page-intro .eyebrow,.section-heading .eyebrow{display:inline-flex;width:fit-content;align-items:center;gap:.65rem}.hero-copy .eyebrow:before,.page-intro .eyebrow:before,.section-heading .eyebrow:before{width:2.4rem;height:1px;background:var(--color-accent);content:""}.hero-bio{max-width:64ch}.hero-media{position:relative;align-self:stretch}.hero-media:before{position:absolute;inset:1rem -1rem -1rem 1rem;z-index:-1;border:1px solid var(--color-line-strong);content:""}.headshot{width:100%;min-height:420px;height:100%;border:1px solid var(--color-line-strong);box-shadow:var(--shadow-soft);object-fit:cover;object-position:center top}.email-link{width:fit-content;color:var(--color-accent-dark);font-weight:750;text-decoration-color:#8f314273;text-decoration-thickness:.08em;text-underline-offset:.22em;transition:color .26s var(--ease-standard),text-decoration-color .26s var(--ease-standard)}.email-link:hover{color:var(--color-blue);text-decoration-color:currentColor}.cta-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-top:.5rem;max-width:760px}.cta-links a,.contact-actions button,.contact-actions a{display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--color-ink);background-color:var(--color-ink);color:#fff;padding:.82rem 1.05rem;text-decoration:none;transform:scale(1);transition-duration:var(--hover-duration);transition-property:background-color,border-color,box-shadow,color,transform;transition-timing-function:var(--ease-fluid);will-change:transform}.cta-links a{justify-content:space-between;min-height:3.2rem;border-color:var(--color-line-strong);background-color:#ffffffd1;box-shadow:0 1px #1f1f1f0a;color:var(--color-ink);font-weight:750}.cta-links a:after{width:.42rem;height:.42rem;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;content:"";opacity:.62;transform:rotate(45deg);transition-duration:var(--hover-duration);transition-property:opacity,transform;transition-timing-function:var(--ease-fluid)}.cta-links a:hover,.cta-links a:focus-visible,.contact-actions button:hover,.contact-actions button:focus-visible,.contact-actions a:hover,.contact-actions a:focus-visible{background-color:var(--color-accent);border-color:var(--color-accent);box-shadow:0 10px 24px #1f1f1f1f;color:#fff;transform:scale(1.025)}.contact-actions a{background-color:transparent;color:var(--color-ink)}.cta-links a:hover:after,.cta-links a:focus-visible:after{opacity:1;transform:rotate(45deg) translate(2px,-2px)}.contact-actions a:hover,.contact-actions a:focus-visible{color:#fff}.page-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;margin-bottom:2.75rem}.page-intro-copy{min-width:0}.page-intro-with-images{grid-template-columns:minmax(210px,.54fr) minmax(0,.92fr) minmax(210px,.54fr);align-items:center;gap:clamp(1rem,3vw,2rem);margin-bottom:3.25rem}.page-intro-with-images .page-intro-copy{align-self:center}.page-intro.narrow{max-width:780px}.page-intro h1{max-width:14ch;margin-top:.35rem}.page-intro .lead{max-width:780px;margin-top:1.25rem}.intro-logo{width:180px;min-height:120px;border:1px solid var(--color-line);background:#fff;box-shadow:var(--shadow-soft);object-fit:contain;padding:1rem}.intro-image{width:100%;height:clamp(360px,38vw,520px);border:1px solid var(--color-line-strong);box-shadow:var(--shadow-soft);object-fit:cover;object-position:center center}.intro-image-left{align-self:start}.intro-image-right{align-self:end}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem}.work-card{min-width:0;overflow:hidden;background-color:var(--color-surface, #fff);border:1px solid var(--color-line);box-shadow:0 1px #1f1f1f08;transform:scale(1);transition-duration:var(--hover-duration);transition-property:background-color,border-color,box-shadow,transform;transition-timing-function:var(--ease-fluid);will-change:transform}.work-card:hover,.work-card:focus-within{background-color:#fff;border-color:var(--color-line-strong);box-shadow:0 18px 42px #1f1f1f1a;transform:scale(1.012)}.work-card-link{display:grid;height:100%;color:inherit;text-decoration:none}.work-card-link:hover .work-card-image,.work-card-link:focus-visible .work-card-image{opacity:.92;transform:scale(1.018)}.work-card-link:hover .text-link,.work-card-link:focus-visible .text-link{color:var(--color-accent)}.work-card-image{width:100%;aspect-ratio:16 / 9;border-bottom:1px solid var(--color-line);object-fit:cover;transform:scale(1);transition-duration:var(--hover-duration);transition-property:opacity,transform;transition-timing-function:var(--ease-fluid);will-change:transform,opacity}.work-card-body{display:grid;align-content:start;gap:.75rem;padding:1.3rem}.work-card-body h2{max-width:22ch}.work-card-body p:not(.source-label):not(.work-note){color:#454541}.source-label{color:var(--color-blue)}.work-note{border-left:3px solid var(--color-accent);color:#55534e;padding-left:.75rem}.text-link{width:fit-content;margin-top:.25rem;color:var(--color-ink);font-weight:750;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.23em;transition:color .18s var(--ease-fluid)}.resume-stack{display:grid;gap:1.25rem}.resume-image{width:min(900px,100%);min-height:520px;margin:0 auto;border:1px solid var(--color-line-strong);background:#fff;box-shadow:var(--shadow-soft);object-fit:contain}.resume-fallback{max-width:780px;margin:2rem auto 0}.contact-section{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);margin-top:5rem;padding-top:3rem;border-top:1px solid var(--color-line)}.section-heading h2{margin-top:.35rem}.contact-form{display:grid;gap:1rem;border-left:1px solid var(--color-line);padding-left:clamp(1rem,3vw,2rem)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}label{display:grid;gap:.38rem;color:#343430;font-weight:750}input,textarea{width:100%;border:1px solid #bbb8ae;background:#ffffffdb;color:var(--color-ink);padding:.78rem .85rem;transition:background-color .26s var(--ease-standard),border-color .26s var(--ease-standard),box-shadow .26s var(--ease-standard)}input:focus,textarea:focus{border-color:var(--color-accent);background:#fff;box-shadow:0 0 0 4px #8f31421a;outline:none}textarea{resize:vertical}.contact-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.contact-actions button{cursor:pointer}.image-fallback{display:grid;place-items:center;align-content:center;gap:.35rem;min-height:220px;background:linear-gradient(135deg,#8f314214,#36566a14),#efeee9;color:#4b4b47;text-align:center;padding:1rem}.image-fallback span{font-weight:750}.image-fallback small{overflow-wrap:anywhere;color:#66625c}.site-footer{border-top:1px solid var(--color-line);color:#55534e}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.5rem 0}.footer-inner a{color:var(--color-accent-dark);font-weight:700}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto!important}.primary-nav a:hover,.primary-nav a:focus-visible,.nav-toggle:hover,.nav-toggle:focus-visible,.cta-links a:hover,.cta-links a:focus-visible,.contact-actions button:hover,.contact-actions button:focus-visible,.contact-actions a:hover,.contact-actions a:focus-visible,.work-card:hover,.work-card:focus-within,.work-card-link:hover .work-card-image,.work-card-link:focus-visible .work-card-image{transform:scale(1)}}@media(max-width:860px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem 1rem}.brand{min-width:0}.brand-name,.brand-title{overflow-wrap:anywhere}.nav-toggle{display:inline-flex}.primary-nav{display:none;grid-column:1 / -1;width:100%;border-top:1px solid var(--color-line);padding-top:.75rem}html[data-mobile-menu=open] .primary-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.primary-nav a{display:flex;min-height:2.8rem;align-items:center;justify-content:center;border-color:var(--color-line);background-color:#ffffffa3;padding:.74rem .7rem;text-align:center}.primary-nav a:after{display:none}.primary-nav a:hover,.primary-nav a:focus-visible,.primary-nav a[aria-current=page]{border-color:var(--color-accent);background-color:var(--color-accent);color:#fff}}@media(max-width:820px){.header-inner,.home-hero,.page-intro,.contact-section{grid-template-columns:1fr}main{padding-top:3rem}h1{font-size:clamp(2.7rem,14vw,4.5rem)}.home-hero{align-items:start}.hero-media{order:-1}.hero-media:before{inset:.7rem -.7rem -.7rem .7rem}.headshot{min-height:320px;aspect-ratio:4 / 3;object-position:center top}.work-grid,.form-grid{grid-template-columns:1fr}.page-intro-with-images{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.page-intro-with-images .page-intro-copy{grid-column:1 / -1;grid-row:1}.page-intro-with-images .intro-image{height:auto;aspect-ratio:4 / 5}.page-intro-with-images .intro-image-left{grid-column:1;grid-row:2}.page-intro-with-images .intro-image-right{grid-column:2;grid-row:2}.cta-links{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-image{min-height:420px}.contact-form{border-left:0;padding-left:0}}@media(max-width:560px){.header-inner,.footer-inner,main{width:min(100% - 1rem,1120px)}.header-inner{padding:.78rem 0}.brand-name{font-size:1.12rem}.brand-title{font-size:.68rem}html[data-mobile-menu=open] .primary-nav{grid-template-columns:1fr}main{padding-top:2.2rem}.page-intro{gap:1.25rem;margin-bottom:2rem}.page-intro-with-images{grid-template-columns:1fr}.page-intro-with-images .intro-image,.intro-logo{display:none}.page-intro-with-images .intro-image-left{grid-column:1;grid-row:2}.page-intro-with-images .intro-image-right{grid-column:1;grid-row:3}.hero-media:before{display:none}.headshot,.intro-image,.work-card,.resume-image{box-shadow:none}.work-card:hover,.work-card:focus-within{transform:none}.cta-links,.contact-actions{align-items:stretch}.contact-actions{flex-direction:column}.cta-links{grid-template-columns:1fr}.cta-links a,.contact-actions button,.contact-actions a{text-align:center}}
