code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.about-info{grid-gap:48px;display:grid;gap:48px;text-align:left}.hero{grid-gap:28px;display:grid;gap:28px;padding-bottom:48px;padding-top:8px}.hero-copy{max-width:640px}.tagline{font-size:clamp(2.8rem,6vw,4.6rem);margin:0}.vocation{color:var(--ink);font-size:clamp(1.2rem,1.8vw,1.4rem);font-weight:500;line-height:1.45;margin:14px 0 0;max-width:640px}.summary{color:var(--copy);font-size:1.125rem;line-height:1.7;margin:16px 0 0;max-width:640px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.portrait{margin:0}.headshot{aspect-ratio:1;border:1px solid var(--line);border-radius:20px;display:block;filter:saturate(.88) contrast(1.02);max-width:420px;object-fit:cover;object-position:center 12%;width:100%}.profile-band{grid-gap:36px;border-top:1px solid var(--line);display:grid;gap:36px;padding-top:56px}.profile-copy{max-width:560px}.section-heading{font-size:clamp(1.6rem,2.4vw,2rem);margin:0 0 12px}.profile-copy p{color:var(--copy);font-size:1.125rem;line-height:1.7;margin:0 0 14px}.profile-copy p:last-child{margin-bottom:0}.featured-work,.skills-band{border-top:1px solid var(--line);padding-top:56px}.timeline{grid-gap:0;display:grid;gap:0;margin:8px 0 0}.timeline div{grid-gap:4px;border-bottom:1px solid var(--line);display:grid;gap:4px;padding:12px 0}.timeline div:last-child{border-bottom:0;padding-bottom:0}.timeline dt{color:var(--ink);font-family:var(--font-display);font-size:1.25rem;font-weight:600}.timeline dd{color:var(--copy);font-size:1rem;margin:0}.skill-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:18px 0 0;padding:0}.skill-list li{background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:.95rem;font-weight:500;padding:8px 12px}.featured-intro{max-width:640px}.featured-list{list-style:none;margin:28px 0 24px;padding:0}.featured-card{grid-gap:18px;align-items:start;border-bottom:1px solid var(--line);color:inherit;display:grid;gap:18px;grid-template-columns:auto 1fr auto;padding:22px 0;text-decoration:none}.featured-list li:first-child .featured-card{border-top:1px solid var(--line)}.featured-card:hover .featured-arrow,.featured-card:hover .featured-body strong{color:var(--forest)}.featured-index{color:var(--muted);font-size:.85rem;font-weight:600;letter-spacing:.08em}.featured-body{grid-gap:6px;display:grid;gap:6px}.featured-body strong{color:var(--ink);font-family:var(--font-display);font-size:1.45rem;font-weight:600}.featured-body span{color:var(--copy);font-size:1.05rem;line-height:1.6}.featured-arrow{color:var(--muted);font-size:1.2rem}.text-link{box-shadow:inset 0 -1px 0 var(--forest);color:var(--forest-deep);font-weight:600;text-decoration:none}.text-link:hover{color:var(--forest)}@media (min-width:880px){.about-info{gap:36px}.hero{align-items:start;gap:56px;grid-template-columns:minmax(0,1.2fr) minmax(280px,.72fr);padding-bottom:64px}.headshot,.hero,.hero-copy{max-width:none}.headshot{max-height:400px}.profile-band{align-items:start;gap:48px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.featured-work,.profile-band,.skills-band{padding-top:64px}.profile-copy{max-width:none}.timeline div{padding:8px 0}}.project-container{grid-gap:32px;border-top:1px solid var(--line);display:grid;gap:32px;padding-top:8px}.project-copy{min-width:0}.project-label{align-items:center;color:var(--forest-deep);display:flex;font-size:.84rem;font-weight:700;gap:12px;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.project-label span{color:var(--muted)}.project-title{font-size:clamp(2rem,4vw,3rem);margin:0}.project-lede{color:var(--ink);font-size:1.2rem;font-weight:500;line-height:1.55;margin:14px 0 0}.project-description{color:var(--copy);font-size:1.125rem;line-height:1.7;margin:16px 0 0}.tech-stack-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}.tech-item{background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:.88rem;font-weight:500;padding:6px 10px}.site-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.photo-area{min-width:0}.screenshot-frame{background:var(--surface);border:1px solid var(--line);margin:0;overflow:hidden;padding:12px}.picture-holder{display:block}.project-screenshot{background:#fff;display:block;max-height:560px;object-fit:contain;width:100%}.screenshot-caption{color:var(--copy);font-size:.92rem;margin:10px 4px 0}.carousel-btns{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-top:14px}.carousel-nav-btn{color:var(--ink);font-size:.88rem;font-weight:700;letter-spacing:.06em;min-height:40px;padding:0;text-transform:uppercase}.carousel-nav-btn:hover{color:var(--forest-deep)}.scr-shots-num-holder{display:flex;gap:8px}.scr-shot-num{align-items:center;display:inline-flex;height:28px;justify-content:center;padding:0;width:28px}.scr-shot-num:after{background:var(--line);border-radius:999px;content:"";height:10px;width:10px}.active-shot:after{background:var(--forest)}@media (min-width:960px){.project-container{align-items:start;gap:48px;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.project-li:nth-child(2n) .project-copy{order:2}}.portfolio-info{text-align:left}.projects-list-container{grid-gap:88px;display:grid;gap:88px;list-style:none;margin:0;padding:0}.project-li{margin:0;scroll-margin-top:96px}.portfolio-cta{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:80px;padding-top:28px}.portfolio-cta p{color:var(--ink);font-family:var(--font-display);font-size:1.5rem;font-weight:600;margin:0}.contact-info{text-align:left}.email-hero{box-shadow:inset 0 -2px 0 var(--forest);color:var(--ink);display:inline-block;font-family:var(--font-display);font-size:clamp(1.6rem,4vw,2.8rem);line-height:1.2;margin:8px 0 48px;text-decoration:none}.email-hero:hover{color:var(--forest-deep)}.contact-panel{grid-gap:0;border-top:1px solid var(--line);display:grid;gap:0;list-style:none;margin:0;padding:0}.contact-card{grid-gap:6px;border-bottom:1px solid var(--line);display:grid;gap:6px;padding:22px 0}.contact-card span{color:var(--forest-deep);font-size:.84rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.contact-link{color:var(--ink);font-size:1.2rem;font-weight:600;text-decoration:none}.contact-link:hover{color:var(--forest)}@media (min-width:800px){.contact-panel{border-top:0;gap:32px;grid-template-columns:repeat(2,1fr);max-width:640px}.contact-card{border-bottom:0;border-top:1px solid var(--line);padding-top:0}}:root{--paper:#f7f4ec;--paper-deep:#ebe6db;--surface:#fffcf6;--ink:#12100e;--copy:#2a2622;--muted:#534d45;--line:#d4cbb8;--forest:#184536;--forest-deep:#102e24;--copper:#9a4a24;--focus:#184536;--shadow:0 18px 40px #1a161214;--radius:2px;--header-height:76px;--content:1120px;--font-display:"Newsreader","Iowan Old Style","Palatino Linotype",Palatino,serif;--font-body:"Public Sans","Segoe UI",Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{background:#f7f4ec;background:var(--paper);scroll-behavior:smooth;scroll-padding-top:92px}body{-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;background:radial-gradient(900px 420px at 0 -10%,#21554414,#0000 55%),radial-gradient(720px 380px at 100% 0,#9a4a2412,#0000 50%),#f7f4ec;background:radial-gradient(900px 420px at 0 -10%,#21554414,#0000 55%),radial-gradient(720px 380px at 100% 0,#9a4a2412,#0000 50%),var(--paper);color:#2a2622;color:var(--copy);font-family:Public Sans,Segoe UI,Helvetica,Arial,sans-serif;font-family:var(--font-body);font-size:1.125rem;font-weight:400;line-height:1.7;margin:0;text-rendering:optimizeLegibility}a,button,input{font-family:inherit}button{background:none;border:0;cursor:pointer}img{height:auto;max-width:100%}h1,h2,h3{color:#12100e;color:var(--ink);font-family:Newsreader,Iowan Old Style,Palatino Linotype,Palatino,serif;font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.18}a:focus-visible,button:focus-visible{outline:2px solid #184536;outline:2px solid var(--focus);outline-offset:3px}.skip-link{background:#12100e;background:var(--ink);color:#f7f4ec;color:var(--paper);left:12px;padding:10px 14px;position:absolute;text-decoration:none;top:12px;transform:translateY(-160%);z-index:40}.skip-link:focus{transform:translateY(0)}.site{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh}.content{margin:0 auto;padding:32px 20px 88px;width:min(100%,1120px);width:min(100%,var(--content))}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f4ecf0;border-bottom:1px solid #d4cbb8;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.menu-container{align-items:center;display:flex;gap:24px;justify-content:space-between;margin:0 auto;min-height:76px;min-height:var(--header-height);padding:16px 20px;width:min(100%,1120px);width:min(100%,var(--content))}.brand-mark{color:#12100e;color:var(--ink);font-family:Newsreader,Iowan Old Style,Palatino Linotype,Palatino,serif;font-family:var(--font-display);font-size:1.45rem;font-weight:600;line-height:1;text-decoration:none}.brand-mark span{color:#534d45;color:var(--muted);display:block;font-family:Public Sans,Segoe UI,Helvetica,Arial,sans-serif;font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.menu-links{align-items:center;display:flex;gap:8px;list-style:none;margin:0;padding:0}.menu-item{align-items:center;color:#12100e;color:var(--ink);display:inline-flex;font-size:1rem;font-weight:600;letter-spacing:.01em;min-height:40px;padding:0 12px;text-decoration:none}.menu-item:hover{color:#184536;color:var(--forest)}.current-page-nav{box-shadow:inset 0 -2px 0 #184536;box-shadow:inset 0 -2px 0 var(--forest)}.current-page-nav,.kicker{color:#102e24;color:var(--forest-deep)}.kicker{font-size:.84rem;font-weight:700;letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}.page-intro{margin:12px 0 56px;max-width:720px}.page-title{font-size:clamp(2.6rem,6vw,4.4rem);margin:0}.lede{color:#2a2622;color:var(--copy);font-size:1.2rem;font-weight:500;line-height:1.7;margin:18px 0 0}.action-link-text,.secondary-action-link,.site-btn{align-items:center;border-radius:2px;border-radius:var(--radius);display:inline-flex;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;letter-spacing:.02em;min-height:48px;padding:0 18px;text-decoration:none;transition:background .16s ease,color .16s ease,border-color .16s ease}.action-link-text,.site-btn.primary-site-btn{background:#184536;background:var(--forest);border:1px solid #184536;border:1px solid var(--forest);color:#f7f4ec;color:var(--paper)}.action-link-text:hover,.site-btn.primary-site-btn:hover{background:#102e24;background:var(--forest-deep);border-color:#102e24;border-color:var(--forest-deep);color:#f7f4ec;color:var(--paper)}.secondary-action-link,.site-btn{background:#0000;border:1px solid #12100e;border:1px solid var(--ink);color:#12100e;color:var(--ink)}.secondary-action-link:hover,.site-btn:hover{background:#12100e;background:var(--ink);color:#f7f4ec;color:var(--paper)}.site-btn.primary-site-btn:hover{background:#102e24;background:var(--forest-deep);color:#f7f4ec;color:var(--paper)}.site-footer{background:#ebe6db;background:var(--paper-deep);border-top:1px solid #d4cbb8;border-top:1px solid var(--line)}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;margin:0 auto;padding:28px 20px;width:min(100%,1120px);width:min(100%,var(--content))}.footer-copy{color:#2a2622;color:var(--copy);font-size:.95rem;margin:0}.footer-items{display:flex;gap:8px;list-style:none;margin:0;padding:0}.icon a{align-items:center;border:1px solid #0000;border-radius:999px;color:#2a2622;color:var(--copy);display:inline-flex;height:42px;justify-content:center;width:42px}.icon a:hover{background:#fffcf6;background:var(--surface);border-color:#d4cbb8;border-color:var(--line);color:#102e24;color:var(--forest-deep)}.icon svg{fill:currentColor;height:18px;width:18px}@media (max-width:700px){.menu-container{align-items:flex-start;flex-direction:column;gap:10px;padding:16px 20px 12px}.menu{width:100%}.menu-links{gap:0;justify-content:space-between;width:100%}.menu-item{flex:1 1;justify-content:center;padding:0 6px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.li-link-nav{display:flex}.mail-link{color:inherit}
/*# sourceMappingURL=main.6e090fb5.css.map*/