:root {

    --bg-main: #0B0B0F;
    --bg-card: rgba(255,255,255,0.05);

    --gold: #D4AF37;
    --violet: #8B5CF6;

    --text: #EDEDED;
    --muted: #9CA3AF;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:var(--bg-main);
    color:var(--text);
    font-family:'Inter',sans-serif;
}

.container{
    width:min(1200px,90%);
    margin:auto;
}

/* HEADER */

.site-header{
    position:absolute;
    width:100%;
    top:0;
    left:0;
    z-index:100;
    padding:24px 0;
}

.site-header .container{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.logo a{
    color:var(--gold);
    font-size:28px;
    text-decoration:none;
    font-family:'Cinzel',serif;
}

.main-navigation ul{
    display:flex;
    gap:24px;
    list-style:none;
}

.main-navigation a{
    color:white;
    text-decoration:none;
    transition:0.3s;
}

.main-navigation a:hover{
    color:var(--gold);
}

/* HERO */

.hero-section{
    position:relative;
    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    background:
    linear-gradient(rgba(0,0,0,.6), rgba(0,0,0,.8)),
    url('../images/hero-bg.jpg');

    background-size:cover;
    background-position:center;
}

.hero-content{
    position:relative;
    z-index:2;
    text-align:center;
}

.hero-content h1{
    font-size:72px;
    font-family:'Cinzel',serif;
    margin-bottom:24px;
}

.hero-content p{
    max-width:700px;
    margin:auto;
    font-size:20px;
    color:var(--muted);
}

.hero-buttons{
    margin-top:40px;

    display:flex;
    justify-content:center;
    gap:20px;
}

.hero-btn{
    padding:16px 32px;
    border-radius:14px;

    background:var(--gold);
    color:black;

    text-decoration:none;
    font-weight:600;

    transition:.3s;
}

.hero-btn:hover{
    transform:translateY(-4px);
}

.hero-btn.secondary{
    background:transparent;
    border:1px solid var(--gold);
    color:var(--gold);
}

/* HERO PREMIUM */

.hero-section{
    overflow:hidden;
}

.hero-overlay{
    position:absolute;
    inset:0;

    background:
    radial-gradient(circle at top, rgba(139,92,246,.25), transparent 40%),
    radial-gradient(circle at bottom, rgba(212,175,55,.15), transparent 35%);

    z-index:1;
}

/* FLOATING ORBS */

.floating-orb{
    position:absolute;
    border-radius:50%;
    filter:blur(80px);
    opacity:.35;
    animation:floatOrb 8s ease-in-out infinite;
}

.orb-1{
    width:300px;
    height:300px;

    background:#8B5CF6;

    top:10%;
    left:5%;
}

.orb-2{
    width:250px;
    height:250px;

    background:#D4AF37;

    bottom:10%;
    right:10%;

    animation-delay:3s;
}

@keyframes floatOrb{

    0%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-30px);
    }

    100%{
        transform:translateY(0px);
    }

}

/* HERO CONTENT */

.hero-content{
    position:relative;
    z-index:10;
}

.hero-subtitle{
    display:inline-block;

    margin-bottom:20px;

    color:var(--gold);

    letter-spacing:3px;
    text-transform:uppercase;
    font-size:14px;

    padding:10px 20px;

    border:1px solid rgba(255,255,255,.1);

    backdrop-filter:blur(10px);

    background:rgba(255,255,255,.03);

    border-radius:999px;
}

.hero-content h1{

    font-size:92px;
    line-height:1.1;

    margin-bottom:24px;

    background:linear-gradient(to bottom, #fff, #999);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}

.hero-content p{

    font-size:22px;
    line-height:1.7;

    max-width:850px;

    color:#cfcfcf;
}

/* BUTTONS */

.hero-btn{

    position:relative;

    overflow:hidden;

    backdrop-filter:blur(10px);

    border:1px solid rgba(255,255,255,.1);

    box-shadow:
    0 10px 30px rgba(0,0,0,.3),
    inset 0 1px 1px rgba(255,255,255,.1);
}

.hero-btn::before{

    content:'';

    position:absolute;

    width:100%;
    height:100%;

    top:0;
    left:-100%;

    background:
    linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.25),
        transparent
    );

    transition:.6s;
}

