.opening { display:block; --intro-alpha:1; --intro-lift:0px; --caption-alpha:0; }
.opening__track { height:290svh; position:relative; background:#fff; }
.opening__stage { position:sticky; top:0; height:100svh; min-height:0; isolation:isolate; overflow:clip; background:#fff; }
.opening__world,.opening__canvas { position:absolute; inset:0; display:block; width:100%; height:100%; }
.opening__fallback { position:absolute; inset:0; background:#78b9ee url('../assets/abertura-cena-v2.webp') center / cover; }
.opening__fallback { z-index:1; pointer-events:none; opacity:1; transition:opacity .55s ease; }
.opening--3d-ready .opening__fallback { opacity:0; transition:none; }
.opening__intro { position:absolute; z-index:3; left:6%; top:9%; width:39%; opacity:var(--intro-alpha); transform:translateY(var(--intro-lift)); }
.opening__intro h1 { font:400 clamp(46px,5.35vw,92px)/.98 var(--font-display); letter-spacing:-.06em; margin:0 0 12px; }
.opening__intro h1 strong { font-weight:750; }
.opening__intro p { max-width:395px; margin:0 0 20px; font-size:clamp(13px,1.18vw,18px); line-height:1.4; }
.opening__link { display:inline-flex; align-items:center; gap:28px; min-height:50px; padding:7px 8px 7px 22px; background:#fffffff2; border:1px solid #ffffffc9; border-radius:999px; text-decoration:none; font-size:14px; font-weight:600; box-shadow:0 5px 20px #15345112; backdrop-filter:blur(5px); }
.opening__link:hover { background:#fff; border-color:#caddeb; }
.opening__link span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#fff; background:#102039; font-size:20px; line-height:1; transition:transform .2s; }
.opening__link:hover span { transform:translateX(2px); }
.opening__city { position:absolute; top:75%; left:4%; right:4%; z-index:5; text-align:center; opacity:var(--caption-alpha); pointer-events:none; }
.opening__city p { margin:0; font-size:clamp(22px,2.6vw,42px); line-height:1.2; letter-spacing:-.045em; }
.opening__scroll { position:absolute; z-index:5; bottom:22px; left:6%; font-size:12px; color:#183651; opacity:var(--intro-alpha); display:flex; align-items:center; gap:12px; }
.opening__scroll i { font-size:22px; font-style:normal; }
.opening__stage::after { content:""; position:absolute; z-index:2; inset:auto 0 0; height:clamp(60px,13svh,140px); background:linear-gradient(0deg,#fff,transparent); pointer-events:none; }
.opening__error { position:absolute; z-index:8; bottom:20px; left:6%; right:6%; padding:16px; background:#fff; border:1px solid #d7e2ec; }
.opening--reduced .opening__track { height:auto; }
.opening--reduced .opening__stage { position:relative; top:0; }
.opening--reduced .opening__city,.opening--reduced .opening__scroll { display:none; }
@media(max-width:700px) {
 .opening__track { height:290svh; }
 .opening__stage { min-height:0; }
 .opening__intro { left:7%; top:6%; width:86%; }
 .opening__intro h1 { font-size:clamp(40px,12vw,72px); line-height:.99; margin-bottom:12px; }
 .opening__intro p { max-width:280px; font-size:14px; line-height:1.4; margin-bottom:15px; }
 .opening__link { padding:7px 8px 7px 20px; gap:24px; font-size:13px; }
 .opening__city { top:65%; left:8%; right:8%; }
 .opening__city p { font-size:clamp(21px,5.6vw,30px); line-height:1.2; }
 .opening__scroll { left:7%; bottom:17px; font-size:11px; }
}
@media(max-width:700px) and (max-height:700px) {
 .opening__intro { top:4%; }
 .opening__intro h1 { font-size:clamp(32px,9.8vw,44px); }
 .opening__intro p { font-size:12px; margin-bottom:10px; }
 .opening__link { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .opening__link span { transition:none; } }
@media(min-width:701px) and (max-height:650px) {
 .opening__intro h1 { font-size:clamp(36px,4.6vw,64px); }
 .opening__intro p { font-size:12px; margin-bottom:14px; }
}
