/* Global Settings */
body {
    background-color: #080808;
    color: #EAEAEA;
    font-feature-settings: "ss01", "ss04";
    overflow-x: hidden;
}

/* Subtle Grid Background */
.grid-lines {
    background-size: 100px 100px;
    background-image: linear-gradient(to right, #1a1a1a 1px, transparent 1px),
                      linear-gradient(to bottom, #1a1a1a 1px, transparent 1px);
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: 0.5;
}

/* Typography Utilities */
.text-balance {
    text-wrap: balance;
}

/* Borders */
.border-t-subtle { border-top: 1px solid #2A2A2A; }
.border-b-subtle { border-bottom: 1px solid #2A2A2A; }

/* Image Effects */
.img-monochrome {
    filter: grayscale(100%) contrast(110%);
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.img-monochrome:hover {
    filter: grayscale(0%) contrast(100%);
}

/* Animation: Reveal */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Link Hover Effect */
.link-underline {
    position: relative;
    text-decoration: none;
}
.link-underline::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 1px;
    bottom: -2px;
    left: 0;
    background-color: #EAEAEA;
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
}
.link-underline:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}