.hero-btn:hover::before{
    left:100%;
}

.hero-btn:hover{

    transform:
    translateY(-6px)
    scale(1.03);

    box-shadow:
    0 20px 40px rgba(212,175,55,.25);
}

/* SCROLL INDICATOR */

.scroll-indicator{

    position:absolute;

    bottom:40px;
    left:50%;

    transform:translateX(-50%);

    z-index:10;
}

.scroll-indicator span{

    display:block;

    width:28px;
    height:48px;

    border:2px solid rgba(255,255,255,.3);

    border-radius:999px;

    position:relative;
}

.scroll-indicator span::before{

    content:'';

    position:absolute;

    width:6px;
    height:6px;

    background:white;

    border-radius:50%;

    left:50%;
    top:10px;

    transform:translateX(-50%);

    animation:scrollAnim 2s infinite;
}

@keyframes scrollAnim{

    0%{
        opacity:0;
        top:10px;
    }

    50%{
        opacity:1;
    }

    100%{
        opacity:0;
        top:28px;
    }

}

/* PARTICLES */

.mystic-particles{
    position:absolute;
    inset:0;
    z-index:2;
}

/* RESPONSIVE */

@media(max-width:768px){

    .hero-content h1{
        font-size:52px;
    }

    .hero-content p{
        font-size:18px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:center;
    }

}

.particle{

    position:absolute;

    background:rgba(255,255,255,.7);

    border-radius:50%;

    animation:particleFloat linear infinite;

    opacity:.5;
}

@keyframes particleFloat{

    0%{
        transform:
        translateY(0px)
        scale(1);

        opacity:0;
    }

    20%{
        opacity:.6;
    }

    100%{
        transform:
        translateY(-120px)
        scale(0);

        opacity:0;
    }

}

/* PORTAL SECTION */

.portal-section{

    position:relative;

    padding:140px 0;

    background:
    linear-gradient(
        to bottom,
        #09090d,
        #111118
    );
}

.section-heading{

    text-align:center;

    margin-bottom:70px;
}

.section-subtitle{

    display:inline-block;

    color:var(--gold);

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:20px;

    font-size:13px;
}

.section-heading h2{

    font-size:54px;

    font-family:'Cinzel',serif;

    max-width:900px;

    margin:auto;

    line-height:1.2;
}

/* GRID */

.portal-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:30px;
}

/* CARD */

.portal-card{

    position:relative;

    overflow:hidden;

    border-radius:28px;

    min-height:520px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    transition:.5s;

    isolation:isolate;
}

.portal-card:hover{

    transform:
    translateY(-12px)
    scale(1.02);

    border-color:
    rgba(212,175,55,.3);
}

/* GLOW */

.card-glow{

    position:absolute;

    width:240px;
    height:240px;

    background:
    radial-gradient(
        circle,
        rgba(139,92,246,.35),
        transparent 70%
    );

    top:-80px;
    right:-80px;

    filter:blur(30px);

    z-index:0;

    opacity:0;

    transition:.5s;
}

.portal-card:hover .card-glow{
    opacity:1;
}

/* IMAGE */

.portal-image{

    height:260px;

    background-size:cover;
    background-position:center;

    position:relative;
}

.portal-image::after{

    content:'';

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        to top,
        rgba(10,10,15,1),
        transparent
    );
}

/* BACKGROUNDS */

.tarot-img{
    background-image:url('../images/tarot.jpg');
}

.daily-img{
    background-image:url('../images/daily.jpg');
}

.kabbalah-img{
    background-image:url('../images/kabbalah.jpg');
}

.meditation-img{
    background-image:url('../images/meditation.jpg');
}

/* CONTENT */

.portal-content{

    position:relative;

    z-index:2;

    padding:30px;
}

