/* Shared visual language: tactile surfaces, precise layers and calm depth. */
:root{--depth-hairline:#17171716;--depth-shadow:0 12px 30px #1717170c,0 2px 7px #17171708;--depth-shadow-strong:0 22px 48px #17171718,0 5px 14px #1717170b;--depth-glass:rgba(255,253,244,.92)}
.site-header{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 5px 24px #17171708}
.hero{isolation:isolate}
.hero:after{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;width:31%;pointer-events:none;opacity:.27;background-image:radial-gradient(#171717 0.8px,transparent 0.9px);background-size:13px 13px;mask-image:linear-gradient(90deg,transparent,#000 55%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 55%)}
.section-heading .eyebrow,.portfolio-heading .eyebrow,.process-heading .eyebrow{position:relative;display:inline-flex;align-items:center;gap:10px}
.section-heading .eyebrow:after,.portfolio-heading .eyebrow:after,.process-heading .eyebrow:after{content:"";display:inline-block;width:28px;height:1px;background:currentColor;opacity:.5}
.stand-feature,.steps .step,.service-card,.process-list article{border-color:var(--depth-hairline);box-shadow:var(--depth-shadow)}
.stand-feature:hover,.steps .step:hover{transform:translateY(-7px)!important;box-shadow:var(--depth-shadow-strong)!important}
.frame-sample img,.portfolio-slide figure{border:1px solid var(--depth-hairline);box-shadow:0 5px 14px #1717170c,0 18px 32px #1717170d}
.portfolio-slide figure{position:relative}
.portfolio-slide figure:after{content:"";position:absolute;inset:7px;border:1px solid #1717170b;pointer-events:none}
.statement,.manifesto{isolation:isolate;overflow:hidden;box-shadow:inset 0 1px #ffffff44,inset 0 -1px #17171714}
.statement:after,.manifesto:after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.11;background-image:radial-gradient(#171717 0.7px,transparent .8px);background-size:12px 12px;mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 50%,transparent)}
.contact{position:relative;isolation:isolate}
.contact:before{content:"";position:absolute;z-index:-1;inset:16px;pointer-events:none;border:1px solid #17171712}
.service-more,.benefit-copy,.stand-feature-copy{position:relative}
.button,.event-contact-button,.portfolio-cta,.service-more-link,.text-link{transition:transform .22s ease,box-shadow .22s ease}
.button:hover,.event-contact-button:hover,.portfolio-cta:hover,.service-more-link:hover,.text-link:hover{box-shadow:0 8px 20px #17171718}
@media(max-width:650px){.hero:after{width:44%;opacity:.2}.contact:before{inset:9px}}
@media(prefers-reduced-motion:reduce){.button,.event-contact-button,.portfolio-cta,.service-more-link,.text-link{transition:none}}

/* Keep every image visible immediately; the reveal script must never gate visibility. */
.image-reveal{opacity:1;clip-path:none;transform:none;transition:transform .2s ease}
.image-reveal.is-revealed{opacity:1;clip-path:none;transform:none}
@media(prefers-reduced-motion:reduce){.image-reveal,.image-reveal.is-revealed{opacity:1;clip-path:none;transform:none;transition:none;will-change:auto}}

/* Shared motion for interactive cards across Garbo pages. */
.service-card,.steps .step,.stand-feature,.solution-card,.model-grid article,.method-list article,.process-list article,.work-item{transition:transform .38s cubic-bezier(.2,.7,.3,1),box-shadow .38s,border-color .3s,background-color .3s}
.service-card:hover,.steps .step:hover,.stand-feature:hover,.solution-card:hover,.model-grid article:hover,.method-list article:hover,.process-list article:hover,.work-item:hover{transform:translateY(-7px);box-shadow:var(--depth-shadow-strong)}
html.has-scroll-motion .motion-in{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);transition-delay:var(--motion-delay,0ms)}
html.has-scroll-motion .motion-in.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.service-card,.steps .step,.stand-feature,.solution-card,.model-grid article,.method-list article,.process-list article,.work-item{transition:none!important}.service-card:hover,.steps .step:hover,.stand-feature:hover,.solution-card:hover,.model-grid article:hover,.method-list article:hover,.process-list article:hover,.work-item:hover{transform:none!important;box-shadow:inherit}.motion-in,.motion-in.is-visible{opacity:1!important;transform:none!important;transition:none!important}}

/* Event proof: the photo stand and its printed keepsake appear together. */
.event-proof{position:relative;width:100%;height:300px;isolation:isolate}
.event-stand-preview{position:absolute;left:0;top:7px;width:82%;margin:0;padding:7px 7px 0;background:#fffdf4;box-shadow:0 18px 38px #17171725;transform:rotate(-3deg)}
.event-stand-preview img{display:block;width:100%;height:188px;object-fit:cover}
.event-stand-preview figcaption{padding:8px 4px 9px;font-size:7px;font-weight:800;letter-spacing:.12em}
.event-proof .event-frame-preview{position:absolute;z-index:2;right:0;bottom:1px;width:53%;padding:7px;background:#fffdf4;box-shadow:0 16px 30px #17171728;transform:rotate(3deg)}
.event-proof .event-frame-preview img{height:116px}
@media(max-width:650px){.event-proof{width:min(100%,360px);height:320px;justify-self:center}.event-stand-preview{width:82%}.event-stand-preview img{height:205px}.event-proof .event-frame-preview{width:52%}.event-proof .event-frame-preview img{height:120px}}
