/* Original hero artwork/styles from the user-owned soft-gray-studio.lovable.app homepage. */
@keyframes td-drift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(5%,-4%)scale(1.06)}}@keyframes td-drift-alt{0%,to{transform:translate(0)scale(1.04)}50%{transform:translate(-6%,4%)scale(1)}}@keyframes td-rotate{to{transform:rotate(360deg)}}@keyframes td-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero-visual{position:absolute;inset:0;overflow:hidden}.hero-orb{will-change:transform;border-radius:9999px;position:absolute}.hero-orb-a{aspect-ratio:1;background:radial-gradient(closest-side,oklch(64% .02 70/.4),oklch(64% .02 70/0) 72%);width:min(48vw,620px);animation:26s ease-in-out infinite td-drift;top:-18%;right:-8%}.hero-orb-b{aspect-ratio:1;background:radial-gradient(closest-side,oklch(90% .03 75/.55),oklch(90% .03 75/0) 70%);width:min(40vw,520px);animation:32s ease-in-out infinite td-drift-alt;bottom:-22%;left:-6%}@keyframes td-flow{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.hero-loop{aspect-ratio:1;width:min(32vw,400px);animation:110s linear infinite td-rotate;position:absolute;top:9%;right:4%}.hero-loop-path{fill:none;stroke:oklch(34% .012 70/.3);stroke-width:1.2px}.hero-loop-flow{fill:none;stroke:oklch(60% .1 50);stroke-width:2px;stroke-linecap:round;stroke-dasharray:.12 .88;animation:9s linear infinite td-flow}.hero-loop-flow-2{fill:none;stroke:oklch(34% .02 70/.5);stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:.07 .93;animation:13s linear -6s infinite td-flow}.rise{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) forwards td-rise}.rise-1{animation-delay:.1s}.rise-2{animation-delay:.25s}.rise-3{animation-delay:.4s}@media (prefers-reduced-motion:reduce){.hero-orb,.hero-loop,.rise{opacity:1;animation:none;transform:none}.hero-loop-flow,.hero-loop-flow-2{stroke-dasharray:none;animation:none}}
.portfolio-hero{position:relative;overflow:hidden;padding:145px 0 155px;border-bottom:1px solid #b6b0a4}.portfolio-hero .hero-visual{pointer-events:none}.portfolio-hero h1{position:relative;font-size:clamp(28px,5vw,60px);max-width:760px;margin:0 0 45px;letter-spacing:-1.5px}.portfolio-hero .view-work{position:relative;display:inline-block;border:1px solid #b6b0a4;border-radius:30px;padding:12px 24px;text-decoration:none;font-size:14px}@media(max-width:680px){.portfolio-hero{padding:110px 0 80px}.portfolio-hero .hero-loop{width:220px;right:-50px;top:0;opacity:.45}.portfolio-hero h1{font-size:clamp(28px,7vw,44px)}}
