/* ==========================================
   Snap it. Keep it. – snapitkeepit.com
   ==========================================
   Clean, modern, minimal design
   Blue accent, plenty of whitespace
   ========================================== */

/* Inter – locally hosted (latin-ext + latin, variable 400–600) */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../assets/fonts/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../assets/fonts/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Reset & Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Color Palette */
    --primary:       #2563EB;
    --primary-hover: #1D4ED8;
    --primary-light: #EFF6FF;
    --primary-muted: #DBEAFE;
    --bg:            #FFFFFF;
    --bg-alt:        #F8FAFC;
    --bg-darker:     #F1F5F9;
    --dark:          #0F172A;
    --medium:        #475569;
    --light:         #94A3B8;
    --border:        #E2E8F0;
    --white:         #FFFFFF;

    /* Typography */
    --font-main:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;

    /* Spacing */
    --space-xs:  0.5rem;
    --space-sm:  1rem;
    --space-md:  1.5rem;
    --space-lg:  2.5rem;
    --space-xl:  3.5rem;
    --space-xxl: 5rem;

    /* Container */
    --container-max: 1100px;
}

/* Typography */
body {
    font-family: var(--font-main);
    font-size: 18px;
    line-height: 1.7;
    color: var(--dark);
    background-color: var(--bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.2;
    color: var(--dark);
}

h1 { font-size: 3.5rem; font-weight: 500; letter-spacing: -0.02em; margin-bottom: var(--space-sm); }
h2 { font-size: 2.2rem; margin-bottom: var(--space-md); }
h3 { font-size: 1.4rem; margin-bottom: var(--space-xs); }

p { margin-bottom: var(--space-sm); }

a { color: var(--primary); }

/* Layout */
.container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-md);
}

/* ==========================================
   Site Navigation
   ========================================== */

.site-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border);
}

.site-nav .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 52px;
}

.site-nav-logo {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--dark);
    text-decoration: none;
    letter-spacing: -0.01em;
    transition: color 0.2s ease;
}

.site-nav-logo:hover { color: var(--primary); }

.site-nav-links {
    list-style: none;
    display: flex;
    gap: var(--space-md);
    margin: 0;
    padding: 0;
}

.site-nav-links a {
    color: var(--medium);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.2s ease;
}

.site-nav-links a:hover,
.site-nav-links a[aria-current="page"] {
    color: var(--primary);
}

/* ==========================================
   Hero – Home Hub
   ========================================== */

.hub-hero {
    background: linear-gradient(160deg, var(--bg-alt) 0%, var(--bg) 100%);
    padding: var(--space-xxl) 0 var(--space-xl) 0;
    text-align: center;
}

.hub-hero-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: var(--space-sm);
}

.hub-hero h1 {
    font-size: 3rem;
    margin-bottom: var(--space-sm);
}

.hub-hero .subtitle {
    font-size: 1.2rem;
    color: var(--medium);
    font-weight: 300;
    max-width: 520px;
    margin: 0 auto var(--space-lg) auto;
}

.hub-hero-cta {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.75em 1.75em;
    border-radius: 8px;
    transition: background 0.2s ease, transform 0.2s ease;
}

.hub-hero-cta:hover {
    background: var(--primary-hover);
    color: var(--white);
    transform: translateY(-2px);
}

/* ==========================================
   SnapKeep Animation Section
   ========================================== */

.snapkeep-section {
    padding: var(--space-xl) 0;
    background: var(--dark);
    text-align: center;
    overflow: hidden;
}

/* ==========================================
   Tools Grid
   ========================================== */

.hub-tools {
    padding: var(--space-xl) 0 var(--space-xxl) 0;
    background: var(--bg);
}

.hub-tools-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--light);
    text-align: center;
    margin-bottom: var(--space-lg);
}

.tools-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-md);
    max-width: 900px;
    margin: 0 auto;
}

.tool-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: var(--space-lg) var(--space-md);
    text-align: center;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.tool-card:not(.placeholder):hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(37, 99, 235, 0.1);
    border-color: var(--primary-muted);
}

.tool-card.placeholder {
    opacity: 0.45;
    cursor: default;
}

.tool-card-icon {
    font-size: 2.5rem;
    margin-bottom: var(--space-sm);
    line-height: 1;
}

.tool-card h3 {
    font-size: 1.2rem;
    margin-bottom: var(--space-xs);
    color: var(--dark);
}

.tool-card .tool-tagline {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--primary);
    margin-bottom: var(--space-xs);
}

.tool-card p {
    color: var(--medium);
    font-size: 0.95rem;
    line-height: 1.6;
    flex: 1;
    margin-bottom: 0;
}

