<?php
/*
Theme Name: DigitalFlyy — AI Filmmaking Landing
Author: DigitalFlyy
Description: Premium dark cinematic landing page theme for the DigitalFlyy AI Filmmaking Mastery course.
Version: 1.0.0
Text Domain: digitalflyy
*/

/* ------------------------------------------------------------------ */
/*  DigitalFlyy design system — black + restrained neon green          */
/* ------------------------------------------------------------------ */

html { scroll-padding-top: 96px; }
html.lenis, .lenis-smooth { scroll-behavior: auto !important; }

body {
    margin: 0;
    background:
        radial-gradient(circle at 50% 0%, rgba(182, 255, 0, 0.055), transparent 42%),
        #050505;
    background-attachment: fixed;
    color: #f5f5f2;
    font-family: "Inter", system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

.font-display { font-family: "Space Grotesk", "Inter", sans-serif; }

.glass {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
        rgba(12, 14, 10, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.035),
        0 0 40px rgba(182, 255, 0, 0.06);
}

.text-gradient {
    background: linear-gradient(135deg, #b6ff00, #8dff00);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.btn-neon {
    background: linear-gradient(135deg, #B6FF00, #8DFF00);
    color: #0a1205;
    box-shadow: 0 10px 40px -10px rgba(182, 255, 0, 0.35);
    transition: box-shadow .3s, filter .3s;
}
.btn-neon:hover {
    box-shadow: 0 14px 55px -8px rgba(182, 255, 0, 0.5);
    filter: brightness(1.05);
}
.btn-neon .btn-shine {
    position: absolute; inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
    transition: transform .7s;
}
.btn-neon:hover .btn-shine { transform: translateX(100%); }
.btn-neon .btn-arrow { transition: transform .3s; }
.btn-neon:hover .btn-arrow { transform: translateX(4px); }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.in-view { opacity: 1; transform: translateY(0); }

/* Hero masked line reveal */
.line-mask { display: block; overflow: hidden; padding-bottom: 4px; }
.line-mask > span { display: block; transform: translateY(112%); animation: lineUp 1s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes lineUp { to { transform: translateY(0); } }
.hero-eyebrow { animation: fadeUp .7s ease-out .05s both; }
.hero-fade { animation: fadeUp .8s ease-out .7s both; }
.hero-fade-2 { animation: fadeUp .8s ease-out .85s both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* Film grain */
.grain-overlay {
    position: fixed; inset: -100%; width: 300%; height: 300%;
    pointer-events: none; z-index: 40; opacity: .045;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/></svg>");
    animation: grain 7s steps(8) infinite;
}
@keyframes grain {
    0%, 100% { transform: translate(0, 0); }
    12% { transform: translate(-3%, 2%); }
    25% { transform: translate(2%, -4%); }
    37% { transform: translate(-4%, -2%); }
    50% { transform: translate(3%, 3%); }
    62% { transform: translate(-2%, 4%); }
    75% { transform: translate(4%, -3%); }
    87% { transform: translate(-3%, -4%); }
}

/* Marquee */
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-track { animation: marquee 48s linear infinite; }

/* Floating chips */
@keyframes floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.chip-float { animation: floaty 5s ease-in-out infinite; }

/* Play button pulse */
@keyframes pulseRing { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.9); opacity: 0; } }
.pulse-ring { position: relative; }
.pulse-ring::before {
    content: ""; position: absolute; inset: 0; border-radius: 9999px;
    border: 1px solid rgba(182, 255, 0, 0.55);
    animation: pulseRing 2.2s ease-out infinite;
}

/* Workflow line */
.workflow-line { transform: scaleX(0); transform-origin: left; transition: transform 1.6s cubic-bezier(.22,1,.36,1); }
.workflow-line.in-view { transform: scaleX(1); }

/* Accordions */
.acc-body { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .45s cubic-bezier(.22,1,.36,1), opacity .35s; }
.acc-item.open .acc-body { opacity: 1; }
.acc-item .acc-icon { transition: transform .35s cubic-bezier(.22,1,.36,1); }
.acc-item.open .acc-icon { transform: rotate(45deg); }
.acc-item { transition: border-color .5s; }
.acc-item.open { border-color: rgba(182, 255, 0, 0.3) !important; }

/* Modal & lightbox */
.df-modal { opacity: 0; pointer-events: none; transition: opacity .3s; }
.df-modal.open { opacity: 1; pointer-events: auto; }
.df-modal .df-modal-card { transform: scale(.94) translateY(16px); transition: transform .45s cubic-bezier(.22,1,.36,1); }
.df-modal.open .df-modal-card { transform: scale(1) translateY(0); }

/* Purchase popup */
#purchase-popup { transform: translateX(-40px) scale(.95); opacity: 0; pointer-events: none; transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1); }
#purchase-popup.show { transform: translateX(0) scale(1); opacity: 1; pointer-events: auto; }

/* Logo hover animation */
.logo-mark .streak, .logo-mark .play-head { transform-box: fill-box; transform-origin: center; }
@keyframes streakPulse { 0%, 100% { transform: translateX(0) scaleX(1); opacity: 1; } 50% { transform: translateX(-2px) scaleX(.82); opacity: .5; } }
.group:hover .logo-mark .streak-1 { animation: streakPulse .9s ease-in-out; }
.group:hover .logo-mark .streak-2 { animation: streakPulse .9s ease-in-out .12s; }
.group:hover .logo-mark .play-head { transform: translateX(1.5px); transition: transform .45s cubic-bezier(.22,1,.36,1); }

/* Card hover */
.card-hover { transition: transform .5s, border-color .5s; }
.card-hover:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.2); }

::selection { background: rgba(182, 255, 0, 0.25); color: #050505; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #050505; }
::-webkit-scrollbar-thumb { background: rgba(182, 255, 0, 0.22); border-radius: 8px; border: 2px solid #050505; }
::-webkit-scrollbar-thumb:hover { background: rgba(182, 255, 0, 0.38); }

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

img { max-width: 100%; height: auto; }
