/* Shared styles for the public "new me" pages (support, data deletion, ...). */

:root {
    --ink: #101018;
    --ink-soft: #4a4a5e;
    --surface: rgba(255, 255, 255, 0.72);
    --surface-border: rgba(255, 255, 255, 0.85);
    --accent: #6f6ce8;
    --accent-ink: #f4f3ff;
    --shadow: 0 32px 80px -32px rgba(30, 28, 70, 0.45);
    /* brand gradient stops, taken from the logo artwork */
    --brand-orange: #efa96a;
    --brand-lime: #d9de6c;
    --brand-green: #c2dc9c;
    --brand-periwinkle: #b4b2f2;
    --brand-lilac: #c9c6f8;
    --page-bg: #efeef7;
}

@media (prefers-color-scheme: dark) {
    :root {
        --ink: #f2f1fa;
        --ink-soft: #b0aec9;
        --surface: rgba(20, 19, 34, 0.66);
        --surface-border: rgba(255, 255, 255, 0.12);
        --accent: #a8a5ff;
        --accent-ink: #12111e;
        --shadow: 0 32px 80px -32px rgba(0, 0, 0, 0.75);
        --page-bg: #0c0b14;
    }
}

* { box-sizing: border-box; }

html, body {
    height: 100%;
}

body {
    margin: 0;
    padding: 32px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--page-bg);
    color: var(--ink);
    font-family: "Poppins", "Futura", "Avenir Next", -apple-system, BlinkMacSystemFont,
                 "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

/* Soft mesh built from the logo palette. */
.backdrop {
    position: fixed;
    inset: -20vmax;
    z-index: -1;
    background:
        radial-gradient(38vmax 38vmax at 12% 18%, var(--brand-orange) 0%, transparent 62%),
        radial-gradient(42vmax 42vmax at 8% 72%, var(--brand-lime) 0%, transparent 62%),
        radial-gradient(40vmax 40vmax at 62% 96%, var(--brand-green) 0%, transparent 60%),
        radial-gradient(46vmax 46vmax at 92% 74%, var(--brand-periwinkle) 0%, transparent 64%),
        radial-gradient(40vmax 40vmax at 82% 8%, var(--brand-lilac) 0%, transparent 62%);
    filter: blur(28px) saturate(112%);
    animation: drift 26s ease-in-out infinite alternate;
}

@media (prefers-color-scheme: dark) {
    .backdrop { opacity: 0.42; filter: blur(36px) saturate(90%); }
}

@keyframes drift {
    from { transform: translate3d(-1.5%, -1%, 0) scale(1); }
    to   { transform: translate3d(2%, 1.5%, 0) scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
    .backdrop { animation: none; }
}

.card {
    position: relative;
    width: min(560px, 100%);
    padding: clamp(36px, 6vw, 60px) clamp(24px, 5vw, 56px) clamp(32px, 5vw, 48px);
    border-radius: 32px;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    box-shadow: var(--shadow);
    backdrop-filter: blur(28px) saturate(140%);
    -webkit-backdrop-filter: blur(28px) saturate(140%);
    text-align: center;
}

.card--wide {
    width: min(660px, 100%);
}

.logo {
    display: block;
    width: 112px;
    height: 112px;
    margin: 0 auto 28px;
    border-radius: 0;
    box-shadow: 0 18px 40px -18px rgba(16, 16, 24, 0.9);
}

h1 {
    margin: 0 0 16px;
    font-size: clamp(32px, 6vw, 44px);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

/* Heading with no lede under it, so it carries the lede's bottom spacing. */
h1.solo {
    margin-bottom: 32px;
}

.lede {
    margin: 0 auto 32px;
    max-width: 42ch;
    font-size: clamp(15px, 2.4vw, 17px);
    line-height: 1.65;
    color: var(--ink-soft);
}

.mail {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    padding: 16px 28px;
    border-radius: 999px;
    background: var(--accent);
    color: var(--accent-ink);
    font-size: clamp(15px, 2.6vw, 18px);
    font-weight: 600;
    letter-spacing: -0.01em;
    text-decoration: none;
    word-break: break-all;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    box-shadow: 0 18px 36px -18px rgba(111, 108, 232, 0.9);
}

.mail:hover,
.mail:focus-visible {
    transform: translateY(-2px);
    filter: brightness(1.06);
    box-shadow: 0 24px 44px -18px rgba(111, 108, 232, 0.95);
}

.mail svg {
    flex: none;
    width: 20px;
    height: 20px;
}

.copy {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 18px auto 0;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--ink-soft);
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.copy:hover,
.copy:focus-visible {
    color: var(--ink);
    border-color: var(--surface-border);
    background: rgba(255, 255, 255, 0.35);
}

@media (prefers-color-scheme: dark) {
    .copy:hover,
    .copy:focus-visible { background: rgba(255, 255, 255, 0.06); }
}

/* Numbered instructions with the step number in a brand-coloured chip. */
.steps {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: step;
    text-align: left;
}

.steps li {
    position: relative;
    counter-increment: step;
    padding: 0 0 0 52px;
    min-height: 34px;
    font-size: clamp(15px, 2.4vw, 17px);
    line-height: 1.6;
}

.steps li + li {
    margin-top: 20px;
}

.steps li::before {
    content: counter(step);
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: var(--accent);
    color: var(--accent-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    box-shadow: 0 10px 22px -12px rgba(111, 108, 232, 0.95);
}

.steps b {
    font-weight: 600;
    color: var(--ink);
}

.icon-inline {
    display: inline-block;
    width: 1.05em;
    height: 1.05em;
    vertical-align: -0.16em;
}

/* Store buttons on the "get the app" chooser page. */
.stores {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

.store-btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    flex: 1 1 220px;
    max-width: 100%;
    padding: 15px 26px;
    border-radius: 20px;
    background: var(--ink);
    color: var(--page-bg);
    text-decoration: none;
    text-align: left;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    box-shadow: 0 18px 38px -20px rgba(16, 16, 24, 0.95);
}

.store-btn:hover,
.store-btn:focus-visible {
    transform: translateY(-2px);
    filter: brightness(1.12);
    box-shadow: 0 26px 46px -20px rgba(16, 16, 24, 0.95);
}

.store-btn svg {
    flex: none;
    width: 26px;
    height: 26px;
    fill: currentColor;
}

.store-btn span {
    display: block;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.7;
}

.store-btn strong {
    display: block;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.note {
    margin: 32px 0 0;
    padding: 16px 20px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid var(--surface-border);
    font-size: 14px;
    line-height: 1.6;
    color: var(--ink-soft);
    text-align: left;
}

@media (prefers-color-scheme: dark) {
    .note { background: rgba(255, 255, 255, 0.05); }
}

a.link {
    color: var(--accent);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.18s ease;
}

a.link:hover,
a.link:focus-visible {
    border-bottom-color: currentColor;
}

:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.divider {
    width: 56px;
    height: 1px;
    margin: 36px auto 24px;
    border: 0;
    background: currentColor;
    color: var(--ink-soft);
    opacity: 0.3;
}

.brand {
    margin: 0;
    font-size: 13px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ink-soft);
    opacity: 0.75;
    text-align: center;
}
