@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap";:root{--bg:#f7f7f4;--surface:#eeeee9;--ink:#1c1e1c;--muted:#676963;--line:#dcdcd5;--accent:#d8ff5e;--serif:"Playfair Display", Georgia, serif;--sans:"DM Sans", sans-serif;--mono:"DM Mono", monospace;color:var(--ink);background:var(--bg);font-family:var(--sans)}:root[data-theme=dark]{--bg:#161817;--surface:#212421;--ink:#f2f3ec;--muted:#a7aaa2;--line:#373a36;--accent:#d8ff5e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--ink);margin:0}button,a{font:inherit}button{color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}.skip-link{z-index:30;background:var(--accent);color:#162000;padding:.7rem 1rem;position:fixed;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb, var(--bg) 88%, transparent);justify-content:space-between;align-items:center;height:82px;padding:0 clamp(1.25rem,5vw,5rem);display:flex;position:sticky;top:0}.brand{letter-spacing:-.08em;background:0 0;font-size:1.35rem;font-weight:700}.brand span{color:#7eaa00}.nav{gap:2rem;display:flex}.nav button{background:0 0;font-size:.83rem}.nav button:hover,.nav button:focus-visible{text-underline-offset:5px;text-decoration:underline}.header-actions{align-items:center;gap:.8rem;display:flex}.language-toggle{font-family:var(--mono);border:1px solid var(--line);background:0 0;border-radius:50%;width:35px;height:35px;font-size:.75rem}.icon-button{border:1px solid var(--line);background:0 0;border-radius:50%;place-items:center;width:35px;height:35px;font-size:1.1rem;display:grid}.menu-button{background:0 0;font-size:1.25rem;display:none}.section{padding-left:clamp(1.25rem,8vw,9rem);padding-right:clamp(1.25rem,8vw,9rem)}.hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:3rem;min-height:calc(100vh - 82px);display:grid}.availability{font:.67rem var(--mono);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.55rem;margin-bottom:4rem;display:flex}.availability i{background:#92be17;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 4px #92be1724}.hero-greeting,.eyebrow{color:var(--muted);font:.69rem var(--mono);letter-spacing:.07em;text-transform:uppercase;margin:0 0 1.15rem}.hero h1{letter-spacing:-.075em;max-width:780px;margin:.1rem 0 1.35rem;font-size:clamp(3.25rem,7.4vw,7.5rem);font-weight:500;line-height:.93}.intro{max-width:500px;color:var(--muted);font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.6}.hero-actions{align-items:center;gap:1rem;margin-top:2.25rem;display:flex}.button{border-radius:2px;padding:.82rem 1.1rem;font-size:.88rem;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:var(--bg)}.primary span,.email-link span{margin-left:1rem}.text-button{text-underline-offset:5px;background:0 0;text-decoration:underline}.hero-statement{border-left:1px solid var(--line);flex-direction:column;justify-content:space-between;align-self:stretch;padding:3.2rem 0 2.8rem 2rem;display:flex}.hero-statement span,.scroll-cue{font:.65rem var(--mono);color:var(--muted)}.hero-statement p{letter-spacing:-.04em;margin:auto 0;font-size:1.4rem;line-height:1.2}.hero-statement em{font-family:var(--serif)}.scroll-cue{text-transform:uppercase;letter-spacing:.04em}.work-section{padding-top:9rem;padding-bottom:9rem}.section-heading{justify-content:space-between;align-items:end;margin-bottom:4rem;display:flex}.section-heading h2,.about h2,.contact h2{letter-spacing:-.06em;max-width:650px;margin:0;font-size:clamp(2.4rem,5.2vw,5rem);font-weight:500;line-height:.98}.project-list{gap:8rem;display:grid}.project-card{grid-template-columns:minmax(0,1.55fr) minmax(230px,.8fr);align-items:start;gap:clamp(1.5rem,5vw,6rem);display:grid}.project-crm{grid-template-columns:minmax(230px,.8fr) minmax(0,1.55fr)}.project-crm .project-image{order:2}.project-image{background:var(--surface);aspect-ratio:1.42;width:100%;padding:0;display:block;position:relative;overflow:hidden}.project-image img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .25s;display:block}.project-image:hover img,.project-image:focus-visible img{opacity:.72;transform:scale(1.035)}.image-overlay{color:var(--ink);background:var(--accent);padding:.7rem .85rem;font-size:.78rem;transition:transform .3s;position:absolute;bottom:1.25rem;left:1.25rem;transform:translateY(160%)}.project-image:hover .image-overlay,.project-image:focus-visible .image-overlay{transform:translateY(0)}.project-info{padding-top:.15rem}.project-info h3{font:500 clamp(2rem, 3vw, 3rem)/1 var(--serif);letter-spacing:-.05em;margin:.35rem 0 1.5rem}.project-info>p{color:var(--muted);line-height:1.6}.project-impact{border-left:2px solid #a4c743;padding-left:.7rem;font-size:.8rem;color:var(--ink)!important;margin:1.4rem 0!important}.tags{flex-wrap:wrap;gap:.45rem;display:flex}.tags span{border:1px solid var(--line);font:.65rem var(--mono);color:var(--muted);padding:.4rem .5rem}.demo-link{border:1px solid var(--line);background:var(--surface);font:.68rem var(--mono);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.7rem .9rem;transition:background .2s,transform .2s;display:inline-flex}.demo-link:hover,.demo-link:focus-visible{background:var(--accent);color:#182000;transform:translateY(-1px)}.project-demo-link{margin-top:1.2rem}.about{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:5rem;padding-top:9rem;padding-bottom:9rem;display:grid}.about-copy>p{letter-spacing:-.025em;margin:0 0 3rem;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.5}.stack{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1rem;padding-top:1rem;display:grid}.stack>span{color:var(--muted);font:.67rem var(--mono);text-transform:uppercase}.stack ul{margin:0;padding:0;list-style:none}.stack li{padding:.35rem 0;font-size:.9rem}.contact{background:var(--surface);padding-top:9rem;padding-bottom:9rem}.contact>p:not(.eyebrow){max-width:500px;color:var(--muted);margin:1.5rem 0 2.5rem;line-height:1.6}.email-link{font:500 clamp(1.4rem, 3vw, 2.7rem)/1 var(--serif);border-bottom:1px solid var(--ink);padding-bottom:.4rem;display:inline-block}.email-link:hover{color:#789e00}footer{color:var(--muted);font:.67rem var(--mono);justify-content:space-between;gap:1.5rem;padding:1.5rem clamp(1.25rem,8vw,9rem);display:flex}footer div{gap:1.3rem;display:flex}footer a:hover{color:var(--ink)}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0b0aa8;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.dialog{background:var(--bg);max-width:900px;max-height:90vh;padding:clamp(1.5rem,4vw,3.5rem);position:relative;overflow:auto;box-shadow:0 20px 80px #00000059}.dialog h2{font:500 clamp(2.2rem, 5vw, 4.5rem)/1 var(--serif);letter-spacing:-.06em;margin:.25rem 0 1rem}.dialog-copy{max-width:600px;color:var(--muted);line-height:1.5}.close{font-size:1.6rem;position:absolute;top:1rem;right:1rem}.modal-images{grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0;display:grid}.modal-images img{aspect-ratio:1.35;object-fit:cover;object-position:top;border:1px solid var(--line);width:100%}@media (width<=700px){.site-header{height:66px}.nav{border-bottom:1px solid var(--line);background:var(--bg);z-index:-1;flex-direction:column;gap:1.1rem;padding:1rem 1.25rem 1.4rem;transition:transform .25s;position:absolute;top:66px;left:0;right:0;transform:translateY(-140%)}.nav.open{transform:translateY(0)}.menu-button{display:block}.hero{grid-template-columns:1fr;min-height:680px;padding-top:4rem;padding-bottom:2rem}.availability{margin-bottom:3.5rem}.hero h1{font-size:clamp(3.3rem,14vw,5rem)}.hero-statement{border-left:0;border-top:1px solid var(--line);min-height:170px;padding:1.5rem 0 0}.hero-statement p{margin:1.4rem 0}.scroll-cue{display:none}.work-section,.about,.contact{padding-top:5rem;padding-bottom:5rem}.section-heading{margin-bottom:2.5rem;display:block}.project-list{gap:4rem}.project-card,.project-crm,.about{grid-template-columns:1fr;gap:1.4rem}.project-crm .project-image{order:0}.project-info h3{margin-bottom:1rem}.about-copy>p{font-size:1.2rem}.dialog-backdrop{padding:.75rem}.modal-images{grid-template-columns:1fr}.dialog{padding:2rem 1.25rem 1.5rem}.stack{grid-template-columns:1fr}.stack ul{margin-top:.5rem}footer{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.profile-image{object-fit:cover;object-position:center top;border:1px solid var(--line);filter:grayscale();border-radius:50%;width:86px;height:86px;margin:1.8rem 0 .3rem}.contact-actions{flex-direction:column;align-items:flex-start;gap:1.35rem;display:flex}.cv-link{font:.7rem var(--mono);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line);padding:.7rem .8rem}.cv-link:hover{background:var(--ink);color:var(--bg)}.gallery-image{border:1px solid var(--line);background:var(--surface);cursor:zoom-in;padding:0;position:relative;overflow:hidden}.gallery-image img{aspect-ratio:1.35;object-fit:cover;object-position:top;width:100%;transition:transform .25s,opacity .25s;display:block}.gallery-image span{background:var(--accent);color:#182000;font:.6rem var(--mono);opacity:0;padding:.4rem .5rem;transition:opacity .2s,transform .2s;position:absolute;bottom:.5rem;right:.5rem;transform:translateY(.4rem)}.gallery-image:hover img,.gallery-image:focus-visible img{opacity:.78;transform:scale(1.03)}.gallery-image:hover span,.gallery-image:focus-visible span{opacity:1;transform:none}.image-lightbox{z-index:30;cursor:zoom-out;background:#000000e0;place-items:center;padding:2.5rem;display:grid;position:fixed;inset:0}.image-lightbox img{object-fit:contain;cursor:default;max-width:100%;max-height:100%;box-shadow:0 16px 60px #00000073}.lightbox-close{color:#151515;background:var(--accent);z-index:1;border-radius:50%;width:40px;height:40px;font-size:1.7rem;line-height:1;position:absolute;top:1rem;right:1rem}@media (width<=700px){.image-lightbox{padding:1rem}.gallery-image span{opacity:1;transform:none}}
