diff --git a/src/app.css b/src/app.css index 0f38c49d..00fa408d 100644 --- a/src/app.css +++ b/src/app.css @@ -233,12 +233,14 @@ html.trusted_access #appShell { font-display: swap; } */ -/* modern theme */ -@font-face { +/* modern theme — @font-face commented out 2026-05-19: Quicksand is declared but no + CSS rule applies font-family:'Quicksand' to any element, so the browser never + fetches this file. Re-enable if a theme or component starts using it. */ +/* @font-face { font-family: 'Quicksand'; src: url('/fonts/Quicksand.ttf'); font-display: swap; -} +} */ /* :root [data-theme='modern'] { */ /* --theme-rounded-base: 20px; diff --git a/src/app.html b/src/app.html index 0a74c7c6..e4f0ce03 100644 --- a/src/app.html +++ b/src/app.html @@ -53,6 +53,8 @@ + + + + %sveltekit.head% +
%sveltekit.body%
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index f853289b..b31861d3 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -4,7 +4,7 @@ let log_lvl: number = 0; // *** Import Svelte specific -import { untrack } from 'svelte'; +import { onMount, untrack } from 'svelte'; import { goto, invalidateAll } from '$app/navigation'; import '../app.css'; @@ -53,6 +53,12 @@ interface Props { let { data, children }: Props = $props(); +// Remove the pre-JS loader from app.html as soon as Svelte mounts. +// The existing is_hydrating overlay takes over from here. +onMount(() => { + document.getElementById('ae_loader')?.remove(); +}); + // STABLE DERIVATION: Using prop data directly to avoid store loops let ae_acct = $derived(data[data.account_id]);