/**
 * OMNIUM Base Styles — Design System Foundation
 * All values use CSS custom properties set by the Customizer
 * © Omar Dakhane
 *
 * @package Omnium
 */

/* ═══ RESET ═══ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body {
    font-family: var(--sans);
    background: var(--black);
    color: var(--soft);
    font-size: var(--fs-body, 1.05rem);
    line-height: var(--line-height, 1.7);
    overflow-x: hidden;
}
a { color:inherit; text-decoration:none; cursor:pointer; }
button { cursor:pointer; }
img { display:block; max-width:100%; height:auto; }
::selection { background:var(--gold); color:var(--black); }

/* Custom cursor elements — hidden by default */
.cur-d, .cur-r { display:none !important; }

/* Elegant custom cursor — only on non-touch desktops via JS class */
/* Don't apply when admin bar is visible */
.omnium-cursor-active:not(.admin-bar) {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23c9a84c'/%3E%3C/svg%3E") 8 8, auto;
}
.omnium-cursor-active:not(.admin-bar) a:not(#wpadminbar a),
.omnium-cursor-active:not(.admin-bar) button:not(#wpadminbar button),
.omnium-cursor-active:not(.admin-bar) [type="submit"],
.omnium-cursor-active:not(.admin-bar) .pill-card,
.omnium-cursor-active:not(.admin-bar) .hs-card,
.omnium-cursor-active:not(.admin-bar) .btn {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='6' fill='%23c9a84c' opacity='0.8'/%3E%3Ccircle cx='10' cy='10' r='3' fill='%23c9a84c'/%3E%3C/svg%3E") 10 10, pointer;
}
/* Admin bar always gets native cursor */
#wpadminbar, #wpadminbar * { cursor: auto !important; }
#wpadminbar a, #wpadminbar button { cursor: pointer !important; }

/* ═══ GRAIN ═══ */
.grain {
    position:fixed; inset:-100%; width:300%; height:300%;
    z-index:9997; pointer-events:none; opacity:0.028;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation: gShift 0.4s steps(4) infinite;
}
.no-grain .grain { display:none; }
@keyframes gShift {
    0%{transform:translate(0,0)} 25%{transform:translate(-1%,-2%)}
    50%{transform:translate(2%,1%)} 75%{transform:translate(-1%,1%)}
}

/* ═══ LOADING CURTAIN ═══ */
.load-screen {
    position:fixed; inset:0; z-index:9999;
    display:flex; align-items:center; justify-content:center;
    pointer-events:all;
}
.curtain-left, .curtain-right {
    position:absolute; top:0; bottom:0; width:50%;
    background:var(--black); z-index:2;
    transition: transform 1.2s cubic-bezier(0.77,0,0.175,1);
}
.curtain-left { left:0; }
.curtain-right { right:0; }
.load-screen.open .curtain-left  { transform:translateX(-100%); }
.load-screen.open .curtain-right { transform:translateX(100%); }
.load-screen.gone { pointer-events:none; visibility:hidden; }
.load-center { position:relative; z-index:3; text-align:center; transition:opacity 0.4s; }
.load-screen.open .load-center { opacity:0; }
.load-name {
    font-family:var(--serif); font-size:clamp(2rem,6vw,5rem);
    font-weight:300; color:var(--white); letter-spacing:0.08em; overflow:hidden;
}
.load-name span {
    display:inline-block; transform:translateY(110%);
    animation: lReveal 0.7s var(--ease) forwards;
}
@keyframes lReveal { to { transform:translateY(0); } }
.load-line {
    width:80px; height:1px; margin:1.5rem auto 0;
    background:var(--border); position:relative; overflow:hidden;
}
.load-line::after {
    content:''; position:absolute; inset:0;
    background:var(--gold); animation:lBar 1.8s var(--ease) forwards 0.8s;
    transform:scaleX(0); transform-origin:left;
}
@keyframes lBar { to { transform:scaleX(1); } }
.no-loader .load-screen { display:none; }

/* ═══ TYPOGRAPHY ═══ */
h1, h2, h3, h4, h5, h6 { font-weight:400; line-height:1.2; }
p { margin-bottom:1rem; }
p:last-child { margin-bottom:0; }

/* ═══ UTILITY ═══ */
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
