/* Motion references: 21st.dev's reveal and zoom-parallax patterns.
   Original CSS implementation; no React component code or runtime is imported. */
.line-clip{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.line-inner{display:block}
.offering{display:grid;grid-template-columns:.85fr 1.2fr;gap:10vw;border-bottom:1px solid var(--line)}
.offering-intro h2{font-size:clamp(34px,3.25vw,55px);line-height:1.18;letter-spacing:-.055em;margin:24px 0}
.offering-intro>p:last-of-type{max-width:340px;font-size:15px;color:var(--body)}
.offering-intro .text-link{margin-top:22px}
.offering-item{position:relative;padding:30px 0;border-top:1px solid var(--line)}
.offering-item:first-child{padding-top:0;border:0}
.offering-item:last-child{padding-bottom:0}
.offering-item h3{font-size:clamp(25px,2.1vw,35px);letter-spacing:-.045em;line-height:1.2;margin:14px 0}
.offering-item>p{font-size:15px;color:var(--body);max-width:550px}
.contact-invitation{font-size:15px;color:var(--body);max-width:335px;margin-bottom:20px}
.site-header nav{gap:clamp(16px,2vw,35px)}
.text-link{position:relative;border-bottom-color:var(--line)}
.text-link::after{content:'';position:absolute;height:1px;bottom:-1px;left:0;right:0;background:var(--bronze);transform:scaleX(.25);transform-origin:left;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.text-link:hover::after,.text-link:focus-visible::after{transform:scaleX(1)}
.text-link span{transition:transform .55s cubic-bezier(.22,1,.36,1)}
.form-bottom button{position:relative;overflow:hidden;transition:background .35s,color .35s,border-color .35s}
.form-bottom button span{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.form-bottom button:hover span,.form-bottom button:focus-visible span{transform:translate(3px,-3px)}
.work-entry{position:relative}
.work-entry::before{content:'';position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,var(--bronze),#c6ab8510);transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.work-entry:hover::before,.work-entry:focus-within::before{transform:scaleX(1)}
@media(prefers-reduced-motion:no-preference){
  h1.hero-in{animation:none}
  h1 .line-inner{animation:line-arrive 1.2s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(.12s + var(--line)*.1s)}
  .hero-description.hero-in{animation-delay:.4s}
  @keyframes line-arrive{from{transform:translateY(112%);opacity:.1}to{transform:translateY(0);opacity:1}}
}
@media(min-width:801px) and (prefers-reduced-motion:no-preference){
  .motion-ready .reveal{opacity:1;transform:none;transition:none}
  .motion-ready .reveal>*{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform 1s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--order,0)*65ms)}
  .motion-ready .reveal.is-visible>*{opacity:1;transform:none}
  .motion-ready .reveal>h2{opacity:1;transform:none;transition:none}
  .motion-ready .reveal .line-inner{transform:translateY(112%);transition:transform 1.1s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--line,0)*100ms)}
  .motion-ready .reveal.is-visible .line-inner{transform:translateY(0)}
  @supports(animation-timeline:view()){
    .perspective-art{inset:-3% 0}
    .perspective-art img{animation:art-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    .closing-image img{animation:art-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes art-drift{from{transform:translateY(-2%) scale(1.055)}to{transform:translateY(2%) scale(1.055)}}
  }
}
@media(max-width:1200px){.brand span{display:none}}
@media(max-width:800px){.offering{grid-template-columns:1fr;gap:44px}.offering-intro h2{font-size:36px}.offering-intro>p:last-of-type{max-width:450px}.offering-item h3{font-size:27px}.offering-item>p{font-size:14px}.contact-invitation{font-size:14px;max-width:380px}}
@media(prefers-reduced-motion:reduce){.line-inner,.text-link::after,.work-entry::before{transform:none!important}.motion-ready .reveal>*{opacity:1!important;transform:none!important;transition:none!important}}