.tool-card-status {
    display: inline-block;
    margin-top: var(--space-sm);
    padding: 0.25em 0.9em;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tool-card-status.live {
    background: var(--primary-light);
    color: var(--primary);
}

.tool-card-status.soon {
    background: var(--bg-darker);
    color: var(--light);
}

/* ==========================================
   Brand Section
   ========================================== */

.brand-section {
    padding: var(--space-xl) 0;
    background: var(--bg-alt);
    text-align: center;
}

.brand-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: var(--space-lg);
}

.brand-pillars {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md);
    max-width: 600px;
    margin: 0 auto var(--space-lg) auto;
}

.brand-pillar {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: var(--space-md);
}

.brand-pillar-title {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--primary);
    margin-bottom: var(--space-xs);
}

.brand-pillar-desc {
    font-size: 0.95rem;
    color: var(--medium);
    margin: 0;
}

.brand-text {
    font-size: 0.95rem;
    color: var(--medium);
    font-weight: 300;
    font-style: italic;
    line-height: 2;
    max-width: 420px;
    margin: 0 auto;
    opacity: 0.85;
}

/* ==========================================
   Hero – Sub-pages (e.g. Memories)
   ========================================== */

.hero {
    background: linear-gradient(160deg, var(--primary-light) 0%, var(--bg) 100%);
    padding: var(--space-xl) 0;
    min-height: 60vh;
    display: flex;
    align-items: center;
}

.hero-content {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--space-lg);
    align-items: center;
}

.hero-text { animation: fadeInUp 0.8s ease-out; }

.hero-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: var(--space-sm);
}

.subtitle {
    font-size: 1.4rem;
    color: var(--medium);
    font-weight: 300;
    line-height: 1.7;
    margin-bottom: var(--space-md);
    max-width: 580px;
}

.cta-group {
    display: flex;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-top: var(--space-md);
}

.cta-btn {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.75em 1.75em;
    border-radius: 8px;
    transition: background 0.2s ease, transform 0.2s ease;
}

.cta-btn:hover {
    background: var(--primary-hover);
    color: var(--white);
    transform: translateY(-2px);
}

.cta-btn-secondary {
    display: inline-block;
    background: transparent;
    color: var(--primary);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.75em 1.75em;
    border-radius: 8px;
    border: 1px solid var(--primary-muted);
    transition: background 0.2s ease, transform 0.2s ease;
}

.cta-btn-secondary:hover {
    background: var(--primary-light);
    transform: translateY(-2px);
}

.google-play-button {
    display: inline-block;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.google-play-button:hover {
    transform: translateY(-3px);
    opacity: 0.9;
}

.play-badge { height: 56px; width: auto; }

.hero-image {
    display: flex;
    justify-content: center;
    align-items: center;
    animation: fadeIn 1s ease-out;
}

.app-preview {
    max-width: 85%;
    height: auto;
    filter: drop-shadow(0 20px 60px rgba(37, 99, 235, 0.12));
    border-radius: 20px;
}

/* ==========================================
   Description / Lead
   ========================================== */

.description {
    padding: var(--space-lg) 0;
    background: var(--bg);
}

.description-content {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.lead {
    font-size: 1.25rem;
    line-height: 1.85;
    color: var(--medium);
    font-weight: 300;
}

/* ==========================================
   Features Grid
   ========================================== */

.features {
    padding: var(--space-xl) 0;
    background: var(--bg-alt);
}

.section-headline {
    text-align: center;
    margin-bottom: var(--space-lg);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-md);
}

.feature {
    background: var(--bg);
    padding: var(--space-md) var(--space-lg);
    border-radius: 14px;
    text-align: center;
    border: 1px solid var(--border);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(37, 99, 235, 0.08);
}

.feature-icon {
    font-size: 2rem;
    margin-bottom: var(--space-sm);
    line-height: 1;
}

.feature h3 { color: var(--dark); font-size: 1.2rem; }

.feature p {
    color: var(--medium);
    font-size: 0.95rem;
    line-height: 1.65;
    margin: 0;
}

/* ==========================================
   Info Sections (Flavor, PWA, etc.)
   ========================================== */

.info-section {
    padding: var(--space-lg) 0;
    background: var(--bg);
    border-top: 1px solid var(--border);
}

.info-section-inner {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
}

.info-section h2 {
    font-size: 1.6rem;
    margin-bottom: var(--space-xs);
}

.info-section p {
    color: var(--medium);
    font-size: 1.05rem;
    line-height: 1.8;
}

.info-section .cta-group {
    justify-content: center;
    margin-top: var(--space-md);
}

/* ==========================================
   Story / About Sections
   ========================================== */

.story-section {
    padding: var(--space-lg) 0;
    text-align: center;
}

.story-section .container { max-width: 520px; }

.story-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: var(--space-sm);
}

