:root{--ink:#1c2418;--ink-muted:#4a5645;--paper:#f6f3ec;--paper-warm:#ebe4d7;--accent:#2d6a4f;--accent-hover:#1b4332;--shadow:#1c24181f;--radius:4px;--font-display:"Libre Baskerville",Georgia,serif;--font-body:"Source Sans 3",system-ui,sans-serif;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--max:72rem;--header-clearance:5.25rem;--ease-smooth:cubic-bezier(0.22,1,0.36,1);--t-fast:0.22s;--t-med:0.38s;--t-page:0.42s}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f6f3ec;background:var(--paper);color:#1c2418;color:var(--ink);font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:1.05rem;line-height:1.6;margin:0}#root{min-height:100vh}@media (prefers-reduced-motion:reduce){:root{--t-fast:0.01ms;--t-med:0.01ms;--t-page:0.01ms}}@keyframes page-enter{0%{opacity:0}to{opacity:1}}.page-shell{animation:page-enter .42s cubic-bezier(.22,1,.36,1) both;animation:page-enter var(--t-page) var(--ease-smooth) both}@media (prefers-reduced-motion:reduce){.page-shell{animation:none}.logo-mark:hover .logo-crop .logo-photo,.logo-mark:hover .logo-crop img{transform:scale(1.22)}}img{display:block;height:auto;max-width:100%;vertical-align:middle}a{color:#2d6a4f;color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:#1b4332;color:var(--accent-hover)}.skip-link{background:#1c2418;background:var(--ink);color:#f6f3ec;color:var(--paper);left:-9999px;padding:1rem;padding:var(--space-sm);position:absolute;top:0;z-index:100}.skip-link:focus{left:1rem;left:var(--space-sm)}.container{margin-inline:auto;width:min(100% - 2rem,72rem);width:min(100% - 2rem,var(--max))}.site-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,#f6f3ec 92%,#0000);background:color-mix(in srgb,var(--paper) 92%,#0000);border-bottom:1px solid color-mix(in srgb,#1c2418 8%,#0000);border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,#0000);position:sticky;top:0;transition:background .38s cubic-bezier(.22,1,.36,1),border-color .38s cubic-bezier(.22,1,.36,1),box-shadow .38s cubic-bezier(.22,1,.36,1);transition:background var(--t-med) var(--ease-smooth),border-color var(--t-med) var(--ease-smooth),box-shadow var(--t-med) var(--ease-smooth);z-index:50}.header-inner{align-items:center;display:flex;gap:1.5rem;gap:var(--space-md);justify-content:space-between;margin-inline:auto;padding:1rem 0;padding:var(--space-sm) 0;width:min(100% - 2rem,72rem);width:min(100% - 2rem,var(--max))}.logo{color:#1c2418;color:var(--ink);font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.04em;text-decoration:none}.logo:hover{color:#2d6a4f;color:var(--accent)}.logo-mark{transition:color .22s cubic-bezier(.22,1,.36,1);transition:color var(--t-fast) var(--ease-smooth)}.header-brand{flex-shrink:0;gap:.65rem}.header-brand,a.logo-mark{align-items:center;display:flex}a.logo-mark{line-height:0;text-decoration:none}.logo-crop{background:#0000;border-radius:50%;display:block;flex-shrink:0;height:2.75rem;overflow:hidden;transition:box-shadow .22s cubic-bezier(.22,1,.36,1);transition:box-shadow var(--t-fast) var(--ease-smooth);width:2.75rem}.logo-crop .logo-photo,.logo-crop img{height:100%;max-width:none;object-fit:cover;object-position:center;transform:scale(1.22);transform-origin:center center;transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .5s ease;transition:transform var(--t-med) var(--ease-smooth),opacity .5s ease;width:100%}.logo-mark:hover .logo-crop .logo-photo,.logo-mark:hover .logo-crop img{transform:scale(1.28)}@media (min-width:641px){.logo-crop{height:3.25rem;width:3.25rem}}.nav-home{color:#4a5645;color:var(--ink-muted);font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:.95rem;font-weight:600;text-decoration:none;transition:color .22s cubic-bezier(.22,1,.36,1),text-underline-offset .22s cubic-bezier(.22,1,.36,1);transition:color var(--t-fast) var(--ease-smooth),text-underline-offset var(--t-fast) var(--ease-smooth);white-space:nowrap}.nav-home.is-active,.nav-home:hover{color:#2d6a4f;color:var(--accent)}.nav-home.is-active{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}.nav-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:10px}.nav-toggle span{background:#1c2418;background:var(--ink);display:block;height:2px;width:22px}.site-nav{align-items:center;display:flex;gap:1.5rem;gap:var(--space-md)}.site-nav a{color:#4a5645;color:var(--ink-muted);font-size:.95rem;font-weight:600;text-decoration:none;transition:color .22s cubic-bezier(.22,1,.36,1),background-color .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1);transition:color var(--t-fast) var(--ease-smooth),background-color var(--t-fast) var(--ease-smooth),box-shadow var(--t-fast) var(--ease-smooth)}.site-nav a.is-active,.site-nav a:hover{color:#2d6a4f;color:var(--accent)}.site-nav a.is-active{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;transition:color .22s cubic-bezier(.22,1,.36,1),text-decoration-color .22s cubic-bezier(.22,1,.36,1);transition:color var(--t-fast) var(--ease-smooth),text-decoration-color var(--t-fast) var(--ease-smooth)}.site-nav .nav-cta{background:#2d6a4f;background:var(--accent);border-radius:4px;border-radius:var(--radius);color:#f6f3ec!important;color:var(--paper)!important;padding:.45em 1em;text-decoration:none}.site-nav .nav-cta.is-active,.site-nav .nav-cta:hover{background:#1b4332;background:var(--accent-hover);color:#f6f3ec!important;color:var(--paper)!important}.site-nav .nav-cta.is-active{box-shadow:0 0 0 2px color-mix(in srgb,#1c2418 35%,#0000);box-shadow:0 0 0 2px color-mix(in srgb,var(--ink) 35%,#0000);text-decoration:none}.logo-mark.is-active .logo-crop{box-shadow:0 0 0 2px #2d6a4f;box-shadow:0 0 0 2px var(--accent)}.logo-mark:hover .logo-crop{box-shadow:0 0 0 2px color-mix(in srgb,#2d6a4f 65%,#0000);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 65%,#0000)}.logo-mark.is-active:hover .logo-crop{box-shadow:0 0 0 2px #1b4332;box-shadow:0 0 0 2px var(--accent-hover)}@media (max-width:640px){.nav-toggle,.site-nav{display:flex}.site-nav{align-items:stretch;background:#f6f3ec;background:var(--paper);border-bottom:1px solid color-mix(in srgb,#1c2418 10%,#0000);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,#0000);flex-direction:column;gap:1rem;gap:var(--space-sm);left:0;opacity:0;padding:1.5rem;padding:var(--space-md);pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(-.4rem);transform-origin:top;transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1),visibility 0s linear .22s;transition:opacity .22s var(--ease-smooth),transform .22s var(--ease-smooth),visibility 0s linear .22s;visibility:hidden;z-index:51}.site-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1),visibility 0s;transition:opacity .22s var(--ease-smooth),transform .22s var(--ease-smooth),visibility 0s;visibility:visible}@media (prefers-reduced-motion:reduce){.site-nav{transition-duration:.08s}.site-nav,.site-nav.is-open{transform:none}}.site-header{position:relative}}.hero{box-sizing:border-box;color:#f6f3ec;color:var(--paper);display:flex;flex-direction:column;height:min(clamp(13rem,46dvh,26rem),calc(100dvh - 5.25rem));height:min(clamp(13rem,46dvh,26rem),calc(100dvh - var(--header-clearance)));isolation:isolate;justify-content:center;max-height:calc(100dvh - 5.25rem);max-height:calc(100dvh - var(--header-clearance));min-height:13rem;position:relative;width:100%}@media (min-width:768px){.hero{height:min(clamp(15rem,52dvh,30rem),calc(100dvh - 5.25rem));height:min(clamp(15rem,52dvh,30rem),calc(100dvh - var(--header-clearance)));min-height:15rem}}@media (min-width:1100px){.hero{height:min(clamp(16rem,48dvh,34rem),calc(100dvh - 5.25rem));height:min(clamp(16rem,48dvh,34rem),calc(100dvh - var(--header-clearance)));max-height:min(34rem,calc(100dvh - 5.25rem));max-height:min(34rem,calc(100dvh - var(--header-clearance)))}}.hero-media{background:linear-gradient(145deg,#2d6a4f,#1c2418);background:linear-gradient(145deg,var(--accent) 0,var(--ink) 100%);inset:0;overflow:hidden;position:absolute;z-index:0}.hero-media .hero-photo,.hero-media img.hero-photo{height:100%;inset:0;max-width:none;object-fit:cover;opacity:0;position:absolute;transition:opacity .5s ease;width:100%;z-index:0}.hero-media .hero-photo.img-ok,.hero-media img.hero-photo.img-ok{opacity:1}.hero-media .hero-photo.img-error,.hero-media img.hero-photo.img-error{display:none}.hero-media:after{background:radial-gradient(ellipse 80% 60% at 20% 40%,color-mix(in srgb,#f6f3ec 15%,#0000),#0000),linear-gradient(160deg,#2d6a4f,#1c2418);background:radial-gradient(ellipse 80% 60% at 20% 40%,color-mix(in srgb,var(--paper) 15%,#0000),#0000),linear-gradient(160deg,var(--accent) 0,var(--ink) 100%);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.hero-media:has(.hero-photo.img-ok):after,.hero-media:has(img.hero-photo.img-ok):after{opacity:0;transition:opacity .5s ease}.hero-media .hero-overlay{background:linear-gradient(165deg,color-mix(in srgb,#1c2418 68%,#0000),color-mix(in srgb,#1c2418 52%,#0000) 42%,color-mix(in srgb,#1c2418 45%,#0000) 62%,color-mix(in srgb,#1c2418 82%,#0000));background:linear-gradient(165deg,color-mix(in srgb,var(--ink) 68%,#0000) 0,color-mix(in srgb,var(--ink) 52%,#0000) 42%,color-mix(in srgb,var(--ink) 45%,#0000) 62%,color-mix(in srgb,var(--ink) 82%,#0000) 100%);inset:0;pointer-events:none;position:absolute;z-index:2}@keyframes hero-text-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hero-content{animation:hero-text-in .42s cubic-bezier(.22,1,.36,1) both;animation:hero-text-in var(--t-page) var(--ease-smooth) both;box-sizing:border-box;margin-inline:auto;padding:1rem .5rem 1.5rem;padding:var(--space-sm) var(--space-xs) var(--space-md);position:relative;text-shadow:0 1px 2px color-mix(in srgb,#1c2418 55%,#0000),0 0 28px color-mix(in srgb,#1c2418 40%,#0000);text-shadow:0 1px 2px color-mix(in srgb,var(--ink) 55%,#0000),0 0 28px color-mix(in srgb,var(--ink) 40%,#0000);width:min(100% - 1.5rem,72rem);width:min(100% - 1.5rem,var(--max));z-index:1}@media (min-width:640px){.hero-content{padding:1.5rem 0 2.5rem;padding:var(--space-md) 0 var(--space-lg);width:min(100% - 2rem,72rem);width:min(100% - 2rem,var(--max))}}@media (prefers-reduced-motion:reduce){.hero-content{animation:none}}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.12em;margin:0 0 .5rem;margin:0 0 var(--space-xs);opacity:.9;text-transform:uppercase}.hero .eyebrow{font-size:clamp(.62rem,1.8vw,.75rem);margin-bottom:.35rem}.hero h1{font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:clamp(1.35rem,4.2vw,2.1rem);font-weight:700;line-height:1.18;margin:0 0 .5rem;margin:0 0 var(--space-xs);max-width:22ch}@media (min-width:640px){.hero h1{font-size:clamp(1.55rem,3.8vw,2.35rem);margin:0 0 1rem;margin:0 0 var(--space-sm);max-width:18ch}}.hero .lede{font-size:clamp(.9rem,2.4vw,1.05rem);line-height:1.45;margin:0 0 1rem;margin:0 0 var(--space-sm);max-width:38ch;opacity:.95}@media (min-width:640px){.hero .lede{margin:0 0 1.5rem;margin:0 0 var(--space-md);max-width:40ch}}.hero-actions{display:flex;flex-wrap:wrap;gap:.5rem;gap:var(--space-xs)}@media (min-width:640px){.hero-actions{gap:1rem;gap:var(--space-sm)}}.hero-actions .btn{font-size:clamp(.85rem,2vw,1rem);padding:.5em 1em}@media (min-width:640px){.hero-actions .btn{padding:.65em 1.2em}}.hero-content .btn{text-shadow:none}.btn,.hero-content a.btn{text-decoration:none}.btn{align-items:center;border:2px solid #0000;border-radius:4px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:1rem;font-weight:700;justify-content:center;padding:.65em 1.25em;transition:background .22s cubic-bezier(.22,1,.36,1),color .22s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1);transition:background var(--t-fast) var(--ease-smooth),color var(--t-fast) var(--ease-smooth),border-color var(--t-fast) var(--ease-smooth),transform var(--t-fast) var(--ease-smooth)}.btn:active{transform:scale(.98)}.btn-primary{background:#f6f3ec;background:var(--paper);color:#1c2418;color:var(--ink)}.btn-primary:hover{background:#ebe4d7;background:var(--paper-warm);color:#1c2418;color:var(--ink)}.btn-ghost{background:#0000;border-color:color-mix(in srgb,#f6f3ec 55%,#0000);border-color:color-mix(in srgb,var(--paper) 55%,#0000)}.btn-ghost,.btn-ghost:hover{color:#f6f3ec;color:var(--paper)}.btn-ghost:hover{background:color-mix(in srgb,#f6f3ec 12%,#0000);background:color-mix(in srgb,var(--paper) 12%,#0000)}button.btn{font:inherit}.btn-outline{background:#0000;border-color:color-mix(in srgb,#1c2418 32%,#0000);border-color:color-mix(in srgb,var(--ink) 32%,#0000);color:#1c2418;color:var(--ink)}.btn-outline:hover{background:color-mix(in srgb,#2d6a4f 14%,#f6f3ec);background:color-mix(in srgb,var(--accent) 14%,var(--paper));border-color:#2d6a4f;border-color:var(--accent);color:#1c2418;color:var(--ink)}.section{padding:4rem 0;padding:var(--space-xl) 0}.section h1,.section h2{color:#1c2418;color:var(--ink);font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:clamp(1.65rem,3vw,2.1rem);margin:0 0 1.5rem;margin:0 0 var(--space-md)}.section-intro{color:#4a5645;color:var(--ink-muted);margin:-1rem 0 1.5rem;margin:calc(var(--space-sm)*-1) 0 var(--space-md);max-width:55ch}.services{background:#ebe4d7;background:var(--paper-warm)}.section.services{padding-top:5.5rem;padding-top:calc(var(--space-xl) + var(--space-md))}.service-grid{grid-gap:1.5rem;grid-gap:var(--space-md);display:grid;gap:1.5rem;gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));list-style:none;margin:0;padding:0}.service-grid li{background:#f6f3ec;background:var(--paper);border:1px solid color-mix(in srgb,#1c2418 8%,#0000);border:1px solid color-mix(in srgb,var(--ink) 8%,#0000);border-radius:4px;border-radius:var(--radius);box-shadow:0 8px 24px #1c24181f;box-shadow:0 8px 24px var(--shadow);padding:1.5rem;padding:var(--space-md);transition:box-shadow .38s cubic-bezier(.22,1,.36,1),transform .38s cubic-bezier(.22,1,.36,1),border-color .38s cubic-bezier(.22,1,.36,1);transition:box-shadow var(--t-med) var(--ease-smooth),transform var(--t-med) var(--ease-smooth),border-color var(--t-med) var(--ease-smooth)}.service-grid li:hover{box-shadow:0 12px 32px color-mix(in srgb,#1c2418 16%,#0000);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 16%,#0000);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.service-grid li{transition:none}.btn:active,.service-grid li:hover{transform:none}}.service-grid h3{font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:1.2rem;margin:0 0 .5rem;margin:0 0 var(--space-xs)}.service-grid p{margin:0}.service-grid p,.services-quote-cta{color:#4a5645;color:var(--ink-muted)}.services-quote-cta{background:color-mix(in srgb,#2d6a4f 8%,#f6f3ec);background:color-mix(in srgb,var(--accent) 8%,var(--paper));border:1px solid color-mix(in srgb,#2d6a4f 28%,#0000);border:1px solid color-mix(in srgb,var(--accent) 28%,#0000);border-radius:4px;border-radius:var(--radius);box-shadow:0 8px 24px #1c24181f;box-shadow:0 8px 24px var(--shadow);line-height:1.55;margin:2.5rem 0 0;margin:var(--space-lg) 0 0;margin-inline:auto;max-width:36rem;padding:1.5rem 2.5rem;padding:var(--space-md) var(--space-lg);text-align:center}.services-quote-cta strong{color:#1c2418;color:var(--ink);display:block;font-size:1.05rem;margin-bottom:.5rem;margin-bottom:var(--space-xs)}.services-quote-cta .btn{margin-top:1.5rem;margin-top:var(--space-md)}.footer-tagline{color:#4a5645;color:var(--ink-muted);font-size:.9rem}.home-teasers-heading{color:#1c2418;color:var(--ink);font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:clamp(1.65rem,3vw,2.1rem);margin:0 0 1.5rem;margin:0 0 var(--space-md)}.service-teaser-card{color:inherit;display:block;height:100%;text-decoration:none}.home-teasers .service-teaser-card h3,.service-teaser-card{transition:color .22s cubic-bezier(.22,1,.36,1);transition:color var(--t-fast) var(--ease-smooth)}.home-teasers .service-teaser-card h3{color:#1c2418;color:var(--ink)}.home-teasers .service-teaser-card:focus-visible h3,.home-teasers .service-teaser-card:hover h3{color:#2d6a4f;color:var(--accent);text-decoration:underline}.home-teasers .service-teaser-card:focus-visible{outline:2px solid #2d6a4f;outline:2px solid var(--accent);outline-offset:2px}.services-cards-intro{max-width:42ch}.service-grid--work-cards li{display:flex;flex-direction:column;padding:0}.service-work-card{align-items:stretch;box-sizing:border-box;color:inherit;display:flex;flex:1 1;flex-direction:column;margin:0;min-height:100%;padding:1.5rem;padding:var(--space-md);text-align:left;width:100%}.service-examples-btn{align-self:flex-start;margin-top:auto;padding-top:1.5rem;padding-top:var(--space-md)}.gallery-grid{grid-gap:1.5rem;grid-gap:var(--space-md);display:grid;gap:1.5rem;gap:var(--space-md);grid-template-columns:repeat(2,1fr)}.gallery-item--wide{grid-column:1/-1}.before-after-row{margin:0}.before-after-heading{color:#1c2418;color:var(--ink);font-family:Libre Baskerville,Georgia,serif;font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin:0 0 1rem;margin:0 0 var(--space-sm)}.work-pair-figure .gallery-frame{aspect-ratio:4/3}.before-after-pair{grid-gap:1.5rem;grid-gap:var(--space-md);display:grid;gap:1.5rem;gap:var(--space-md);grid-template-columns:1fr 1fr;width:100%}.before-after-figure{margin:0;position:relative}.before-after-label{background:color-mix(in srgb,#1c2418 82%,#0000);background:color-mix(in srgb,var(--ink) 82%,#0000);border-radius:4px;border-radius:var(--radius);color:#f6f3ec;color:var(--paper);font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:.72rem;font-weight:700;left:1rem;left:var(--space-sm);letter-spacing:.08em;padding:.3em .75em;pointer-events:none;position:absolute;text-transform:uppercase;top:1rem;top:var(--space-sm);z-index:2}.before-after-figure .gallery-frame{aspect-ratio:4/3}@media (max-width:700px){.gallery-grid{grid-template-columns:1fr}.gallery-item--wide{grid-column:auto}.before-after-pair{grid-template-columns:1fr}}.gallery-frame{aspect-ratio:4/3;background:linear-gradient(135deg,#ebe4d7,color-mix(in srgb,#2d6a4f 18%,#f6f3ec));background:linear-gradient(135deg,var(--paper-warm),color-mix(in srgb,var(--accent) 18%,var(--paper)));border:1px solid color-mix(in srgb,#1c2418 10%,#0000);border:1px solid color-mix(in srgb,var(--ink) 10%,#0000);border-radius:4px;border-radius:var(--radius);box-shadow:0 12px 40px #1c24181f;box-shadow:0 12px 40px var(--shadow);overflow:hidden;transition:box-shadow .38s cubic-bezier(.22,1,.36,1),border-color .38s cubic-bezier(.22,1,.36,1),transform .38s cubic-bezier(.22,1,.36,1);transition:box-shadow var(--t-med) var(--ease-smooth),border-color var(--t-med) var(--ease-smooth),transform var(--t-med) var(--ease-smooth)}.gallery-hint{color:#4a5645;color:var(--ink-muted);font-size:.98rem;margin:-1rem 0 1.5rem;margin:calc(var(--space-sm)*-1) 0 var(--space-md);max-width:55ch}button.gallery-thumb{-webkit-tap-highlight-color:transparent;background:none;border:none;border-radius:4px;border-radius:var(--radius);color:inherit;cursor:zoom-in;display:block;font:inherit;margin:0;padding:0;text-align:inherit;transition:transform .22s cubic-bezier(.22,1,.36,1);transition:transform var(--t-fast) var(--ease-smooth);width:100%}button.gallery-thumb:focus-visible{outline:2px solid #2d6a4f;outline:2px solid var(--accent);outline-offset:3px}.gallery-thumb:hover .gallery-frame{box-shadow:0 16px 48px color-mix(in srgb,#1c2418 14%,#0000);box-shadow:0 16px 48px color-mix(in srgb,var(--ink) 14%,#0000)}.gallery-thumb:active{transform:scale(.992)}@media (prefers-reduced-motion:reduce){.gallery-thumb:hover .gallery-frame{box-shadow:0 12px 40px #1c24181f;box-shadow:0 12px 40px var(--shadow)}.gallery-thumb:active{transform:none}}.gallery-item--wide .gallery-frame{aspect-ratio:21/9}.gallery-frame img{height:100%;object-fit:cover;opacity:0;transition:opacity .38s cubic-bezier(.22,1,.36,1);transition:opacity var(--t-med) var(--ease-smooth);width:100%}.gallery-frame img.img-ok{opacity:1}.gallery-frame img.img-error{display:none}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.contact{background:#1c2418;background:var(--ink)}.contact,.contact h1,.contact h2{color:#f6f3ec;color:var(--paper)}.contact-layout{grid-gap:2.5rem;grid-gap:var(--space-lg);align-items:start;display:grid;gap:2.5rem;gap:var(--space-lg);grid-template-columns:1fr 1fr}@media (max-width:900px){.contact-layout{grid-template-columns:1fr}}.contact-card{padding:1.5rem 0;padding:var(--space-md) 0}.contact-note{color:color-mix(in srgb,#f6f3ec 75%,#0000);color:color-mix(in srgb,var(--paper) 75%,#0000);margin:0 0 1.5rem;margin:0 0 var(--space-md);max-width:42ch}.contact-list{list-style:none;margin:0;padding:0}.contact-list li{grid-gap:.15rem;border-bottom:1px solid color-mix(in srgb,#f6f3ec 18%,#0000);border-bottom:1px solid color-mix(in srgb,var(--paper) 18%,#0000);display:grid;gap:.15rem;padding:1rem 0;padding:var(--space-sm) 0}.contact-list .label{font-size:.75rem;font-weight:600;letter-spacing:.08em;opacity:.65;text-transform:uppercase}.contact-list .value{color:#f6f3ec;color:var(--paper);font-size:1.15rem;font-weight:600;text-decoration:none}.contact-list a.value{text-decoration:underline;text-underline-offset:.12em}.contact-list a.value:hover{color:color-mix(in srgb,#f6f3ec 88%,#2d6a4f);color:color-mix(in srgb,var(--paper) 88%,var(--accent))}.showcase-frame{align-items:center;background:color-mix(in srgb,#f6f3ec 12%,#0000);background:color-mix(in srgb,var(--paper) 12%,#0000);border:1px solid color-mix(in srgb,#f6f3ec 22%,#0000);border:1px solid color-mix(in srgb,var(--paper) 22%,#0000);border-radius:4px;border-radius:var(--radius);display:flex;justify-content:center;margin-inline:auto;max-height:min(70vh,520px);min-height:12rem;overflow:hidden;position:relative}.showcase-frame img{height:100%;object-fit:contain;opacity:0;position:relative;transition:opacity .4s ease;width:100%;z-index:1}.showcase-frame img.img-ok{opacity:1}.showcase-frame img.img-error{display:none}.showcase-frame:after{align-items:center;color:color-mix(in srgb,#f6f3ec 45%,#0000);color:color-mix(in srgb,var(--paper) 45%,#0000);content:"Add public/images/contact-card.jpg (flyer or card scan)";display:flex;font-size:.95rem;inset:0;justify-content:center;padding:2.5rem;padding:var(--space-lg);position:absolute;text-align:center;z-index:0}.showcase-frame:has(img.img-ok):after{content:none}.showcase-frame--info img,.showcase-frame--logo img{box-sizing:border-box;object-fit:contain;padding:1.5rem;padding:var(--space-md)}@keyframes lightbox-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-photo-in{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.lightbox{align-items:center;display:flex;inset:0;justify-content:center;padding:1.5rem;padding:var(--space-md);pointer-events:none;position:fixed;z-index:10000}.lightbox-backdrop{animation:lightbox-backdrop-in .38s cubic-bezier(.22,1,.36,1) both;animation:lightbox-backdrop-in var(--t-med) var(--ease-smooth) both;-webkit-backdrop-filter:blur(14px) saturate(.92);backdrop-filter:blur(14px) saturate(.92);background:color-mix(in srgb,#1c2418 86%,#0000);background:color-mix(in srgb,var(--ink) 86%,#0000);border:none;cursor:zoom-out;inset:0;margin:0;padding:0;pointer-events:auto;position:absolute}.lightbox-inner{align-items:center;display:flex;justify-content:center;max-width:min(96vw,1200px);pointer-events:none;position:relative;width:100%;z-index:1}.lightbox-inner>*{pointer-events:auto}.lightbox-stage{align-items:center;display:flex;flex-direction:column;margin:0;position:relative;width:100%}.lightbox-img-wrap{display:inline-block;max-width:100%;position:relative}.lightbox-caption-badge{background:color-mix(in srgb,#1c2418 82%,#0000);background:color-mix(in srgb,var(--ink) 82%,#0000);color:#f6f3ec;color:var(--paper);font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:.72rem;font-weight:700;left:1rem;left:var(--space-sm);letter-spacing:.08em;padding:.35em .85em;pointer-events:none;position:absolute;text-transform:uppercase;top:1rem;top:var(--space-sm);z-index:2}.lightbox-caption-badge,.lightbox-img{border-radius:4px;border-radius:var(--radius)}.lightbox-img{animation:lightbox-photo-in .42s cubic-bezier(.22,1,.36,1) both;animation:lightbox-photo-in var(--t-page) var(--ease-smooth) both;box-shadow:0 24px 64px color-mix(in srgb,#1c2418 50%,#0000);box-shadow:0 24px 64px color-mix(in srgb,var(--ink) 50%,#0000);display:block;height:auto;max-height:min(85vh,900px);max-width:100%;object-fit:contain;width:auto}.lightbox-img-wrap .lightbox-img.img-error{display:none}.lightbox-img-wrap:has(.lightbox-img.img-error){background:linear-gradient(135deg,color-mix(in srgb,#ebe4d7 35%,#1c2418),color-mix(in srgb,#2d6a4f 22%,#1c2418));background:linear-gradient(135deg,color-mix(in srgb,var(--paper-warm) 35%,var(--ink)),color-mix(in srgb,var(--accent) 22%,var(--ink)));border-radius:4px;border-radius:var(--radius);box-shadow:0 24px 64px color-mix(in srgb,#1c2418 50%,#0000);box-shadow:0 24px 64px color-mix(in srgb,var(--ink) 50%,#0000);min-height:min(40vh,280px);min-width:min(90vw,640px)}.lightbox-img-wrap:has(.lightbox-img.img-error) .lightbox-caption-badge{opacity:.85}.lightbox-figcaption{align-items:center;display:flex;flex-direction:column;gap:.35rem;margin:1rem 0 0;margin:var(--space-sm) 0 0;width:100%}.lightbox-caption-text{color:#f6f3ec;color:var(--paper);font-family:Source Sans\ 3,system-ui,sans-serif;font-family:var(--font-body);font-size:.95rem;font-weight:700;letter-spacing:.06em;opacity:.95;text-shadow:0 1px 2px color-mix(in srgb,#1c2418 50%,#0000);text-shadow:0 1px 2px color-mix(in srgb,var(--ink) 50%,#0000);text-transform:uppercase}.lightbox-close{background:color-mix(in srgb,#f6f3ec 22%,#0000);background:color-mix(in srgb,var(--paper) 22%,#0000);border:none;border-radius:4px;border-radius:var(--radius);color:#f6f3ec;color:var(--paper);cursor:pointer;font-size:1.75rem;height:2.75rem;line-height:1;position:fixed;right:1rem;right:var(--space-sm);top:1rem;top:var(--space-sm);transition:background .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1);transition:background var(--t-fast) var(--ease-smooth),transform var(--t-fast) var(--ease-smooth);width:2.75rem;z-index:3}.lightbox-close:hover{background:color-mix(in srgb,#f6f3ec 32%,#0000);background:color-mix(in srgb,var(--paper) 32%,#0000)}.lightbox-close:active{transform:scale(.96)}.lightbox-arrow{align-items:center;background:color-mix(in srgb,#f6f3ec 22%,#0000);background:color-mix(in srgb,var(--paper) 22%,#0000);border:none;border-radius:50%;color:#f6f3ec;color:var(--paper);cursor:pointer;display:flex;font-size:2rem;height:3rem;justify-content:center;line-height:1;position:fixed;top:50%;transform:translateY(-50%);transition:background .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1);transition:background var(--t-fast) var(--ease-smooth),transform var(--t-fast) var(--ease-smooth);width:3rem;z-index:3}.lightbox-arrow:hover{background:color-mix(in srgb,#f6f3ec 34%,#0000);background:color-mix(in srgb,var(--paper) 34%,#0000);transform:translateY(-50%) scale(1.06)}.lightbox-arrow:active{transform:translateY(-50%) scale(.94)}.lightbox-arrow--prev{left:1rem;left:var(--space-sm)}.lightbox-arrow--next{right:1rem;right:var(--space-sm)}.lightbox-counter{color:#f6f3ec;color:var(--paper);font-size:.9rem;font-weight:600;margin:0;opacity:.92;text-align:center;text-shadow:0 1px 2px color-mix(in srgb,#1c2418 50%,#0000);text-shadow:0 1px 2px color-mix(in srgb,var(--ink) 50%,#0000)}.lightbox-counter-sep{opacity:.65;padding:0 .25em}@media (prefers-reduced-motion:reduce){.lightbox-backdrop,.lightbox-img{animation:none}.lightbox-close:active{transform:none}.lightbox-arrow:active,.lightbox-arrow:hover{transform:translateY(-50%)}}@media (max-width:640px){.lightbox-arrow{font-size:1.65rem;height:2.5rem;width:2.5rem}.lightbox-arrow--prev{left:4px}.lightbox-arrow--next{right:4px}}.site-footer{background:#1c2418;background:var(--ink);border-top:1px solid color-mix(in srgb,#f6f3ec 15%,#0000);border-top:1px solid color-mix(in srgb,var(--paper) 15%,#0000);color:color-mix(in srgb,#f6f3ec 70%,#0000);color:color-mix(in srgb,var(--paper) 70%,#0000);font-size:.9rem;padding:1.5rem 0;padding:var(--space-md) 0}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;gap:var(--space-sm);justify-content:space-between}.footer-brand,.footer-contact{margin:0}.footer-contact a{color:color-mix(in srgb,#f6f3ec 85%,#0000);color:color-mix(in srgb,var(--paper) 85%,#0000)}.footer-contact a:hover{color:#f6f3ec;color:var(--paper)}
/*# sourceMappingURL=main.cc12da31.css.map*/