.portal-tag{

    display:inline-block;

    margin-bottom:18px;

    color:var(--gold);

    font-size:13px;

    letter-spacing:2px;

    text-transform:uppercase;
}

.portal-content h3{

    font-size:34px;

    margin-bottom:18px;

    font-family:'Cinzel',serif;
}

.portal-content p{

    color:#bdbdbd;

    line-height:1.7;

    margin-bottom:30px;
}

.portal-link{

    color:white;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
}

.portal-link:hover{
    color:var(--gold);
}

/* RESPONSIVE */

@media(max-width:768px){

    .section-heading h2{
        font-size:38px;
    }

    .portal-card{
        min-height:auto;
    }

}

/* DAILY CARD */

.daily-card-section{

    position:relative;

    padding:160px 0;

    background:
    radial-gradient(
        circle at center,
        rgba(139,92,246,.08),
        transparent 40%
    ),
    #0b0b0f;
}

.daily-card-wrapper{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(320px,1fr));

    align-items:center;

    gap:80px;
}

/* LEFT */

.daily-left h2{

    font-size:64px;

    line-height:1.1;

    margin:20px 0 30px;

    font-family:'Cinzel',serif;
}

.daily-left p{

    font-size:18px;

    color:#bdbdbd;

    line-height:1.8;

    margin-bottom:40px;
}

/* CARD INFO */

.daily-card-info{

    margin-top:50px;

    padding:30px;

    border-radius:24px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);
}

.daily-card-info h3{

    font-size:32px;

    margin-bottom:16px;

    font-family:'Cinzel',serif;
}

/* RIGHT */

.daily-right{

    display:flex;
    justify-content:center;
}

/* CARD */

.tarot-card-container{

    perspective:1400px;
}

.tarot-card{

    position:relative;

    width:340px;
    height:580px;

    transform-style:preserve-3d;

    transition:1.2s cubic-bezier(.4,.2,.2,1);

    cursor:pointer;
}

.tarot-card.flipped{
    transform:rotateY(180deg);
}

/* FRONT / BACK */

.tarot-front,
.tarot-back{

    position:absolute;

    inset:0;

    border-radius:28px;

    overflow:hidden;

    backface-visibility:hidden;

    display:flex;
    align-items:center;
    justify-content:center;
}

/* FRONT */

.tarot-front{

    background:
    linear-gradient(
        145deg,
        #151520,
        #0b0b0f
    );

    border:
    1px solid rgba(212,175,55,.25);

    box-shadow:
    0 20px 60px rgba(0,0,0,.5),
    0 0 40px rgba(212,175,55,.1);

    flex-direction:column;
}

.tarot-front span{

    color:var(--gold);

    font-family:'Cinzel',serif;

    font-size:28px;

    z-index:2;
}

/* PATTERN */

.card-pattern{

    position:absolute;

    inset:0;

    background:
    radial-gradient(
        circle,
        rgba(212,175,55,.08),
        transparent 60%
    );

    animation:rotatePattern 18s linear infinite;
}

@keyframes rotatePattern{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }

}

/* BACK */

.tarot-back{

    transform:rotateY(180deg);

    background:#111;
}

.tarot-back img{

    width:100%;
    height:100%;

    object-fit:cover;
}

/* GLOW */

.tarot-card::after{

    content:'';

    position:absolute;

    inset:-20px;

    background:
    radial-gradient(
        circle,
        rgba(212,175,55,.15),
        transparent 70%
    );

    filter:blur(40px);

    z-index:-1;
}

/* RESPONSIVE */

@media(max-width:768px){

    .daily-left h2{
        font-size:42px;
    }

    .tarot-card{

        width:280px;
        height:480px;
    }

}

/* ARCHIVE */

.archive-hero{

    padding:180px 0 80px;

    text-align:center;
}

.archive-hero h1{

    font-size:72px;

    font-family:'Cinzel',serif;
}

.archive-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

    padding-bottom:120px;
}

/* CARD */

.archive-card{

    overflow:hidden;

    border-radius:24px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);

    transition:.4s;
}

