/* Norah Studio — the app's own tokens, lifted from Sources/StemLab/Design.swift so the two
   legal pages and the app look like one thing. Light and dark follow the system. */
:root {
    --background: #FFFFFF;
    --panel:      #F7F7F6;
    --inset:      #ECEBE7;
    --line:       #E6E6E3;
    --ink:        #17181A;
    --secondary:  #6F6E68;
    --accent:     #0079C4;
    --radius: 18px;
}
@media (prefers-color-scheme: dark) {
    :root {
        --background: #101114;
        --panel:      #191B1E;
        --inset:      #222428;
        --line:       #2A2C31;
        --ink:        #ECEAE5;
        --secondary:  #9D9C96;
        --accent:     #4FB8FF;
    }
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    padding: 0 16px 96px;
    background: var(--background);
    color: var(--ink);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.62;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.page { max-width: 660px; margin: 0 auto; }

/* --- masthead ------------------------------------------------------------------ */
header.masthead {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 40px 0 44px;
}
.masthead img { width: 34px; height: 34px; display: block; }
.masthead .name {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -0.2px;
    color: var(--ink);
    text-decoration: none;
}
.masthead .name:hover { color: var(--accent); }

/* --- headings ------------------------------------------------------------------ */
h1 {
    font-size: 38px;
    font-weight: 500;
    letter-spacing: -1.1px;
    line-height: 1.12;
    margin: 0 0 10px;
}
.dateline {
    margin: 0 0 40px;
    font-size: 13px;
    color: var(--secondary);
}
h2 {
    font-size: 19px;
    font-weight: 500;
    letter-spacing: -0.4px;
    margin: 44px 0 12px;
}
h2:first-of-type { margin-top: 0; }
/* The block of clauses Apple requires: many short headings in a row, so they sit tighter
   than an h2 and read as parts of one section rather than as sections of their own. */
h3 {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.1px;
    margin: 26px 0 6px;
}

p { margin: 0 0 16px; }

code {
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 0.86em;
    padding: 2px 5px;
    border-radius: 5px;
    background: var(--inset);
    word-break: break-all;
}
strong { font-weight: 600; }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

ul { margin: 0 0 16px; padding-left: 22px; }
li { margin-bottom: 8px; }

/* The one sentence each page exists to say. */
.lede {
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: -0.3px;
    margin: 0 0 32px;
}

/* --- plans table ---------------------------------------------------------------- */
.plans {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    margin: 0 0 20px;
}
.plan {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 16px;
    padding: 16px 20px;
    background: var(--panel);
}
.plan + .plan { border-top: 1px solid var(--line); }
.plan .title { font-weight: 500; }
.plan .note { color: var(--secondary); font-size: 14px; flex: 1 1 auto; }
.plan .price { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* --- identity list (legal notice) -------------------------------------------------- */
.identity {
    margin: 0 0 20px;
    padding: 18px 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--panel);
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 10px 22px;
}
.identity dt { color: var(--secondary); font-size: 14px; }
.identity dd { margin: 0; }
@media (max-width: 520px) {
    .identity { display: block; }
    .identity dt { margin-bottom: 1px; }
    .identity dd + dt { margin-top: 12px; }
}

/* --- home ----------------------------------------------------------------------- */
.hero { padding: 8px 0 8px; }
.hero h1 { font-size: 44px; letter-spacing: -1.4px; }
.hero p { font-size: 19px; line-height: 1.5; color: var(--secondary); max-width: 34em; }
.links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.links a {
    padding: 11px 18px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--panel);
    color: var(--ink);
    font-size: 14px;
}
.links a:hover { border-color: var(--secondary); text-decoration: none; }

/* --- footer --------------------------------------------------------------------- */
footer {
    margin-top: 64px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    color: var(--secondary);
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
}
footer a { color: var(--secondary); }
footer a:hover { color: var(--ink); text-decoration: none; }

@media (max-width: 520px) {
    /* Narrow enough that a row cannot hold title, note and price: stack all three the same
       way in every row, rather than letting each row wrap differently. */
    .plan { display: block; }
    .plan .note { display: block; }
    .plan .price { display: block; margin-top: 2px; }
    h1 { font-size: 30px; letter-spacing: -0.8px; }
    .hero h1 { font-size: 34px; }
    .lede, .hero p { font-size: 18px; }
}
