/* SVG Background */
#orbit-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    display: grid;
    place-items: center;
}

#orbit-bg svg {
    width: 100vw;
    height: 100vh;
    opacity: .25;
    transform: translateX(40vw);
}

#orbit-bg .orbit {
    transform-box: fill-box;
    transform-origin: center;
}

@keyframes orbitSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

#orbit-bg .orbit[data-speed="0.8"] {
    animation: orbitSpin 240s linear infinite;
}

/* Layout Structure */
.page-canvas {
    position: relative;
    z-index: 1;
}

/* Grid Layouts */
.grid-6 {
    display: grid;
    gap: clamp(1.4rem, 3vw, 2.4rem);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    padding: 2rem 0;
}

.posts-grid {
    width: min(1100px, 92vw);
    margin: 0 auto;
    display: grid;
    gap: clamp(1.4rem, 3vw, 2.4rem);
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* Card Styles */
.post-card {
    background: var(--panel);
    border-radius: 12px;
    padding: 1.6rem;
    box-shadow: 0 12px 32px rgba(16,24,40,.08);
    display: flex;
    flex-direction: column;
}

.post-card .post-title {
    margin: 0 0 1rem;
    font-size: clamp(1.4rem, 1vw + 1rem, 1.8rem);
    color: var(--major);
}

.post-card .post-excerpt {
    color: var(--text);
    margin: 0 0 1.4rem;
    flex: 1;
}

.post-actions {
    margin-top: auto;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(16,24,40,.08);
}

/* Section Layouts */
.hero-full {
    min-height: 100svh;
    display: grid;
    align-items: center;
}

.hero-inner {
    padding-block: 12vh;
}

/* Scroll Snapping */
.snap {
    scroll-snap-align: start;
}