.archive-card:hover{

    transform:
    translateY(-10px);

    border-color:
    rgba(212,175,55,.3);
}

.archive-card a{

    text-decoration:none;

    color:white;
}

.archive-image{

    height:420px;

    overflow:hidden;
}

.archive-image img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.5s;
}

.archive-card:hover img{

    transform:scale(1.06);
}

.archive-content{

    padding:24px;
}

.archive-content h2{

    font-size:30px;

    margin-bottom:14px;

    font-family:'Cinzel',serif;
}

.archive-content p{

    color:#bdbdbd;

    line-height:1.7;
}

/* SINGLE */

.single-tarot-hero{

    padding:180px 0;
}

.single-layout{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(320px,1fr));

    gap:80px;

    align-items:center;
}

.single-image img{

    width:100%;

    border-radius:28px;

    box-shadow:
    0 30px 80px rgba(0,0,0,.5);
}

.single-content h1{

    font-size:72px;

    margin:20px 0 30px;

    font-family:'Cinzel',serif;
}

.single-description{

    color:#d0d0d0;

    line-height:1.9;

    font-size:18px;
}

/* DETAILS */

.tarot-details-section{

    padding:120px 0;
}

.details-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:30px;
}

/* DETAIL CARD */

.detail-card{

    padding:32px;

    border-radius:28px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    transition:.4s;
}

.detail-card:hover{

    transform:translateY(-8px);

    border-color:
    rgba(212,175,55,.25);
}

.detail-card h3{

    margin-bottom:18px;

    font-size:26px;

    font-family:'Cinzel',serif;

    color:var(--gold);
}

.detail-card p{

    color:#d0d0d0;

    line-height:1.8;
}

/* WIDE */

.wide-card{
    grid-column:span 2;
}

/* SYMBOLISM */

.symbolism-section{

    padding:120px 0;
}

.symbolism-box{

    padding:60px;

    border-radius:40px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);
}

.symbolism-box h2{

    font-size:54px;

    margin-bottom:40px;

    font-family:'Cinzel',serif;
}

.symbolism-content{

    line-height:2;

    color:#d0d0d0;
}

/* VIDEO */

.video-section{

    padding:120px 0 180px;
}

.video-section h2{

    text-align:center;

    margin-bottom:50px;

    font-size:54px;

    font-family:'Cinzel',serif;
}

.video-wrapper{

    position:relative;

    padding-bottom:56.25%;

    height:0;

    overflow:hidden;

    border-radius:30px;

    box-shadow:
    0 30px 80px rgba(0,0,0,.5);
}

.video-wrapper iframe{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;
}

/* RESPONSIVE */

@media(max-width:768px){

    .wide-card{
        grid-column:span 1;
    }

    .single-content h1{
        font-size:48px;
    }

    .symbolism-box{
        padding:30px;
    }

    .symbolism-box h2,
    .video-section h2{
        font-size:38px;
    }

}

/* LECTURES */

.archive-description{

    max-width:760px;

    margin:30px auto 0;

    color:#bdbdbd;

    font-size:18px;

    line-height:1.8;
}

/* CATEGORY */

.lecture-category{

    display:inline-block;

    margin-bottom:16px;

    padding:8px 16px;

    border-radius:999px;

    background:
    rgba(212,175,55,.1);

    border:
    1px solid rgba(212,175,55,.2);

    color:var(--gold);

    font-size:13px;

    letter-spacing:1px;

    text-transform:uppercase;
}

/* SINGLE LECTURE */

.single-lecture-hero{

    padding:
    180px 0 80px;
}

.single-lecture-hero h1{

    font-size:72px;

    line-height:1.1;

    margin:
    30px 0 50px;

    font-family:'Cinzel',serif;

    max-width:900px;
}

/* IMAGE */

.lecture-featured-image{

    border-radius:36px;

    overflow:hidden;

    box-shadow:
    0 30px 80px rgba(0,0,0,.5);
}

.lecture-featured-image img{

    width:100%;

    display:block;
}

/* CONTENT */

.lecture-content-section{

    padding:
    80px 0 180px;
}

