html body{background:#f6f2e9!important;color:#17221c}.avh{--avh-canvas:#f6f2e9;--avh-black:#17221c;--avh-blue:#245da8;--avh-green:#176847;border-radius:16px!important;box-shadow:0 18px 70px #17221c0b!important;border-color:#17221c25!important}.avh-stage{background-size:24px 24px!important;background-image:radial-gradient(#17221c12 .7px,transparent .7px)!important}.avh-board{background:#fffdf8!important}.avh-layers,.avh-props{background:#faf8f2!important}.avpen{opacity:.35}.av-dock{--av-blue:#245da8;border-radius:12px;box-shadow:0 8px 28px #17221c12;background:#fffdf8!important}.av-dock a{height:48px;gap:7px}.av-dock a span{max-width:90px!important;opacity:1!important;margin-left:0!important}[data-framer-name="Project 1"],[data-framer-name="Project 2"]{background:#fffdf8!important;border-color:#17221c25!important}main h1.framer-text,main h2.framer-text{color:#17221c!important;letter-spacing:-.035em!important}[data-framer-name="Project 1"] h3,[data-framer-name="Project 2"] h3,[data-framer-name="Visual Work Item"] h2{font-family:Georgia,serif!important;letter-spacing:-.025em!important;font-weight:400!important}[data-framer-name="Artwork"]{border-radius:8px!important;border-color:#17221c25!important}.journey-card,.av-next{background:#fffdf8!important;border-color:#17221c25!important;box-shadow:none!important}.avg{--blue:#245da8}@media(max-width:600px){.av-dock a{height:52px}.avh{border-radius:12px!important}}
/* Match the rendered component markup, including animated title spans. */
[data-framer-name="Project heading + description"] h3,
[data-framer-name="Project heading + description"] h3 span {
 font-family:Georgia,serif!important; font-weight:400!important; letter-spacing:-.025em!important;
}
@media(max-width:600px) { .avh-cursor { display:none!important; } }
/* Showcase titles share the portfolio's primary display face. */
.framer-8d8QZ [data-framer-name="Project heading + description"] h3,
.framer-8d8QZ [data-framer-name="Project heading + description"] h3 span {
 font-family:"PP Neue Montreal Medium","PP Neue Montreal Medium Placeholder",sans-serif!important;
 font-weight:500!important;letter-spacing:-.035em!important;line-height:1.08!important;
}
.framer-8d8QZ [data-framer-name="Project heading + description"] p {
 font-family:"PP Neue Montreal Medium","PP Neue Montreal Medium Placeholder",sans-serif!important;
 letter-spacing:-.015em;line-height:1.45;color:#536059;
}
/* Footer contact area: separate mail and copy actions, with readable social links. */
.av-footer-contact{display:grid;grid-template-columns:1.4fr 1fr;width:100%;align-self:stretch;background:#111;border:1px solid #ffffff24;border-radius:16px;text-align:left;color:#fff;font-family:"PP Neue Montreal Medium",sans-serif;overflow:hidden}
.av-contact-main{padding:38px 40px}.av-contact-status{margin:0 0 20px;color:#c5ccc6;font:12px/1.4 monospace;letter-spacing:.02em}.av-contact-status>span{display:inline-block;background:#4cdd97;width:7px;height:7px;border-radius:50%;margin-right:9px;box-shadow:0 0 14px #4cdd9740}.av-contact-email{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff!important;text-decoration:none!important;font-size:clamp(19px,2.35vw,34px);letter-spacing:-.035em;line-height:1.25}.av-contact-email>span{color:#86e7ae;transition:transform .25s}.av-contact-email:hover>span{transform:translate(3px,-3px)}.av-contact-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.av-contact-actions a,.av-contact-actions button{display:inline-flex;align-items:center;gap:18px;padding:12px 18px;border-radius:7px;font:14px/1.2 "PP Neue Montreal Medium",sans-serif;text-decoration:none!important;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.av-contact-actions a{background:#e9f8ed;color:#17221c!important;border:1px solid #e9f8ed}.av-contact-actions button{background:transparent;color:#d4d9d5;border:1px solid #ffffff35}.av-contact-actions a:hover{background:#c9f3d5;transform:translateY(-2px)}.av-contact-actions button:hover{background:#ffffff12;border-color:#ffffff70}.av-contact-socials{padding:38px 40px;border-left:1px solid #ffffff20}.av-contact-socials>p{font:12px/1.4 monospace;letter-spacing:.02em;color:#aeb7b0;margin:0 0 18px}.av-contact-socials>div{display:flex;flex-direction:column;gap:2px}.av-contact-socials a{display:flex;justify-content:space-between;padding:10px 0;color:#f2f4f2!important;font-size:17px;line-height:1.25;text-decoration:none!important;transition:color .2s}.av-contact-socials a:hover{color:#86e7ae!important}.av-contact-socials a span{color:#86948b}.av-footer-contact :is(a,button):focus-visible{outline:2px solid #86e7ae;outline-offset:5px}
@media(max-width:700px){.av-footer-contact{grid-template-columns:1fr}.av-contact-main,.av-contact-socials{padding:26px 22px}.av-contact-socials{border-left:0;border-top:1px solid #ffffff20}.av-contact-socials>div{flex-direction:row;gap:24px;flex-wrap:wrap}.av-contact-socials a{gap:12px}.av-contact-email{font-size:clamp(17px,4.6vw,28px)}}
/* Decorative ribbon canvases must never intercept contact or navigation clicks. */
[data-framer-name="AnimatedRibbons"],
[data-framer-name="AnimatedRibbons"] *{pointer-events:none!important}
.av-footer-contact{position:relative;z-index:2}

/* Projects page "View case study" buttons: one CSS hover for all three (the
   Farmest card is a copy, so Framer's own hover never reaches it). Yellow,
   green and purple layers rise in turn and the label turns white. */
.framer-10l40tc a.framer-tHRox .framer-7gtk23-container div div{transform:translateY(101%)!important;transition:transform .5s cubic-bezier(.22,1,.36,1)!important}
.framer-10l40tc a.framer-tHRox .framer-7gtk23-container div div:nth-child(2){transition-delay:.07s!important}
.framer-10l40tc a.framer-tHRox .framer-7gtk23-container div div:nth-child(3){transition-delay:.14s!important}
.framer-10l40tc a.framer-tHRox:is(:hover,:focus-visible) .framer-7gtk23-container div div{transform:none!important}
.framer-10l40tc a.framer-tHRox:is(:hover,:focus-visible) .framer-7gtk23-container div div:nth-child(1){transition-delay:0s!important}
.framer-10l40tc a.framer-tHRox .framer-text{transition:color .3s ease .1s}
.framer-10l40tc a.framer-tHRox:is(:hover,:focus-visible) .framer-text{--framer-text-color:#fff!important;color:#fff!important}
.framer-10l40tc a.framer-tHRox:is(:hover,:focus-visible) .framer-1qd6gm1{--esondr:#fff!important}
