.iw-hero-3d-wrapper {
position: relative;
width: 100%;
overflow: hidden;
background: radial-gradient(ellipse at center, #1a1a1a 0%, #050505 100%);
color: #f5f0e1;
isolation: isolate;
} .iw-bg-3d-fixed {
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
background: radial-gradient(ellipse at center, #1a1a1a 0%, #050505 100%);
}
.iw-bg-3d-fixed .iw-hero-3d-canvas {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
} html.iw-has-3d-bg .iw-hero-3d-wrapper[data-fullpage="1"] {
background: transparent;
overflow: visible;
} html.iw-has-3d-bg {
background-color: #050505;
}
html.iw-has-3d-bg body {
background: transparent !important;
}
.iw-hero-3d-canvas {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
}
.iw-hero-3d-fallback {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
display: none;
z-index: 1;
}
.iw-hero-3d-content {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 2rem;
pointer-events: none;
z-index: 2;
}
.iw-hero-3d-title {
font-size: clamp(2.2rem, 7vw, 5.5rem);
font-weight: 300;
letter-spacing: -0.02em;
line-height: 0.95;
margin: 0;
color: #f5f0e1;
text-shadow: 0 0 60px rgba(212, 175, 55, 0.25), 0 0 120px rgba(212, 175, 55, 0.1);
}
.iw-hero-3d-title span {
display: inline-block;
opacity: 0;
transform: translateY(30px);
animation: iwHeroFadeIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
animation-delay: calc(0.2s + var(--i) * 0.12s);
}
.iw-hero-3d-subtitle {
font-size: clamp(0.95rem, 1.4vw, 1.15rem);
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
color: rgba(245, 240, 225, 0.7);
margin: 1.8rem 0 0 0;
opacity: 0;
transform: translateY(20px);
animation: iwHeroFadeIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
animation-delay: 1.4s;
max-width: 36ch;
}
@keyframes iwHeroFadeIn {
to {
opacity: 1;
transform: translateY(0);
}
} @media (prefers-reduced-motion: reduce) {
.iw-hero-3d-title span,
.iw-hero-3d-subtitle {
animation: none;
opacity: 1;
transform: none;
}
} @media (max-width: 640px) {
.iw-hero-3d-content {
padding: 1.5rem;
}
.iw-hero-3d-subtitle {
margin-top: 1.2rem;
}
}