:root {
            --terra: #C2704E;
            --terra-light: #D4896B;
            --terra-pale: #F2E0D4;
            --terra-glow: rgba(194,112,78,0.10);
            --cream: #FDFAF6;
            --cream-warm: #F7F0E8;
            --sand: #E6DCD0;
            --stone: #B5A899;
            --bark: #7A6E62;
            --charcoal: #3D352D;
            --ink: #1C1815;
            --olive: #5A6B4A;
            --sage-glow: rgba(90,107,74,0.08);
            --slate: #6B7F96;
            --laravel: #FF2D20;
        }

        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        html { scroll-behavior: smooth; }

        body {
            font-family: 'Syne', sans-serif;
            background: var(--cream);
            color: var(--bark);
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
            min-height: 100vh;
        }

        ::selection { background: var(--terra); color: #fff; }
        a { text-decoration: none; color: inherit; }

        /* Grain */
        body::after {
            content: '';
            position: fixed; inset: 0;
            pointer-events: none; z-index: 9999;
            opacity: 0.028;
            background: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
        }

        /* ── Navigation ── */
        .topnav {
            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 200;
            padding: 0 clamp(1.5rem, 4vw, 3rem);
            height: 64px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: rgba(253,250,246,0.88);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border-bottom: 1px solid var(--sand);
        }
        .topnav-logo {
            font-family: 'Playfair Display', serif;
            font-weight: 900;
            font-size: 1.4rem;
            color: var(--ink);
            letter-spacing: -0.03em;
        }
        .topnav-logo i { font-style: italic; color: var(--terra); }
        .topnav-back {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.82rem;
            font-weight: 600;
            color: var(--bark);
            transition: color 0.3s;
        }
        .topnav-back:hover { color: var(--terra); }

        /* ── Page Layout ── */
        .page-wrap {
            max-width: 1100px;
            margin: 0 auto;
            padding: 0 clamp(1.5rem, 4vw, 3rem);
        }

        /* ── Hero — Asymmetric with giant watermark ── */
        .now-hero {
            padding-top: clamp(7rem, 14vw, 10rem);
            padding-bottom: clamp(2rem, 5vw, 3.5rem);
            position: relative;
            overflow: hidden;
        }

        .now-hero-watermark {
            position: absolute;
            top: 50%;
            right: -3%;
            transform: translateY(-55%);
            font-family: 'Playfair Display', serif;
            font-weight: 900;
            font-size: clamp(10rem, 28vw, 22rem);
            color: var(--sand);
            opacity: 0.35;
            line-height: 0.85;
            letter-spacing: -0.06em;
            pointer-events: none;
            user-select: none;
        }

        .now-hero-inner {
            position: relative;
            z-index: 2;
            max-width: 620px;
        }

        .now-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.35rem 0.9rem;
            border-radius: 100px;
            background: rgba(74,222,128,0.08);
            border: 1px solid rgba(74,222,128,0.2);
            font-size: 0.68rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: #15803d;
            margin-bottom: 1.8rem;
        }
        .now-badge .dot {
            width: 7px; height: 7px;
            border-radius: 50%;
            background: #22c55e;
            animation: blink 2s ease infinite;
        }
        @keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0.3;} }

        .now-title {
            font-family: 'Playfair Display', serif;
            font-weight: 900;
            font-size: clamp(3.5rem, 8vw, 6rem);
            color: var(--ink);
            line-height: 0.9;
            letter-spacing: -0.04em;
            margin-bottom: 0.5em;
        }
        .now-title em {
            font-style: italic;
            color: var(--terra);
        }

        .now-subtitle {
            font-size: 1.1rem;
            color: var(--bark);
            line-height: 1.7;
            max-width: 480px;
        }

        /* ── Divider ── */
        .divider {
            height: 1px;
            background: linear-gradient(to right, var(--sand), transparent);
            margin: 0 0 3rem;
        }

        /* ── Asymmetric Content Grid ── */
        .now-grid {
            display: grid;
            grid-template-columns: 1.15fr 0.85fr;
            gap: 1.2rem;
            padding-bottom: clamp(4rem, 10vw, 6rem);
        }

        .now-card {
            background: #fff;
            border: 1px solid var(--sand);
            border-radius: 14px;
            padding: clamp(1.5rem, 3vw, 2.2rem);
            position: relative;
            overflow: hidden;
            transition: all 0.4s cubic-bezier(0.22,1,0.36,1);
        }

        .now-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 3px;
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.4s ease;
        }

        .now-card:hover::before { transform: scaleX(1); }

        .now-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 16px 48px rgba(0,0,0,0.07);
            border-color: var(--terra-light);
        }

        /* Card accents */
        .now-card.accent-terra::before { background: var(--terra); }
        .now-card.accent-olive::before { background: var(--olive); }
        .now-card.accent-laravel::before { background: var(--laravel); }
        .now-card.accent-slate::before { background: var(--slate); }

        /* Wide card spans full width */
        .now-card.wide { grid-column: 1 / -1; }
        /* Tall card spans 2 rows */
        .now-card.tall { grid-row: span 2; }

        .card-icon-row {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-bottom: 1.2rem;
        }

        .card-icon {
            width: 48px; height: 48px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.3rem;
            flex-shrink: 0;
        }

        .card-icon.terra { background: var(--terra-glow); color: var(--terra); border: 1px solid rgba(194,112,78,0.15); }
        .card-icon.olive { background: var(--sage-glow); color: var(--olive); border: 1px solid rgba(90,107,74,0.15); }
        .card-icon.red { background: rgba(255,45,32,0.06); color: var(--laravel); border: 1px solid rgba(255,45,32,0.12); }
        .card-icon.slate { background: rgba(107,127,150,0.08); color: var(--slate); border: 1px solid rgba(107,127,150,0.12); }

        .card-label {
            font-size: 0.68rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--stone);
        }

        .now-card h3 {
            font-family: 'Playfair Display', serif;
            font-size: 1.35rem;
            font-weight: 700;
            color: var(--ink);
            margin-bottom: 0.5rem;
            line-height: 1.2;
        }

        .now-card p {
            font-size: 0.9rem;
            color: var(--bark);
            line-height: 1.7;
        }

        .now-card strong { color: var(--ink); font-weight: 700; }

        /* Progress bar */
        .progress-track {
            width: 100%;
            height: 6px;
            background: var(--cream-warm);
            border-radius: 100px;
            margin-top: 1.2rem;
            overflow: hidden;
        }
        .progress-fill {
            height: 100%;
            border-radius: 100px;
            background: linear-gradient(90deg, var(--laravel), #f97316);
            width: 75%;
            position: relative;
        }
        .progress-fill::after {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
            animation: shimmer 2s ease-in-out infinite;
        }
        @keyframes shimmer {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }

        .progress-label {
            display: flex;
            justify-content: space-between;
            font-family: 'IBM Plex Mono', monospace;
            font-size: 0.68rem;
            color: var(--stone);
            margin-top: 0.5rem;
        }

        /* Decorative number in card */
        .card-num {
            position: absolute;
            bottom: -0.3rem;
            right: 0.8rem;
            font-family: 'Playfair Display', serif;
            font-weight: 900;
            font-size: 5rem;
            color: var(--sand);
            opacity: 0.25;
            line-height: 1;
            pointer-events: none;
            user-select: none;
        }

        /* Offline mode — dual icon header */
        .dual-icons {
            display: flex;
            align-items: center;
            gap: 0.8rem;
            margin-bottom: 1.2rem;
        }
        .dual-icons .card-icon {
            width: 40px; height: 40px;
            border-radius: 10px;
            font-size: 1.1rem;
        }
        .dual-icons .separator {
            width: 24px;
            height: 1px;
            background: var(--sand);
        }

        /* Reading pill */
        .reading-pill {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            margin-top: 1rem;
            padding: 0.4rem 0.9rem;
            border-radius: 8px;
            background: var(--cream-warm);
            border: 1px solid var(--sand);
            font-size: 0.78rem;
            color: var(--charcoal);
            font-weight: 500;
        }
        .reading-pill i { color: var(--terra); }

        /* ── Footer ── */
        .now-footer {
            border-top: 1px solid var(--sand);
            padding: 2rem 0;
            text-align: center;
        }
        .now-footer p {
            font-size: 0.75rem;
            color: var(--stone);
        }
        .now-footer a {
            color: var(--terra);
            font-weight: 600;
            transition: color 0.3s;
        }
        .now-footer a:hover { color: var(--ink); }

        /* ── Animations ── */
        .rv {
            opacity: 0;
            transform: translateY(24px);
            transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1);
        }
        .rv.vis { opacity: 1; transform: translateY(0); }
        .d1 { transition-delay: 0.05s; }
        .d2 { transition-delay: 0.1s; }
        .d3 { transition-delay: 0.15s; }
        .d4 { transition-delay: 0.2s; }
        .d5 { transition-delay: 0.25s; }

        /* Hero entrance */
        .h-in {
            opacity: 0;
            transform: translateY(16px);
            animation: hUp 0.8s cubic-bezier(0.22,1,0.36,1) forwards;
        }
        .h1 { animation-delay: 0.1s; }
        .h2 { animation-delay: 0.2s; }
        .h3 { animation-delay: 0.35s; }
        .h4 { animation-delay: 0.5s; }
        @keyframes hUp { to { opacity:1; transform:translateY(0); } }

        /* ── Responsive ── */
        @media (max-width: 768px) {
            .now-grid {
                grid-template-columns: 1fr;
            }
            .now-card.tall { grid-row: span 1; }
            .now-hero-watermark { font-size: 8rem; right: -5%; opacity: 0.2; }
        }
