import { beaconJs } from "../runtime/beacon.ts"; import type { Catalog, CompiledPage, PageSource, SiteConfig } from "../types.ts"; export { beaconJs }; export declare const baseCss = "*, *::before, *::after { box-sizing: border-box; }\nhtml {\n -webkit-text-size-adjust: 100%;\n scroll-padding-top: calc(var(--header-h) + var(--space-3));\n}\nbody {\n margin: 0;\n font-family: var(--font-body);\n font-size: var(--step-1);\n background: var(--color-bg);\n color: var(--color-text);\n line-height: 1.6;\n}\nh1, h2, h3, h4 {\n font-family: var(--font-display);\n font-weight: 600;\n margin: 0;\n text-wrap: balance;\n overflow-wrap: anywhere;\n}\nh1 { font-size: var(--step-5); line-height: 1.05; letter-spacing: -0.03em; }\nh2 { font-size: var(--step-3); line-height: 1.15; letter-spacing: -0.025em; }\nh3 { font-size: var(--step-2); line-height: 1.25; letter-spacing: -0.015em; }\nh4 { font-size: var(--step-1); line-height: 1.3; letter-spacing: -0.01em; }\np { margin: 0 0 var(--space-4); text-wrap: pretty; }\np:last-child { margin-bottom: 0; }\na { color: inherit; }\na:hover { text-decoration-color: var(--color-accent); }\nimg { max-width: 100%; height: auto; display: block; }\nsvg { display: inline-block; vertical-align: middle; }\nul, ol { margin: 0 0 var(--space-4); padding-inline-start: 1.25rem; }\nul:last-child, ol:last-child { margin-bottom: 0; }\nsmall { font-size: var(--step-0); }\n:focus-visible {\n outline: 2px solid var(--color-focus);\n outline-offset: 3px;\n}\n.skip-link {\n position: absolute;\n left: var(--space-4);\n top: var(--space-4);\n z-index: 100;\n padding: var(--space-3) var(--space-4);\n background: var(--color-surface);\n color: var(--color-text);\n border: 1px solid var(--color-border);\n border-radius: var(--radius);\n text-decoration: none;\n font-weight: 600;\n transform: translateY(-160%);\n transition: transform 160ms ease;\n}\n.skip-link:focus {\n transform: translateY(0);\n}\n.visually-hidden {\n position: absolute !important;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n.wrap {\n width: min(var(--max-width), calc(100% - 2rem));\n margin-inline: auto;\n}\n@media (min-width: 720px) {\n .wrap { width: min(var(--max-width), calc(100% - 2.5rem)); }\n}\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n min-height: var(--tap-min);\n padding: 0.75rem 1.5rem;\n line-height: 1.2;\n white-space: nowrap;\n background: var(--color-accent);\n color: var(--color-accent-text);\n text-decoration: none;\n border: 1px solid transparent;\n border-radius: var(--radius-pill);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;\n}\n.btn:hover {\n background: color-mix(in srgb, var(--color-accent) 88%, var(--color-text));\n}\n.btn-outline {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n min-height: var(--tap-min);\n padding: 0.75rem 1.5rem;\n line-height: 1.2;\n white-space: nowrap;\n background: transparent;\n color: var(--color-text);\n text-decoration: none;\n border: 1px solid var(--color-border);\n border-radius: var(--radius-pill);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;\n}\n.btn-outline:hover {\n border-color: var(--color-text);\n background: color-mix(in srgb, var(--color-text) 6%, transparent);\n}\n.btn-arrow {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n min-height: var(--tap-min);\n white-space: nowrap;\n font-weight: 600;\n text-decoration: none;\n color: var(--color-text);\n transition: color 180ms ease;\n}\n.btn-arrow::after {\n content: \"\u2192\";\n transition: transform 180ms ease;\n}\n.btn-arrow:hover {\n color: var(--color-accent);\n}\n.btn-arrow:hover::after { transform: translateX(3px); }\n.btn-ghost {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n min-height: var(--tap-min);\n padding: 0.75rem 1.5rem;\n line-height: 1.2;\n white-space: nowrap;\n background: transparent;\n color: var(--color-text);\n text-decoration: none;\n border: 1px solid transparent;\n border-radius: var(--radius-pill);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;\n}\n.btn-ghost:hover {\n background: color-mix(in srgb, var(--color-text) 6%, transparent);\n}\n.c-cookie-banner {\n position: fixed;\n inset-inline: 0;\n bottom: 0;\n z-index: 200;\n padding: var(--space-4) 0 calc(var(--space-4) + env(safe-area-inset-bottom, 0px));\n background: var(--color-surface);\n color: var(--color-text);\n border-top: 1px solid var(--color-border);\n box-shadow: 0 -8px 24px color-mix(in srgb, var(--color-text) 8%, transparent);\n}\n.c-cookie-banner__inner {\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n}\n.c-cookie-banner__title {\n margin: 0 0 var(--space-2);\n font-family: var(--font-display);\n font-size: var(--step-1);\n font-weight: 600;\n letter-spacing: -0.02em;\n line-height: 1.25;\n}\n.c-cookie-banner__text {\n margin: 0;\n font-size: var(--step-0);\n color: var(--color-muted);\n max-width: 42rem;\n}\n.c-cookie-banner__actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-3);\n}\n.c-cookie-banner__more {\n min-height: var(--tap-min);\n display: inline-flex;\n align-items: center;\n font-weight: 600;\n font-size: var(--step-0);\n color: var(--color-text);\n text-decoration: underline;\n text-underline-offset: 0.15em;\n cursor: pointer;\n}\n.c-cookie-banner__more:hover { color: var(--color-accent); }\n@media (max-width: 719px) {\n .c-cookie-banner {\n /* A delayed first-visit beacon must not insert a banner into document flow. */\n max-height: 50dvh;\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n}\n@media (min-width: 720px) {\n .c-cookie-banner__inner {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-5);\n }\n .c-cookie-banner__actions { flex-shrink: 0; }\n}\n.c-lead-ok {\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius);\n padding: var(--space-3) var(--space-4);\n margin: 0 0 var(--space-4);\n color: var(--color-text);\n}\n.c-lead-hp {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.c-cookie-page {\n padding: var(--space-7) 0 var(--space-8);\n}\n.c-cookie-page h1 {\n margin-bottom: var(--space-3);\n}\n.c-cookie-page h2 {\n margin: var(--space-6) 0 var(--space-3);\n}\n.c-cookie-page .wrap { max-width: 42rem; }\n.c-cookie-page p { color: var(--color-muted); }\n.c-cookie-page__actions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-3);\n margin-top: var(--space-5);\n}\n\n/* Scroll reveal \u2014 armed only after islands mark above-fold .is-in */\n[data-reveal] {\n --reveal-x: 0;\n --reveal-y: var(--reveal-dist, 16px);\n}\n[data-reveal-strength=\"whisper\"] {\n --reveal-dist: 8px;\n --reveal-dur: 400ms;\n --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);\n}\n[data-reveal-strength=\"editorial\"] {\n --reveal-dist: 16px;\n --reveal-dur: 550ms;\n --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);\n}\n[data-reveal-strength=\"noticeable\"] {\n --reveal-dist: 24px;\n --reveal-dur: 650ms;\n --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);\n}\n[data-reveal-from=\"up\"] { --reveal-x: 0; --reveal-y: var(--reveal-dist, 16px); }\n[data-reveal-from=\"down\"] { --reveal-x: 0; --reveal-y: calc(var(--reveal-dist, 16px) * -1); }\n[data-reveal-from=\"left\"] { --reveal-x: calc(var(--reveal-dist, 16px) * -1); --reveal-y: 0; }\n[data-reveal-from=\"right\"] { --reveal-x: var(--reveal-dist, 16px); --reveal-y: 0; }\n[data-reveal-child][data-reveal-from=\"up\"] {\n --reveal-child-x: 0;\n --reveal-child-y: var(--reveal-dist, 16px);\n}\n[data-reveal-child][data-reveal-from=\"down\"] {\n --reveal-child-x: 0;\n --reveal-child-y: calc(var(--reveal-dist, 16px) * -1);\n}\n[data-reveal-child][data-reveal-from=\"left\"] {\n --reveal-child-x: calc(var(--reveal-dist, 16px) * -1);\n --reveal-child-y: 0;\n}\n[data-reveal-child][data-reveal-from=\"right\"] {\n --reveal-child-x: var(--reveal-dist, 16px);\n --reveal-child-y: 0;\n}\n@media (prefers-reduced-motion: reduce) {\n *, *::before, *::after { animation: none !important; transition: none !important; }\n}\n"; export declare function compilePage(page: PageSource, catalog: Catalog, site: SiteConfig, kernelOrigin: string): CompiledPage; export declare function usedComponents(pages: CompiledPage[]): string[]; export declare function siteCss(pages: CompiledPage[], catalog: Catalog): string; export declare function siteIslands(pages: CompiledPage[], catalog: Catalog): string; export declare function renderDocument(opts: { site: SiteConfig; page: CompiledPage; kernelOrigin: string; themeHref: string; assetsPrefix?: string; publicOrigin?: string; islandsHref?: string | null; styleHref?: string; webAnalyticsToken?: string; }): string; export declare function robotsTxt(publicOrigin?: string): string; export declare function sitemapXml(paths: string[], publicOrigin?: string, exclude?: string[], includeCookie?: boolean): string; export declare function compileSite(opts: { site: SiteConfig; pages: PageSource[]; catalog: Catalog; kernelOrigin: string; themeHref: string; assetsPrefix?: string; publicOrigin?: string; pageAssets?: Record; webAnalyticsToken?: string; }, preparedPages?: CompiledPage[]): { path: string; html: string; }[]; /** Expose compiled pages for CSS/JS asset generation. */ export declare function compileAllPages(site: SiteConfig, pages: PageSource[], catalog: Catalog, kernelOrigin: string): CompiledPage[];