.lecture-content{

    max-width:900px;

    margin:auto;

    font-size:20px;

    line-height:2;

    color:#d0d0d0;
}

/* TYPOGRAPHY */

.lecture-content h2,
.lecture-content h3{

    margin:
    70px 0 30px;

    font-family:'Cinzel',serif;

    color:white;
}

.lecture-content h2{
    font-size:48px;
}

.lecture-content h3{
    font-size:34px;
}

.lecture-content p{
    margin-bottom:30px;
}

.lecture-content img{

    border-radius:28px;

    margin:
    50px 0;
}

/* QUOTES */

.lecture-content blockquote{

    margin:
    60px 0;

    padding:
    40px;

    border-left:
    4px solid var(--gold);

    background:
    rgba(255,255,255,.03);

    font-style:italic;

    border-radius:20px;
}

/* RESPONSIVE */

@media(max-width:768px){

    .single-lecture-hero h1{
        font-size:48px;
    }

    .lecture-content{
        font-size:18px;
    }

    .lecture-content h2{
        font-size:34px;
    }

}

/* CURSOR GLOW */

.cursor-glow{

    position:fixed;

    width:400px;
    height:400px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(139,92,246,.18),
        transparent 70%
    );

    pointer-events:none;

    z-index:0;

    transform:
    translate(-50%, -50%);

    filter:blur(40px);

    transition:
    transform .08s linear;
}

/* REVEAL */

.reveal{

    opacity:0;

    transform:
    translateY(80px);

    transition:none;
}

/* =========================
   HEADER UX
========================= */

.header-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

/* HEADER SCROLL STATE */

.site-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:999;

    padding:24px 0;

    transition:0.4s ease;

    background:transparent;
}

.site-header.scrolled{

    background:rgba(10,10,15,.85);

    backdrop-filter:blur(20px);

    border-bottom:1px solid rgba(255,255,255,.08);

    padding:14px 0;
}

/* NAV */

.main-navigation ul{
    display:flex;
    gap:26px;
}

.main-navigation a{
    color:white;
    text-decoration:none;
    font-size:15px;

    transition:0.3s;
}

.main-navigation a:hover{
    color:var(--gold);
}

/* BURGER */

.burger{
    display:none;

    flex-direction:column;
    gap:5px;

    cursor:pointer;
}

.burger span{
    width:26px;
    height:2px;

    background:white;

    transition:0.3s;
}

/* MOBILE */

@media(max-width:768px){

    .burger{
        display:flex;
    }

    .main-navigation{

        position:fixed;

        top:0;
        right:-100%;

        width:70%;
        height:100vh;

        background:rgba(10,10,15,.98);

        backdrop-filter:blur(25px);

        padding:100px 40px;

        transition:0.5s ease;

        flex-direction:column;
    }

    .main-navigation.open{
        right:0;
    }

    .main-navigation ul{
        flex-direction:column;
        gap:20px;
    }
}

/* BURGER ACTIVE */

.burger.active span:nth-child(1){
    transform:rotate(45deg) translateY(7px);
}

.burger.active span:nth-child(2){
    opacity:0;
}

.burger.active span:nth-child(3){
    transform:rotate(-45deg) translateY(-7px);
}

/* SPREAD SECTION */

.spread-section{

    padding:160px 0;

    text-align:center;

    background:
    radial-gradient(
        circle at top,
        rgba(139,92,246,.1),
        transparent 60%
    );
}

.spread-area{
    margin-top:60px;
}

.spread-result{

    margin-top:60px;

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

    gap:30px;
}

/* CARD RESULT */

.spread-card{

    padding:30px;

    border-radius:24px;

    background:
    rgba(255,255,255,.03);

    border:
    1px solid rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    animation:fadeIn .6s ease;
}

.spread-card h3{

    color:var(--gold);

    margin-bottom:10px;

    font-family:'Cinzel',serif;
}

.spread-card h4{

    margin-bottom:10px;
}

@keyframes fadeIn{

    from{
        opacity:0;
        transform:translateY(20px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

