:root {
    --primary-blue: #314972;
    --primary-hover: #3d5d92;
    --text-dark: #1f2937;
    --text-body: #4b5563;
    --text-light: #9ca3af;
    --text-lighter: #e1e7f1;
    --bg-light: #f9fafb;
    --bg-card: #ffffff;
    --border-light: #e5e7eb;
    --btn-skip: #314972;
    --btn-skip-hover: #3d5d92;
}

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

body {
    font-family: 'Roboto', Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.4;
    background-color: var(--bg-light);
    color: var(--text-body);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Header Styles */
header {
    background-color: var(--primary-blue);
    color: white;
    position: sticky;
    top: 0;
    z-index: 50;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.15rem 0.15rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 48px;
}

.header-title {
    font-size: 1.6rem;
    font-weight: 400;
    margin-left: 1rem;
}

.header-title::before {
    background-image: url("../../../../diffy.png");
    --icon-width: 1em;
    --icon-height: 1em;
    background-size: 1em 1em;
    background-repeat: no-repeat;
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: clamp(0px, 1em, 8px);
    margin-bottom: -4px;
    flex-shrink: 0;
}

.skip-btn {
    background-color: var(--btn-skip);
    color: var(--text-lighter);
    text-decoration: none;
    padding: 0.5rem 1.25rem;
    border-radius: 0.5rem;
    font-size: 0.9rem;
    transition: background-color 0.2s ease, transform 0.1s ease;
    margin-left: auto;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 500;
}

.skip-btn:hover {
    background-color: var(--btn-skip-hover);
    transform: translateY(-1px);
}

/* Main Layout */
main {
    flex: 1;
    padding-bottom: 4rem;
}

.hero-section {
    max-width: 900px;
    margin: 4rem auto 3rem;
    padding: 0 1.5rem;
    text-align: center;
}

.hero-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 2rem;
}

.hero-image {
    width: 160px;
    height: auto;
}

.hero-title {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--text-dark);
    line-height: 1.1;
    text-align: left;
}

.hero-intro-text {
    font-size: 1.125rem;
    color: var(--text-body);
    max-width: 800px;
    margin: 0 auto 2.5rem;
    text-align: left;
}

.hero-intro-text strong {
    color: var(--text-dark);
}

.install-btn {
    display: inline-block;
    background-color: var(--primary-blue);
    color: white;
    text-decoration: none;
    padding: 0.875rem 2.5rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.125rem;
    box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.4);
    transition: all 0.2s ease;
}

.install-btn:hover {
    background-color: var(--primary-hover);
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.4);
    transform: translateY(-2px);
}

.features-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
}

.feature-card {
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: 1rem;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.feature-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 1rem;
}

.feature-text {
    flex: 1;
    margin-bottom: 1.5rem;
    font-size: 0.9375rem;
}

.feature-actions {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.icon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: #f3f4f6;
    color: var(--text-body);
    transition: all 0.2s ease;
    text-decoration: none;
}

.icon-btn svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

/* Action Icon Hover Colors */
.icon-btn.youtube:hover { background-color: #ff0000; color: white; }
.icon-btn.google:hover { background-color: #4285F4; color: white; }
.icon-btn.x-twitter:hover { background-color: #000000; color: white; }
.icon-btn.mastodon:hover { background-color: #6364FF; color: white; }
.icon-btn.bluesky:hover { background-color: #6364FF; color: white; }
.icon-btn.discord:hover { background-color: #5865F2; color: white; }

@media (min-width: 768px) {
    .features-section {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .hero-header {
        flex-direction: column;
        text-align: center;
        gap: 1.5rem;
    }
    .hero-title {
        text-align: center;
        font-size: 2.5rem;
    }
    .hero-intro-text {
        text-align: center;
    }
}

/* Footer Styles */
footer {
    background-color: var(--bg-card);
    border-top: 1px solid var(--border-light);
    padding: 2rem 1.5rem;
    text-align: center;
    margin-top: auto;
}

.footer-text {
    color: var(--text-light);
    font-size: 0.875rem;
}