/* Homepage composition — a quiet research & writing index (DESIGN.md).
   Shared tokens come from style.css; this file only composes the homepage. */

body.home {
    --page-width: 1120px;
}

/* ── identity masthead ─────────────────────────────────────────────── */

.home-masthead {
    padding-block: clamp(28px, 4.6vw, 60px) clamp(24px, 3.8vw, 48px);
    border-block-end: 1px solid var(--border);
}

.section-label {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--accent-strong);
    font-family: var(--mono-font);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.home-masthead h1 {
    max-inline-size: 780px;
    margin: 14px 0 16px;
    font-family: var(--serif-font);
    font-size: clamp(2.75rem, 7vw, 5rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1;
}

.home-intro {
    max-inline-size: 560px;
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--accent-strong);
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
}

.text-link:hover {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.text-link span,
.project-meta a span {
    transition: transform 160ms ease;
}

.text-link:hover span,
.project-meta a:hover span {
    transform: translateX(3px);
}

[dir="rtl"] .text-link:hover span,
[dir="rtl"] .project-meta a:hover span {
    transform: translateX(-3px);
}

/* ── sections ──────────────────────────────────────────────────────── */

.home-section {
    padding-block: clamp(20px, 3vw, 34px);
    border-block-end: 1px solid var(--border);
}

.home-section .section-label {
    margin-block-end: 14px;
}

/* projects: index rows, not cards */
.project-grid {
    display: block;
}

.project-record {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 32px;
    align-items: start;
    padding-block: 17px;
    border-block-end: 1px solid var(--border-soft);
}

.project-record:last-child {
    border-block-end: 0;
}

.project-record h3 {
    margin: 0 0 6px;
    font-family: var(--serif-font);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1.25;
}

.project-record p {
    max-inline-size: 720px;
    margin: 0;
    color: var(--muted);
    font-size: 0.92rem;
    line-height: 1.68;
}

.project-meta {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-block-start: 10px;
    color: var(--muted);
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 500;
}

.project-meta a {
    display: inline-flex;
    gap: 8px;
    color: var(--accent-strong);
    text-decoration: none;
}

.project-meta a:hover {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.project-index {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

/* notes: editorial rows */
.notes-table {
    display: block;
}

.note-row {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr) auto 22px;
    column-gap: 24px;
    align-items: baseline;
    padding-block: 12px;
    border-block-end: 1px solid var(--border-soft);
    color: var(--muted);
    text-decoration: none;
}

.note-row:last-child {
    border-block-end: 0;
}

.note-row:hover {
    background: var(--surface);
}

.note-row time {
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
    line-height: 1.5;
}

.note-title {
    min-inline-size: 0;
    color: var(--heading);
    font-family: var(--serif-font);
    font-size: 1.1rem;
    line-height: 1.35;
}

.note-row:hover .note-title {
    color: var(--accent);
}

.note-tags {
    justify-self: start;
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 11px;
    line-height: 1.5;
    white-space: nowrap;
}

.note-arrow {
    justify-self: end;
    color: var(--accent-strong);
    font-size: 15px;
    transition: transform 160ms ease;
}

.note-row:hover .note-arrow {
    transform: translateX(3px);
}

[dir="rtl"] .note-row:hover .note-arrow {
    transform: translateX(-3px);
}

.notes-all {
    margin-block-start: 14px;
}

/* ── Arabic parity ─────────────────────────────────────────────────── */

[dir="rtl"] .home-masthead h1 {
    max-inline-size: 720px;
    font-family: var(--arabic-serif);
    font-size: clamp(2.5rem, 6.4vw, 4.5rem);
    letter-spacing: 0;
    line-height: 1.14;
}

[dir="rtl"] .home-masthead h1[lang="en"] {
    font-family: var(--serif-font);
    font-size: clamp(2.75rem, 7vw, 5rem);
    letter-spacing: -0.03em;
    line-height: 1;
    direction: ltr;
    text-align: start;
}

[dir="rtl"] .section-label[lang="en"] {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: end;
}

[dir="rtl"] .text-link[lang="en"],
[dir="rtl"] .project-meta a[lang="en"],
[dir="rtl"] .note-tags[lang="en"] {
    direction: ltr;
    unicode-bidi: isolate;
}

[dir="rtl"] .home-intro {
    line-height: 1.8;
}

[dir="rtl"] .project-record h3 {
    font-family: var(--arabic-serif);
    font-size: 1.4rem;
}

[dir="rtl"] .project-record p {
    font-family: var(--arabic-font);
    font-size: 0.95rem;
    line-height: 1.75;
}

[dir="rtl"] .note-row {
    grid-template-columns: 118px minmax(0, 1fr) auto 22px;
    column-gap: 18px;
}

[dir="rtl"] .note-row time,
[dir="rtl"] .project-index,
[dir="rtl"] .site-footer {
    direction: ltr;
    font-family: var(--mono-font);
}

[dir="rtl"] .site-nav {
    direction: ltr;
}

[dir="rtl"] .note-title {
    font-family: var(--arabic-serif);
    font-size: 1.15rem;
    line-height: 1.5;
}

/* ── responsive ────────────────────────────────────────────────────── */

@media (max-width: 760px) {
    .home-masthead {
        padding-block: 28px 24px;
    }

    .home-masthead h1 {
        margin-block: 12px 14px;
        font-size: clamp(2.35rem, 11vw, 3.2rem);
        line-height: 1;
    }

    .home-intro {
        font-size: 0.95rem;
        line-height: 1.65;
    }

    .section-label {
        font-size: 11.5px;
    }

    .text-link {
        font-size: 12px;
    }

    .home-section {
        padding-block: 26px 22px;
    }

    .project-record {
        display: block;
        padding-block: 17px;
    }

    .project-record h3 {
        font-size: 1.2rem;
    }

    .project-meta {
        margin-block-start: 8px;
        font-size: 12px;
    }

    .project-index {
        display: none;
    }

    .note-row {
        grid-template-columns: minmax(0, 1fr) 18px;
        row-gap: 3px;
        padding-block: 13px;
    }

    .note-row time {
        grid-column: 1 / -1;
        font-size: 10px;
    }

    .note-title {
        font-size: 1.02rem;
    }

    .note-tags {
        display: none;
    }

    .note-arrow {
        font-size: 13px;
    }

    .notes-all {
        margin-block-start: 14px;
    }

    [dir="rtl"] .home-masthead h1 {
        font-size: clamp(2.15rem, 10.5vw, 3rem);
        line-height: 1.15;
    }

    [dir="rtl"] .home-masthead h1[lang="en"] {
        font-size: clamp(2.35rem, 11vw, 3.2rem);
        line-height: 1;
    }

    [dir="rtl"] .note-row {
        grid-template-columns: minmax(0, 1fr) 18px;
        column-gap: 10px;
    }

    [dir="rtl"] .project-record h3 {
        font-size: 1.25rem;
    }

    [dir="rtl"] .project-record p {
        font-size: 0.9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home *,
    .home *::before,
    .home *::after {
        transition-duration: 0.01ms !important;
    }
}
