/* Barry's four signature moments. Decorative layers never intercept a click. */
.brush-reveal,.embossed-seal,.brush-glint,.living-flourish,.living-petals{pointer-events:none}
.herocopy::before{display:none}
.herocopy .embossed-seal{position:absolute;z-index:0;right:-20%;bottom:-5%;width:115%;height:80%;background:#1d3a50;mask:url('assets/barry-belcher-crest.png') center/contain no-repeat;-webkit-mask:url('assets/barry-belcher-crest.png') center/contain no-repeat;opacity:.48;filter:drop-shadow(-1px -1px 1px #355267) drop-shadow(2px 3px 1px #081b2b)}
.herocopy .embossed-seal::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#c1d6e655 48%,transparent 62%);opacity:0;transform:translateX(-110%)}
.herocopy.motion-in .embossed-seal{animation:seal-press 1.4s ease-out both}
.herocopy.motion-in .embossed-seal::after{animation:seal-light 1.8s .15s ease-in-out both}
@keyframes seal-press{from{opacity:.12;transform:scale(1.035);filter:drop-shadow(0 0 0 #081b2b)}to{opacity:.48;transform:scale(1);filter:drop-shadow(-1px -1px 1px #355267) drop-shadow(2px 3px 1px #081b2b)}}
@keyframes seal-light{0%{opacity:0;transform:translateX(-110%)}30%{opacity:.7}100%{opacity:0;transform:translateX(110%)}}
.living-flourish{width:160px;height:26px;color:#d5b563;flex:none;overflow:visible}
.herocopy .living-flourish{position:absolute;right:26px;bottom:17px;z-index:1}
footer{position:relative;padding-bottom:60px}
footer .living-flourish{position:absolute;bottom:17px;left:50%;transform:translateX(-50%)}
.living-flourish path{stroke:#c9ab70}
.living-flourish.motion-in path{stroke-dasharray:1;animation:flourish-draw 1.6s .15s ease-out both}
@keyframes flourish-draw{from{stroke-dashoffset:1;opacity:.1}to{stroke-dashoffset:0;opacity:1}}
.panel-gilt-corners.motion-in .gilt-corner,.services-gold-corners.motion-in .gilt-corner{animation:corner-unfurl 1.4s ease-out both}
@keyframes corner-unfurl{from{clip-path:circle(0% at 50% 50%);opacity:0}to{clip-path:circle(75% at 50% 50%);opacity:.92}}
.brush-reveal{position:absolute;inset:-2px;z-index:1;background:var(--navy);opacity:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.heroimage.motion-in .brush-reveal{animation:paint-reveal 1.25s cubic-bezier(.3,.05,.2,1) both}
.brush-reveal::after{content:'';position:absolute;inset:0 auto 0 0;width:30px;background:repeating-linear-gradient(0deg,#b59360 0 3px,transparent 3px 8px);opacity:.35}
@keyframes paint-reveal{0%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}18%{clip-path:polygon(8% 0,100% 0,100% 100%,3% 100%,7% 76%,3% 60%,9% 38%)}99%{opacity:1}100%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}
.magic-logo{position:relative;display:block}.verybarrynav.magic-logo{display:flex}
.vblogo .magic-logo{width:100%;max-width:340px;margin:auto}
.brush-glint{position:absolute;left:91.5%;top:39%;width:16%;aspect-ratio:1;background:#dbc38d;opacity:0;transform:translate(-50%,-50%) scale(0);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 5px #e8d6aa)}
.magic-logo.motion-in .brush-glint{animation:brush-magic 1.6s .7s ease-in-out both}
.magic-logo.motion-in img{animation:logo-arrives .85s .2s ease-out both}
@keyframes brush-magic{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(-20deg)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(8deg)}70%{opacity:.5;transform:translate(-50%,-50%) scale(.65) rotate(18deg)}}
@keyframes logo-arrives{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.featuretile.painting>.living-petals{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mask-image:radial-gradient(ellipse 29% 32% at 28% 40%,#000 65%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 29% 32% at 28% 40%,#000 65%,transparent 100%);transform-origin:28% 40%;z-index:1;opacity:0}
.featuretile.painting>div{z-index:2}
.featuretile.painting.motion-in>.living-petals{animation:rose-bloom 2.3s .3s ease-in-out both}
@keyframes rose-bloom{0%{opacity:0;transform:scale(.94) rotate(-1.5deg)}20%{opacity:1;transform:scale(.96) rotate(-1deg)}75%{opacity:1;transform:scale(1.018) rotate(.3deg)}100%{opacity:0;transform:scale(1) rotate(0)}}
@media(max-width:650px){.vblogo .magic-logo{max-width:230px}.herocopy .living-flourish{width:125px;bottom:10px}.herocopy .embossed-seal{width:110%;height:95%}}
@media(prefers-reduced-motion:reduce){.motion-in,.motion-in *,.motion-in::before,.motion-in::after{animation:none!important}.brush-reveal,.brush-glint,.living-petals{display:none!important}.embossed-seal::after{display:none}.living-flourish path{stroke-dasharray:none!important}.magic-logo img{clip-path:none!important}}

/* A small flock escapes the canvas, with wings made from the painted mural. */
.painted-flight-layer{position:fixed;inset:0;overflow:hidden;z-index:50;pointer-events:none;contain:layout paint}
.bird-flight-carrier{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}
.painted-flying-bird{display:block;height:auto;overflow:visible;filter:drop-shadow(0 3px 3px #132c4128)}
.painted-flying-bird .bird-upper,.painted-flying-bird .bird-lower{transform-box:view-box;transform-origin:552px 403px;animation:painted-wingbeat .72s ease-in-out infinite alternate}
.painted-flying-bird .bird-lower{animation-delay:-.36s}
@keyframes painted-wingbeat{from{transform:scaleY(1) rotate(-3deg)}to{transform:scaleY(.28) rotate(7deg)}}
@media(prefers-reduced-motion:reduce){.painted-flight-layer{display:none!important}.painted-flying-bird *{animation:none!important}}

/* A brass bee lands above the portfolio label and stays perched. */
.bee-perch{position:relative;display:inline-block;margin-top:36px}
.resting-brass-bee{position:absolute;width:54px;height:45px;left:calc(50% - 27px);top:-45px;opacity:0;pointer-events:none;filter:drop-shadow(0 2px 1px #76501b35)}
.resting-brass-bee.has-landed{opacity:1}
.brass-bee-flight{position:fixed;left:0;top:0;width:54px;height:45px;z-index:51;pointer-events:none;filter:drop-shadow(0 3px 2px #76501b35)}
.brass-bee-flight svg{width:100%;height:100%;overflow:visible}
.brass-bee-flight .bee-wing{transform-box:view-box;transform-origin:60px 53px;animation:bee-wingbeat .085s linear infinite alternate}
.brass-bee-flight .bee-wing-right{animation-delay:-.042s}
@keyframes bee-wingbeat{from{transform:scaleX(1)}to{transform:scaleX(.35)}}
@media(prefers-reduced-motion:reduce){.brass-bee-flight{display:none}.resting-brass-bee{opacity:1}}
/* Sculptural antique brass bee: first landing, a short loop, then a centered perch. */
.bee-perch{margin-top:90px}
.bee-first-perch{position:absolute;width:124px;height:124px;left:calc(50% - 62px);top:-112px;pointer-events:none}
.portfolio-bee-center{position:relative;height:132px;width:100%;margin:8px 0 12px;pointer-events:none}
.portfolio-bee-center .resting-brass-bee{width:124px;height:124px;object-fit:contain;left:calc(50% - 62px);top:0;filter:drop-shadow(0 4px 2px #76501b25)}
.antique-bee-flight{width:124px;height:124px;filter:drop-shadow(0 4px 2px #76501b25)}
.flying-antique-bee{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
@media(max-width:650px){.bee-perch{margin-top:76px}.bee-first-perch{width:104px;height:104px;left:calc(50% - 52px);top:-96px}.portfolio-bee-center{height:110px}.portfolio-bee-center .resting-brass-bee{width:104px;height:104px;left:calc(50% - 52px)}}

.articulated-antique-bee{display:block;width:100%;height:100%;overflow:visible}
.articulated-antique-bee .articulated-wing{transform-box:view-box;will-change:transform}
/* Porcelain vignette below the services invitation. */
.chinoiserie-jars{display:block;width:min(100%,410px);margin-top:24px;pointer-events:none;position:relative;z-index:1}
.chinoiserie-jars>svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 4px 3px #05172435)}
.chinoiserie-jars g{transform-box:view-box}
.jar-tall{transform-origin:85px 263px}
.jar-loose-lid{transform-origin:342px 268px}
.jar-hopping-lid{transform-origin:85px 90px}
@media(max-width:650px){.chinoiserie-jars{max-width:340px;margin-top:25px}}
/* A brush paints Barry's transparent cheetah beside the Very Barry heading. */
.vb-painted-heading{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:16px;align-items:center;margin-bottom:24px}
.vb-painted-heading h2{margin:0;font-size:clamp(34px,3vw,48px)}
.cheetah-painting{width:100%;pointer-events:none}
.cheetah-painting>svg{display:block;width:100%;height:auto;overflow:visible}
.cheetah-paintbrush{filter:drop-shadow(1px 2px 1px #132c4130)}
@media(max-width:900px){.vb-painted-heading{grid-template-columns:minmax(0,1fr) 120px;gap:12px}.vb-painted-heading h2{font-size:35px}}
@media(max-width:650px){.vb-painted-heading{grid-template-columns:minmax(0,1fr) 105px;text-align:left;gap:10px}.vb-painted-heading h2{font-size:32px}}

.jar-small{transform-origin:217px 256px}
.jar-hopping-lid{transform-origin:217px 109px}


.very-barry-animated-logo{display:block;width:100%;height:auto;overflow:visible}
.verybarrynav .very-barry-animated-logo{width:88px;filter:grayscale(1) invert(1) contrast(3)}
.vblogo .very-barry-animated-logo{max-width:340px;margin:auto}
.featuretile.vb>.very-barry-animated-logo{width:100%;height:100%;padding:18px 45px 85px}
.vb-tail-v{transform-origin:780px 430px;animation:vb-v-wiggle 4.8s ease-in-out infinite}
.vb-tail-y{transform-origin:1260px 1090px;animation:vb-y-wiggle 5.5s .6s ease-in-out infinite}
.vb-big-sparkle{transform-origin:1590px 547px;opacity:0;animation:vb-brush-sparkle 4.6s .4s ease-in-out infinite;filter:drop-shadow(0 0 20px #ffd677)}
.vb-small-sparkle{transform-origin:1690px 510px;opacity:0;animation:vb-brush-sparkle 4.6s .7s ease-in-out infinite}
@keyframes vb-v-wiggle{0%,20%,70%,100%{transform:rotate(0deg)}35%{transform:rotate(.8deg)}50%{transform:rotate(-.6deg)}}
@keyframes vb-y-wiggle{0%,20%,70%,100%{transform:rotate(0deg)}35%{transform:rotate(-.9deg)}50%{transform:rotate(.7deg)}}
@keyframes vb-brush-sparkle{0%,12%,65%,100%{opacity:0;transform:scale(.3) rotate(-8deg)}28%{opacity:1;transform:scale(1.45) rotate(5deg)}43%{opacity:.65;transform:scale(.85) rotate(-5deg)}53%{opacity:1;transform:scale(1.15) rotate(0deg)}}
@media(max-width:650px){.verybarrynav .very-barry-animated-logo{width:76px}.vblogo .very-barry-animated-logo{max-width:230px}}
@media(prefers-reduced-motion:reduce){.vb-tail-v,.vb-tail-y,.vb-big-sparkle,.vb-small-sparkle{animation:none!important}}

header .vb-big-sparkle path,header .vb-small-sparkle path{fill:#062d58;stroke:#062d58}

.jar-closed-pair{transform-origin:170px 310px}
