:root { --chfi-yellow: #ffd400; --chfi-black: #070707; }
body.chfi-locked { overflow: hidden !important; }
.chfi-intro[hidden] { display: none !important; }
.chfi-intro { position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; overflow: hidden; background: #050505; color: #fff; font-family: Montserrat, Arial, sans-serif; opacity: 1; transition: opacity .65s ease, visibility .65s ease; }
.chfi-intro.chfi-closing { opacity: 0; visibility: hidden; pointer-events: none; }
.chfi-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.chfi-shade { position: absolute; inset: 0; background: radial-gradient(circle at 50% 58%, transparent 0 18%, rgba(0,0,0,.18) 48%, rgba(0,0,0,.72) 100%), linear-gradient(180deg, rgba(0,0,0,.28), transparent 34%, rgba(0,0,0,.45)); }
.chfi-copy { position: relative; z-index: 3; width: min(92vw, 980px); text-align: center; transform: translateY(-4vh); animation: chfi-copy-in 1s .35s both; }
.chfi-kicker { margin: 0 0 12px; color: var(--chfi-yellow); font-size: clamp(10px, 1vw, 15px); font-weight: 900; letter-spacing: .42em; }
.chfi-copy h2 { margin: 0; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: clamp(64px, 13vw, 190px); line-height: .82; letter-spacing: -.025em; text-transform: uppercase; text-shadow: 0 4px 28px #000, 0 0 42px rgba(255,92,0,.35); }
.chfi-subtitle { margin: 18px 0 28px; font-size: clamp(17px, 2vw, 30px); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; text-shadow: 0 3px 16px #000; }
.chfi-cta { display: inline-block; padding: 15px 25px; color: #090909 !important; background: var(--chfi-yellow); border: 2px solid var(--chfi-yellow); font-size: 14px; font-weight: 900; letter-spacing: .08em; text-decoration: none !important; transition: .2s ease; }
.chfi-cta:hover, .chfi-cta:focus { color: var(--chfi-yellow) !important; background: #090909; outline: none; transform: translateY(-2px); }
.chfi-skip { position: absolute; z-index: 5; top: max(18px, env(safe-area-inset-top)); right: max(18px, env(safe-area-inset-right)); padding: 10px 13px; border: 1px solid rgba(255,255,255,.45); color: #fff; background: rgba(0,0,0,.46); font: 800 11px/1 Montserrat, Arial, sans-serif; letter-spacing: .12em; cursor: pointer; backdrop-filter: blur(7px); }
.chfi-skip span { margin-left: 8px; color: var(--chfi-yellow); font-size: 17px; vertical-align: -1px; }
.chfi-progress { position: absolute; z-index: 5; right: 0; bottom: max(0px, env(safe-area-inset-bottom)); left: 0; height: 4px; background: rgba(255,255,255,.16); }
.chfi-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #ff4d00, var(--chfi-yellow)); animation: chfi-progress var(--chfi-duration) linear forwards; }
.chfi-embers { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.chfi-embers i { position: absolute; bottom: -30px; width: 5px; height: 5px; border-radius: 50%; background: #ffb000; box-shadow: 0 0 14px 4px #ff4d00; animation: chfi-ember 4.8s linear infinite; }
.chfi-embers i:nth-child(1) { left: 8%; animation-delay: -.6s; }
.chfi-embers i:nth-child(2) { left: 24%; animation-delay: -2.8s; transform: scale(.6); }
.chfi-embers i:nth-child(3) { left: 44%; animation-delay: -1.4s; }
.chfi-embers i:nth-child(4) { left: 61%; animation-delay: -3.7s; transform: scale(.75); }
.chfi-embers i:nth-child(5) { left: 78%; animation-delay: -2.1s; }
.chfi-embers i:nth-child(6) { left: 92%; animation-delay: -4.2s; transform: scale(.55); }
@keyframes chfi-copy-in { from { opacity: 0; transform: translateY(2vh) scale(.96); } to { opacity: 1; transform: translateY(-4vh) scale(1); } }
@keyframes chfi-progress { to { width: 100%; } }
@keyframes chfi-ember { 0% { opacity: 0; translate: 0 0; } 15% { opacity: 1; } 100% { opacity: 0; translate: 50px -110vh; } }
@media (max-width: 600px) {
	.chfi-video { object-position: 50% 50%; }
	.chfi-copy { transform: translateY(-1vh); }
	.chfi-copy h2 { font-size: clamp(58px, 21vw, 92px); }
	.chfi-subtitle { margin: 14px auto 24px; max-width: 88vw; font-size: 15px; line-height: 1.35; }
	.chfi-cta { padding: 13px 18px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.chfi-video { display: none; }
	.chfi-copy, .chfi-progress span, .chfi-embers i { animation: none !important; }
}

