html,body{background:var(--bg);color:var(--white)}
body{font-family:var(--font-mono);font-size:var(--sz-base);font-weight:300;line-height:1.7;cursor:none}
body.is-loading{overflow:hidden}

.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--gut)}

.eyebrow{
    display:block;
    font-family:var(--font-mono);
    font-size:var(--sz-xs);
    color:var(--white-40);
    letter-spacing:0.25em;
    text-transform:uppercase;
    margin-bottom:var(--sp3);
}

em{font-style:italic;color:var(--gold)}

a:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

.btn-primary-lg{
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    font-family:var(--font-mono);
    font-size:var(--sz-xs);
    letter-spacing:0.2em;
    text-transform:uppercase;
    color:var(--bg);
    background:var(--white);
    padding:1rem 2.5rem;
    cursor:none;
    transition:background var(--t2) var(--ease), color var(--t2) var(--ease);
    white-space:nowrap;
}
.btn-primary-lg:hover{background:var(--gold);color:var(--bg)}
.btn-full{width:100%;justify-content:center}

/* cursor */
.cursor-dot,.cursor-ring{
    position:fixed;
    pointer-events:none;
    z-index:9000;
    border-radius:50%;
    transform:translate(-50%,-50%);
}
.cursor-dot{width:6px;height:6px;background:var(--white);mix-blend-mode:difference}
.cursor-ring{
    width:30px;height:30px;
    border:1px solid rgba(232,227,216,0.4);
    transition:width var(--t2) var(--ease),height var(--t2) var(--ease);
}
.cursor-ring.is-hover{width:52px;height:52px}
.cursor-dot.is-hover{opacity:0}

/* preloader */
.preloader{
    position:fixed;inset:0;background:var(--bg);
    z-index:9999;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:1.5rem;
    transition:opacity 0.8s var(--ease), visibility 0.8s;
}
.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.pre-logo{
    font-family:var(--font-serif);
    font-size:clamp(3rem,8vw,6rem);
    font-weight:300;
    letter-spacing:0.35em;
    color:var(--white);
}
.pre-status{
    font-family:var(--font-mono);
    font-size:var(--sz-xs);
    color:var(--white-40);
    letter-spacing:0.2em;
    animation:statusBlink 1.4s ease infinite;
}
@keyframes statusBlink{0%,100%{opacity:1}50%{opacity:0.2}}

/* reveal on scroll */
[data-reveal]{
    opacity:0;
    transform:translateY(32px);
    transition:opacity var(--t3) var(--ease), transform var(--t3) var(--ease);
}
[data-reveal].is-visible{opacity:1;transform:none}
