/* Runaway digital identity, 12 October 2026, pages 5-7. */
:root {
    --fu-font-body: 15px;
    --fu-font-page: 28px;
    --fu-font-article: 36px;
    --fu-font-section: 19px;
    --fu-font-action: 17px;
    --fu-space-1: 4px;
    --fu-space-2: 8px;
    --fu-space-3: 12px;
    --fu-space-4: 16px;
    --fu-space-5: 20px;
    --fu-space-6: 24px;
    --fu-space-8: 32px;
    --fu-control-height: 52px;
    --fu-action-height: 56px;
    --fu-control-radius: 12px;
    --fu-action-radius: 14px;
}

html { min-width: 0; }
.site-page :is(button, input, select, textarea) { font-family: inherit; }
.site-main :is(h1, h2, h3, p, label, a, button) { overflow-wrap: anywhere; }
.site-main :is(.fu-section, .fu-section-heading, .login-panel, .blog-heading, .blog-prose, .contact-details) { min-width: 0; }
.site-main :is(button, input, select, textarea) { box-sizing: border-box; max-width: 100%; }
.site-main :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--fu-ink); outline-offset: 4px; }

.fu-auth .login-panel h1,
.fu-blog .hero-banner__title,
.fu-contact .hero-banner__title,
.fu-content .hero-banner__title,
.fu-about h1 { font-size: var(--fu-font-page); line-height: 1.25; font-weight: 800; }

.fu-blog .blog-heading h1 { font-size: var(--fu-font-article); line-height: 1.2; }
.fu-blog .blog-heading--detail h1 { margin: 0 0 var(--fu-space-3); }
.fu-blog .blog-heading > .fu-article-byline { font-size: 14px; line-height: 1.5; font-weight: 600; color: var(--fu-ink); margin: 0 0 var(--fu-space-1); }
.fu-blog .blog-heading > .fu-article-date { font-size: 13px; line-height: 1.5; color: var(--fu-muted); margin: 0; }
.fu-blog .blog-heading > .fu-article-summary { font-size: var(--fu-font-body); line-height: 1.6; color: var(--fu-muted); margin: var(--fu-space-4) 0 0; }
.fu-blog .blog-prose { font-size: var(--fu-font-body); line-height: 1.6; margin-block: var(--fu-space-8); }
.fu-blog .blog-prose :is(h2, h3) { margin: var(--fu-space-8) 0 var(--fu-space-4); line-height: 1.35; }
.fu-blog .blog-prose h2 { font-size: 24px; }
.fu-blog .blog-prose h3 { font-size: var(--fu-font-section); }
.fu-blog .blog-prose :is(p, ul, ol) { margin-block: 0 var(--fu-space-4); }
.fu-contact :is(.contact-details, .contact-form-panel, .contact-map) h2,
.fu-blog .blog-related > h2 { font-size: var(--fu-font-section); }

.fu-button { border-radius: var(--fu-control-radius); white-space: normal; text-align: center; }
.fu-button-primary:not(.fu-button-small),
.fu-auth .login-submit,
.fu-contact .contact-form__footer button {
    min-height: var(--fu-action-height);
    height: auto;
    border-radius: var(--fu-action-radius);
    font-size: var(--fu-font-action);
    font-weight: 700;
    line-height: 1.3;
    padding: var(--fu-space-3) var(--fu-space-5);
    white-space: normal;
}
.fu-auth .login-field input:not([type=checkbox]),
.fu-contact .contact-field :is(input, textarea) {
    min-height: var(--fu-control-height);
    border-radius: var(--fu-control-radius);
    font-size: var(--fu-font-body);
    padding: var(--fu-space-3) var(--fu-space-4);
}
.fu-auth { min-height: 0; padding-block: var(--fu-space-8) 48px; }
.fu-auth .login-card,
.fu-auth .login-card__form { gap: var(--fu-space-4); }
.fu-auth .login-card { margin-top: var(--fu-space-6); }
.fu-auth .fu-auth-intro,
.fu-auth .login-panel__inner > p:not(.login-panel__eyebrow) { margin-bottom: var(--fu-space-6); }
.fu-contact .contact-form__grid { gap: var(--fu-space-4); }
.fu-home { gap: var(--fu-space-8); padding-bottom: 48px; }
.fu-article { min-height: 0; gap: var(--fu-space-6); }
.fu-article-meta { margin-top: var(--fu-space-2); }

@media (max-width: 767px) {
    :root { --fu-font-article: 28px; }
    .fu-blog .blog-prose :is(h2, h3) { margin-top: var(--fu-space-6); }
    .fu-auth { padding-block: var(--fu-space-6) var(--fu-space-8); }
    .fu-auth .login-visual { display: none; }
    .fu-auth .login-options { flex-direction: row; align-items: center; gap: 8px; }
    .fu-auth .login-options > a,
    .fu-auth .login-remember { min-height: 44px; display: inline-flex; align-items: center; }
    .fu-home { gap: var(--fu-space-8); }
}