.story-text {
    font-size: 0.95rem;
    color: var(--medium);
    font-weight: 300;
    line-height: 2;
    font-style: italic;
    opacity: 0.85;
    margin: 0;
}

/* ==========================================
   Footer
   ========================================== */

.footer {
    background: var(--bg);
    padding: var(--space-lg) 0 var(--space-md) 0;
    text-align: center;
    border-top: 1px solid var(--border);
}

.footer-tagline {
    font-size: 1rem;
    color: var(--primary);
    margin-bottom: var(--space-sm);
    font-weight: 500;
}

.footer-links {
    margin-bottom: var(--space-sm);
}

.footer-links a {
    color: var(--medium);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.2s ease;
}

.footer-links a:hover { color: var(--primary); }

.separator {
    margin: 0 var(--space-sm);
    color: var(--border);
}

.footer-copyright {
    font-size: 0.85rem;
    color: var(--light);
    margin: 0;
}

.footer-copyright a {
    color: var(--light);
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-copyright a:hover { color: var(--medium); }

/* ==========================================
   Extras Hub
   ========================================== */

.extras-hub {
    padding: var(--space-xl) 0 var(--space-xxl) 0;
    background: var(--bg);
}

.extras-hub h1 {
    margin-bottom: var(--space-xs);
}

.extras-hub .subtitle {
    font-size: 1.1rem;
    color: var(--medium);
    margin-bottom: var(--space-xl);
}

.category-section {
    margin-bottom: var(--space-xl);
}

.category-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--light);
    margin-bottom: var(--space-md);
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-md);
}

.card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: var(--space-lg) var(--space-md);
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(37, 99, 235, 0.08);
    border-color: var(--primary-muted);
}

.card-icon {
    font-size: 2.2rem;
    margin-bottom: var(--space-sm);
    line-height: 1;
}

.card h3 { font-size: 1.2rem; color: var(--dark); margin-bottom: var(--space-xs); }
.card p  { color: var(--medium); font-size: 0.95rem; line-height: 1.6; flex: 1; margin-bottom: 0; }

.card-cta {
    display: inline-block;
    margin-top: var(--space-sm);
    color: var(--primary);
    font-size: 0.9rem;
    font-weight: 500;
}

.back-link {
    display: inline-block;
    margin-top: var(--space-lg);
    color: var(--medium);
    text-decoration: none;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}

.back-link:hover { color: var(--primary); }

/* ==========================================
   Trivia / Partner pages
   ========================================== */

.trivia-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-xxl) var(--space-sm);
}

.trivia-inner {
    max-width: 540px;
    text-align: center;
}

.trivia-icon {
    font-size: 4rem;
    margin-bottom: var(--space-md);
    line-height: 1;
}

.trivia-inner h1 {
    font-size: 2.2rem;
    margin-bottom: var(--space-sm);
}

.trivia-text {
    color: var(--medium);
    font-size: 1.05rem;
    line-height: 1.85;
    margin-bottom: var(--space-md);
}

.trivia-features {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-xs);
    margin-bottom: var(--space-md);
}

.trivia-features li {
    background: var(--primary-light);
    color: var(--primary);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.3em 0.9em;
    border-radius: 20px;
}

.trivia-cta-btn {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.75em 2em;
    border-radius: 8px;
    transition: background 0.2s ease, transform 0.2s ease;
}

.trivia-cta-btn:hover {
    background: var(--primary-hover);
    color: var(--white);
    transform: translateY(-2px);
}

/* ==========================================
   Animations
   ========================================== */

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ==========================================
   Responsive
   ========================================== */

@media (max-width: 968px) {
    :root {
        --space-xl:  2.5rem;
        --space-xxl: 3.5rem;
    }

    h1 { font-size: 2.6rem; }

    .hero-content {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
    }

    .hero-image { order: -1; }
    .hero-text  { text-align: center; }

    .subtitle { margin-left: auto; margin-right: auto; }

    .brand-pillars { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    :root {
        --space-lg:  2rem;
        --space-xl:  2rem;
        --space-xxl: 2.5rem;
    }

    body { font-size: 16px; }
    h1   { font-size: 2.1rem; }

    .subtitle { font-size: 1.05rem; }
    .lead     { font-size: 1.05rem; }

    .hero {
        padding: var(--space-md) 0;
        min-height: auto;
    }

    .play-badge { height: 50px; }

    .features-grid { grid-template-columns: 1fr; }

    .tools-grid    { grid-template-columns: 1fr; }

    .cards         { grid-template-columns: 1fr; }

    .brand-pillars { grid-template-columns: 1fr; }

    .hub-hero h1   { font-size: 2.1rem; }

    .cta-group { flex-direction: column; align-items: center; }
}
