/* Opening hero — inspired by x897's typographic intro + full-bleed product stage.
   Original CSS for Marcelo Assunção. Does not copy X897 assets, text or class names. */
@import url("https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@75..100,400..700&display=swap");

.open-hero,.open-lead{
  --open-ink:#111314;
  --open-paper:#ffffff;
  --open-muted:#5E635F;
  --open-line:#D9DBD8;
  --open-bg:#050505;
  --open-head-h:260px;
}
.open-hero{
  font-family:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  color:#fff;
  background:var(--open-bg);
  position:relative;
}
.open-wrap{max-width:1220px;margin:0 auto;padding:0 44px}
@media(max-width:640px){.open-wrap{padding:0 20px}}

/* Sticky wordmark + tagline over the film; colour flips as the white lead arrives */
.open-head{
  position:sticky;top:0;z-index:20;pointer-events:none;
  height:var(--open-head-h,260px);padding:0;
}
.open-layer{position:absolute;left:0;right:0;top:0;padding:72px 0 30px}
.open-layer.light{color:#fff}
.open-layer.dark{color:var(--open-ink);clip-path:inset(100% 0 0 0);-webkit-clip-path:inset(100% 0 0 0)}
.open-brand,.open-tag{color:inherit}
.open-brand{
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  display:block;text-decoration:none;pointer-events:auto;
  font-weight:700;letter-spacing:-.03em;line-height:.9;
  font-size:clamp(40px,4.6vw,64px);
  font-variation-settings:"wdth" 92;
}
.open-brand .fn,.open-brand .ln{display:block}
.open-tag{
  margin-top:16px;font-size:15px;font-weight:400;line-height:1.5;
  letter-spacing:-.01em;max-width:28em;color:inherit;opacity:.88;
  display:flex;align-items:flex-start;gap:14px;
}
.open-tag-copy{flex:1;min-width:0}
.open-award-badge{
  flex:0 0 auto;width:64px;height:64px;pointer-events:auto;
  display:block;overflow:hidden;border:1px solid rgba(255,255,255,.28);
  opacity:.95;transition:opacity .2s,transform .2s;
}
.open-award-badge:hover{opacity:1;transform:scale(1.04)}
.open-award-badge picture,.open-award-badge img{
  width:100%;height:100%;display:block;object-fit:cover;
}
.open-layer.dark .open-award-badge{border-color:rgba(26,24,22,.16)}
.open-wrap{position:relative}
.open-nav{
  position:absolute;top:8px;right:0;
  display:flex;gap:22px;pointer-events:auto;
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wdth" 88;
}
.open-nav a{color:inherit;text-decoration:none;opacity:.72}
.open-nav a:hover{opacity:1}

.open-stage{margin-top:calc(-1 * var(--open-head-h,260px));background:var(--open-bg)}
.open-sticky{
  position:relative;height:100vh;height:100svh;overflow:hidden;
  background:var(--open-bg);
}
.open-poster,.open-media{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center center;
  background:#000;display:block;pointer-events:none;
}
.open-ui{position:absolute;inset:0;pointer-events:none;z-index:10}
.open-foot{
  position:absolute;left:44px;right:44px;bottom:44px;
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  font-variation-settings:"wdth" 88;
}
.open-pname{opacity:.8}
.open-award{opacity:.7;text-align:right}
.open-cue{
  position:absolute;left:50%;bottom:40px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:12px;
  pointer-events:auto;cursor:pointer;background:none;border:0;color:#fff;
  font:inherit;
}
.open-tick{
  width:60px;height:60px;border-radius:50%;border:1px solid rgba(255,255,255,.45);
  background:rgba(255,255,255,.06);backdrop-filter:blur(6px);
  position:relative;transition:background .3s,border-color .3s;
}
.open-cue:hover .open-tick{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.8)}
.open-tick::before,.open-tick::after{
  content:"";position:absolute;left:50%;width:10px;height:10px;margin-left:-5px;
  border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg);
  animation:open-blink 1.5s ease-in-out infinite;
}
.open-tick::before{top:17px}
.open-tick::after{top:27px;animation-delay:.22s}
.open-cue span{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
@keyframes open-blink{0%,100%{opacity:.25}50%{opacity:1}}

.open-spacer{height:var(--open-head-h,260px);background:var(--open-paper)}

/* Editorial lead that follows the film — same typographic calm as the reference, his words */
.open-lead{
  background:var(--open-paper);color:var(--open-ink);
  font-family:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  padding:0 0 72px;border-bottom:1px solid var(--open-line);
}
.open-lead .open-wrap{max-width:860px;padding-top:8px}
.open-lead .lead{
  font-size:clamp(18px,1.7vw,21px);line-height:1.55;font-weight:400;
  letter-spacing:-.01em;max-width:42em;color:#2b2e30;
}
.open-lead .lead + .lead{margin-top:18px}
.open-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.open-lead .btn-cv{margin-top:0}
.open-lead .btn-cv.ghost{color:var(--open-ink);border-color:var(--open-line)}

@media(max-width:640px){
  .open-layer{padding:30px 0 22px}
  .open-brand{
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:40px}
  .open-tag{font-size:12px;line-height:1.5}
  .open-award-badge{width:52px;height:52px}
  .open-nav{display:none}
  .open-foot{left:20px;right:20px;top:0;bottom:0;height:100%;max-height:100vh;display:block}
  .open-award{display:none} /* already in the tagline */
  .open-pname{position:absolute;left:0;right:0;bottom:64px;text-align:center;opacity:.85;color:#fff;z-index:3}
  .open-cue{bottom:104px;gap:10px}
  .open-tick{width:46px;height:46px}
  .open-tick::before{top:12px}
  .open-tick::after{top:20px}
  .open-cue span{font-size:10px}
}

/* Intro overlay */
.intro{
  position:fixed;inset:0;z-index:50;background:var(--open-bg,#050505);
  display:flex;align-items:center;justify-content:center;padding:0 24px;
  color:#fff;transition:opacity .45s ease;
}
.intro .satz{
  font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:700;
  font-size:clamp(28px,5.6vw,68px);letter-spacing:-.03em;line-height:1.12;
  margin:0;text-align:center;color:#fff;font-variation-settings:"wdth" 92;
}
.intro .ch{opacity:0}
.intro .ch.on{opacity:1}
.intro .weg{transition:opacity .25s ease;opacity:0!important}
.intro .fly-name{
  display:inline-block;vertical-align:baseline;white-space:nowrap;
}
.flyfix{
  position:fixed;z-index:45;pointer-events:none;color:#fff;margin:0;
  font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:700;
  letter-spacing:-.03em;line-height:.9;font-variation-settings:"wdth" 92;
  white-space:nowrap;
}
.caret{
  position:fixed;z-index:61;background:#fff;
  animation:open-caret 1s steps(1) infinite;pointer-events:none;
}
@keyframes open-caret{50%{opacity:0}}
html.intro-run .open-lead,html.intro-run .open-head{opacity:0}
html.intro-run:not(.intro-da) body::before{
  content:"";position:fixed;inset:0;z-index:49;background:#050505;
}
html.intro-run{overflow:hidden}

@media(prefers-reduced-motion:reduce){
  .open-tick::before,.open-tick::after{animation:none;opacity:1}
  .caret{animation:none}
}

.open-poster{z-index:1}
.open-media{z-index:0}
.open-hero.is-playing .open-poster{opacity:0;transition:opacity .7s ease}
.open-lead{background:#fff}
