/* ui-kit/styles/site.css -- GENERATED by project-websites/tools/gen-site-css.py.
   Do not edit: edit ui-kit/styles/components.css (component + route rules) or
   ui-kit/styles/global-compiled.css (the compiled global half), then re-run the
   generator. Served as /_astro/site.<sha256[:8]>.css by both the Astro engine
   and tools/render/render.py. */
/* ui-kit/styles/global-compiled.css
   ============================================================================
   THE COMPILED GLOBAL STYLESHEET, kept as bytes on purpose.

   Source of truth for the RULES: engine/src/styles/main.css, which is not
   plain CSS -- it is a Tailwind v4 entry (`@import "tailwindcss"`,
   `@plugin "@tailwindcss/typography"`, `@theme`, `@custom-variant`) that also
   pulls in katex/dist/katex.min.css and ui-kit/styles/global.css. Only a
   Tailwind compile turns it into something a browser can read.

   These bytes ARE the compile: they are `_astro/Base.DLj4Hm4U.css` from the
   2026-09-12 fleet build, byte-identical across cedric-villani and dojoig
   (sha256 864f23bc...e2b6 in both), i.e. the file every live host already
   serves. Copying it rather than recompiling is deliberate: the published
   appearance of 40 hosts does not move by one pixel on account of a compiler
   version.

   TO REGENERATE after editing global.css or main.css:
     1. restore `import "@styles/main.css";` in ui-kit/layouts/Base.astro,
     2. BUILD_LOCK_TIMEOUT=7200 bash project-websites/build-site.sh <set> en
     3. python3 project-websites/tools/gen-site-css.py \
            --global-from project-websites/build-workspace/dist-en/_astro/Base.*.css
     4. remove the import again, rebuild, diff.
   `gen-site-css.py --check` (run by build-site.sh) only checks that site.css
   equals this file + components.css.
   ============================================================================ */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Lora", "Noto Serif SC", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--breakpoint-xl:80rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.max-w-screen-xl{max-width:var(--breakpoint-xl)}.flex-shrink,.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(min-width:64rem){.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-start-2{grid-column-start:2}.lg\:pt-12{padding-top:calc(var(--spacing) * 12)}}.prose{color:var(--color-text);overflow-wrap:break-word;font-size:1rem;max-width:56rem!important;line-height:1.75!important}.prose h1{margin-top:0;color:var(--color-heading)!important;margin-bottom:.8889em!important;font-size:2.25em!important;font-weight:800!important;line-height:1.1111!important}.prose h2{color:var(--color-heading)!important;margin-top:2em!important;margin-bottom:1em!important;font-size:1.5em!important;font-weight:700!important;line-height:1.3333!important}.prose h3{color:var(--color-heading)!important;margin-top:1.6em!important;margin-bottom:.6em!important;font-size:1.25em!important;font-weight:600!important;line-height:1.6!important}.prose p{margin-top:1.25em!important;margin-bottom:1.25em!important}.prose a{overflow-wrap:anywhere;transition:color .3s ease-in-out;color:var(--color-link)!important;font-weight:500!important;text-decoration:none!important}.prose a:visited{color:var(--color-link-visited)!important}.prose a:hover{color:var(--color-link-hover)!important;text-decoration:underline!important}.prose strong{color:var(--color-heading)!important;font-weight:600!important}.prose blockquote{border-inline-start-width:.25rem!important;border-inline-start-color:var(--color-tertiary-bg)!important;color:var(--color-meta)!important;margin-top:1.6em!important;margin-bottom:1.6em!important;padding-inline-start:1em!important;font-style:italic!important;font-weight:500!important}.prose blockquote p:first-of-type:before{content:open-quote}.prose blockquote p:last-of-type:after{content:close-quote}.prose hr{border:none;border-top:1px solid var(--color-tertiary-bg);margin-top:3em!important;margin-bottom:3em!important}.prose img{border-radius:4px;max-width:100%;height:auto;display:block;margin:2em 0!important}.prose ul,.prose ol{margin-top:1.25em!important;margin-bottom:1.25em!important;padding-inline-start:1.625em!important}.prose ol{list-style-type:decimal!important}.prose ul{list-style-type:disc!important}.prose li{margin-top:.5em!important;margin-bottom:.5em!important}.prose ol>li::marker{color:var(--color-meta)}.prose ul>li::marker{color:var(--color-meta)}.prose figure{margin:2em 0!important}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2)format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff)format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2)format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff)format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2)format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff)format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2)format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff)format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2)format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff)format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2)format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff)format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2)format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff)format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2)format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff)format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2)format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff)format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2)format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff)format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff)format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2)format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff)format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2)format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff)format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.16.45"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}*,:before,:after{box-sizing:border-box}:root{--color-bg:#f2f2f7;--color-content-bg:#fff;--color-tertiary-bg:#f2f2f7;--color-heading:#000000d9;--color-text:#000000b3;--color-meta:#0000008c;--color-accent:#38b2ac;--color-nav-bg:#fff;--color-nav-border:#00000014;--color-footer-bg:transparent;--color-link:#00e;--color-link-visited:purple;--color-link-hover:#e00;--color-toggle-bg:#e0e0e0;--color-toggle-active:#1a5276;--color-toggle-text:#000000b3;--color-toggle-active-text:#fff;--color-hamburger:#000000b3;--color-mobile-bg:#fff;--color-switcher-bg:#fff;--color-switcher-border:#00000014;--color-switcher-hover:#f0f0f0}[data-theme=dark]{--color-bg:#000;--color-content-bg:#1c1c1e;--color-tertiary-bg:#2c2c2e;--color-heading:#ffffffd9;--color-text:#ffffffb3;--color-meta:#ffffff8c;--color-nav-bg:#1c1c1e;--color-nav-border:#ffffff1a;--color-footer-bg:transparent;--color-link:#1f90ef;--color-link-visited:#e100e1;--color-link-hover:#e00;--color-toggle-bg:#333;--color-toggle-active:#5dade2;--color-toggle-text:#ffffffb3;--color-toggle-active-text:#000;--color-hamburger:#ffffffb3;--color-mobile-bg:#1c1c1e;--color-switcher-bg:#1c1c1e;--color-switcher-border:#ffffff1a;--color-switcher-hover:#2c2c2e}html{font-family:Lora,Noto Serif SC,Georgia,Times New Roman,serif;font-size:16px;line-height:1.5}body{background-color:var(--color-bg);color:var(--color-text);flex-direction:column;min-height:100vh;transition:background-color .2s,color .2s;display:flex}a{color:var(--color-link);text-decoration:none;transition:color .3s ease-in-out}a:visited{color:var(--color-link-visited)}a:hover,a:active{color:var(--color-link-hover);text-decoration:underline}h1,h2,h3{color:var(--color-heading)}main{flex:1}.nav{background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);z-index:100;transition:background-color .2s,border-color .2s;position:sticky;top:0}.nav-inner{flex-direction:column;gap:.5rem;max-width:56rem;margin:0 auto;padding:.5rem 1.5rem;display:flex}.nav-row-1{align-items:center;gap:1rem;min-height:3rem;display:flex;position:relative}.nav-brand{color:var(--color-text);white-space:nowrap;flex-shrink:0;margin-right:auto;font-size:1.1rem;font-weight:700;text-decoration:none}.nav-brand:hover{color:var(--color-link-hover);text-decoration:none}.nav-brand-img{direction:ltr;width:auto;height:2.6rem;display:block}.nav-brand-mark{direction:ltr;height:2.6rem;display:block}.nav-brand-mark svg{width:auto;height:100%;display:block}.nav-brand-mark .brand-lockup-svg{--seal-ink:#ee1c25;--seal-field:#ff0}.nav-brand-mark .brand-lockup-svg-ink{fill:#111}.nav-brand-mark .brand-lockup-svg-ghost{opacity:.16}.nav-brand-mark .brand-lockup-svg-beam{fill:#80808042}:root[data-theme=dark] .nav-brand-mark .brand-lockup-svg{--seal-ink:#ee1c25;--seal-field:#ff0}:root[data-theme=dark] .nav-brand-mark .brand-lockup-svg-ink{fill:#f2f2f2}:root[data-theme=dark] .nav-brand-mark .brand-lockup-svg-ghost{opacity:.2}:root[data-theme=dark] .nav-brand-mark .brand-lockup-svg-beam{fill:#fff3}.nav-links{flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{white-space:nowrap;border-radius:4px;padding:.4rem .6rem;font-size:.85rem;text-decoration:none;display:block}.nav-links a:hover{background-color:var(--color-toggle-bg);text-decoration:none}.nav-controls{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.nav-hamburger{cursor:pointer;color:var(--color-text);font:inherit;background:0 0;border:none;flex-shrink:0;align-items:center;gap:.4rem;padding:.5rem;display:none}.hamburger-label{white-space:nowrap;font-size:.85rem;font-weight:500}.hamburger-icon{flex-shrink:0;display:inline-block}.nav-hamburger .bar{background-color:var(--color-hamburger);width:20px;height:2px;margin:4px 0;transition:transform .2s,opacity .2s;display:block}.nav-hamburger[aria-expanded=true] .bar:first-child{transform:rotate(45deg)translate(3px,5px)}.nav-hamburger[aria-expanded=true] .bar:nth-child(2){opacity:0}.nav-hamburger[aria-expanded=true] .bar:nth-child(3){transform:rotate(-45deg)translate(3px,-5px)}.theme-toggle{background-color:var(--color-toggle-bg);border:none;border-radius:6px;gap:2px;padding:2px;display:flex;overflow:hidden}.theme-toggle button{cursor:pointer;color:var(--color-toggle-text);white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:.3rem .5rem;font-size:.75rem;transition:background-color .15s,color .15s}.theme-toggle button:hover{background-color:var(--color-switcher-hover)}.theme-toggle button.active{background-color:var(--color-toggle-active);color:var(--color-toggle-active-text)}.lang-switcher{position:relative}.lang-switcher-btn{border:1px solid var(--color-nav-border);cursor:pointer;color:var(--color-text);background:0 0;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.8rem;display:flex}.lang-switcher-btn:hover{background-color:var(--color-toggle-bg)}.lang-switcher-btn:after{content:"▾";font-size:.7rem}.lang-dropdown{background-color:var(--color-switcher-bg);border:1px solid var(--color-switcher-border);z-index:200;border-radius:6px;min-width:140px;margin-top:4px;display:none;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.lang-dropdown.open{display:block}.lang-dropdown a{color:var(--color-text);padding:.5rem .75rem;font-size:.85rem;text-decoration:none;display:block}.lang-dropdown a:hover{background-color:var(--color-switcher-hover);text-decoration:none}.lang-dropdown a.current{font-weight:700}.footer{background-color:var(--color-footer-bg);border-top:1px solid var(--color-nav-border);text-align:center;padding:1.5rem 1rem;font-size:.85rem;transition:background-color .2s,border-color .2s}.footer-links{margin-bottom:.5rem;line-height:1.8}.footer-links a{white-space:nowrap;text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-sep{color:var(--color-text);opacity:.5}.footer-org{margin-bottom:.25rem;font-weight:600}@media(max-width:768px){.nav-hamburger{display:flex}.nav-links{background-color:var(--color-mobile-bg);border-bottom:1px solid var(--color-nav-border);z-index:50;flex-direction:column;gap:0;padding:.5rem;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 4px 12px #0000001a}.nav-links.open{display:flex}.nav-links a{padding:.6rem .75rem}.nav-row-1{flex-wrap:wrap;row-gap:.4rem}.nav-controls{flex-basis:100%;justify-content:space-between;margin-left:0}.theme-toggle button{padding:.25rem .4rem;font-size:.7rem}}@media(max-width:400px){.hamburger-label{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}

/* ui-kit/styles/components.css
   ============================================================================
   The component and route styles that used to live in ten Astro-scoped
   <style> blocks (own-renderer phase 2, lane S, 2026-09-12).

   WHY THIS FILE EXISTS. Astro compiled `.x { }` inside a component's <style>
   into `.x[data-astro-cid-HASH] { }` and stamped that attribute on every
   element of the component. A renderer without Astro cannot reproduce the
   hash, so the whole fleet now serves ONE plain stylesheet instead
   (ui-kit/styles/site.css, built by project-websites/tools/gen-site-css.py).

   THE DE-SCOPING RULE, applied mechanically and verified selector for
   selector against the built bundle of cedric-villani en (215 of 215):

       [data-astro-cid-HASH]  ->  .<namespace>

   one namespace per former block, stamped in the template on exactly the
   elements that carried the attribute. A class selector has the same
   specificity as an attribute selector (0-1-0), so nothing moves in the
   cascade either.

   ONE SUBTLETY, and it cost a real defect before a pixel test found it: Astro
   put the attribute on a CHILD COMPONENT's rendered element too. `<Picture>`
   spreads its rest props onto the `<img>` it renders, so the featured image
   carried the cid without anyone writing it there. The de-scoped equivalent is
   an explicit `class="tl-detail"` prop on `<Picture>`; without it the featured
   image lost border-radius, width and display on every entry page.
   `project-websites/tools/check-descope-stamps.py` checks for this.

   Namespaces: imgproc · tl-detail · tl-footer · tl-list · pg-home · pg-404 ·
   pg-extra · pg-path · pg-tags · pg-tag.

   DEAD-AS-AUTHORED. 31 rules are commented out, not deleted. They never
   reached a page and are kept so the record is complete:
     * 16 `[data-theme="dark"] .x` rules — Astro stamped the cid onto the
       [data-theme] compound too, and that attribute sits on <html>, which
       carries no cid. Measured on the 2026-09-12 build: zero matches.
     * 9 `.errata-detail .prose figure.errata-figure ...` rules — the figure
       comes from MDX (set:html) and never carried the cid.
     *  6 + 3 rules: the WHOLE ImgProc and TimelineFooter blocks. Both
       components are used only from MDX, and Astro ships no stylesheet for
       them: their class names appear in the HTML of every entry page and in
       NO css file of the build. Body-image captions and the timeline-footer
       box have therefore never been styled on any live host.
   Making any of them live is a VISIBLE change to published pages and needs
   Vincent Le Corre's word; lane S changed nothing.

   Cascade position: this file is appended AFTER global.css and main.css, the
   same place Astro's scoped rules sat, and stays unlayered.
   ============================================================================ */

/* ===== imgproc  <-  ui-kit/components/ImgProc.astro ===== */
/* DEAD-AS-AUTHORED: .imgproc-figure.imgproc { padding: 0; margin: 1rem 0; display: flex; justify-content: center; align-items: center; flex-direction: column; } */
/* DEAD-AS-AUTHORED: .imgproc-figure.imgproc img.imgproc, .imgproc-figure.imgproc img { max-width: 100%; margin: 0; width: auto; height: auto; } */
/* DEAD-AS-AUTHORED: .imgproc-link.imgproc { display: inline-block; line-height: 0; max-width: 100%; } */
/* DEAD-AS-AUTHORED: .imgproc-caption.imgproc { margin-top: 0.5rem; font-size: 0.875rem; font-style: italic; color: var(--color-meta); text-align: center; max-width: 90%; line-height: 1.4; } */
/* DEAD-AS-AUTHORED: .imgproc-credit.imgproc { opacity: 0.7; font-style: normal; } */

/* ===== tl-detail  <-  ui-kit/components/TimelineDetail.astro ===== */
.event-page.tl-detail { /* Width + card matches Hugo's old layout: outer max-w-screen-xl with the article in lg:col-start-2 lg:col-span-6 of 8 columns + bg-secondary-bg rounded px-6 py-8. 56rem (896px) reproduces the effective content width; --color-content-bg + rounded corners reproduce the white "article zone" card distinct from the gray page background. */ max-width: 56rem; margin: 3rem auto; /* matches Hugo lg:pt-12 spacing above card */ padding: 2rem 1.5rem; /* matches Hugo px-6 py-8 */ background-color: var(--color-content-bg); border-radius: 0.25rem; /* matches Hugo "rounded" */ }
.event-page.tl-detail h1.tl-detail { margin-bottom: 0.8889em; font-size: 2.25rem; font-weight: 800; line-height: 1.1111; }
.event-meta.tl-detail { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-bottom: 1.25rem; font-size: 0.9rem; color: #6b7280; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .event-meta.tl-detail { color: #9ca3af; } */
.meta-item.tl-detail { display: flex; align-items: center; gap: 0.35rem; }
.event-featured-image.tl-detail { margin: 0 0 1.5rem 0; }
.event-featured-image.tl-detail img.tl-detail { width: 100%; height: auto; display: block; border-radius: 4px; }
.event-featured-image.tl-detail figcaption.tl-detail { margin-top: 0.5rem; font-size: 0.875rem; font-style: italic; color: var(--color-meta); text-align: center; }
/* Approximate-date prose: subtle blue/accent block under the meta bar.
     Used when frontmatter dateApproximation is set (narrow + wide ranges). */
.date-approximation.tl-detail { margin: 0 0 1.25rem 0; padding: 0.625rem 0.875rem; background-color: var(--color-bg); border-left: 3px solid var(--color-accent); border-radius: 0 0.25rem 0.25rem 0; }
.date-approximation.tl-detail p.tl-detail { margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--color-text); }
/* ── Span / pattern entry blocks (step-0383) ─────────────────────────── */
/* Both share a card-like presentation under the metadata bar. Span is
     accent-bordered (continuous-duration cue); pattern uses an amber border
     (recurring-incidents cue). */
/* Social-post card (2026-08-04). Compact, quiet, id front and centre. */
.social-post-card.tl-detail { margin: 0 0 1.5rem 0; padding: 0.75rem 1rem; background-color: var(--color-bg); border-left: 4px solid var(--color-accent); border-radius: 0.25rem; font-size: 0.9375rem; }
.social-post-head.tl-detail { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; align-items: baseline; }
.social-post-platform.tl-detail { font-weight: 600; }
.social-post-handle.tl-detail { color: var(--color-meta); }
.social-post-id.tl-detail { margin-top: 0.375rem; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; }
.social-post-id-label.tl-detail { color: var(--color-meta); font-size: 0.875rem; }
.social-post-id-value.tl-detail { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9375rem; word-break: break-all; }
.social-post-link.tl-detail { display: inline-block; margin-top: 0.5rem; }
/* On a social-post page the screenshot is evidence, not a hero image:
     keep it small and let the reader open the full-size original. */
.event-content.is-social-post.tl-detail .imgproc-figure img { max-width: min(380px, 100%); cursor: zoom-in; }
.entry-span-block.tl-detail, .entry-pattern-block.tl-detail { margin: 0 0 1.5rem 0; padding: 0.875rem 1rem; background-color: var(--color-bg); border-radius: 0.25rem; }
.entry-span-block.tl-detail { border-left: 4px solid var(--color-accent); }
.entry-pattern-block.tl-detail { border-left: 4px solid #b45309; /* amber-700 */ }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .entry-pattern-block.tl-detail { border-left-color: #d97706; } */
.entry-block-header.tl-detail { margin: 0 0 0.4rem 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-meta, #6b7280); }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .entry-block-header.tl-detail { color: #9ca3af; } */
.entry-range.tl-detail { margin: 0 0 0.4rem 0; font-size: 1.05rem; font-weight: 600; color: var(--color-text); }
.entry-frequency.tl-detail, .entry-occurrence-count.tl-detail, .entry-examples-header.tl-detail { margin: 0.3rem 0; font-size: 0.95rem; line-height: 1.5; color: var(--color-text); }
.entry-examples.tl-detail { margin: 0.4rem 0 0 0; padding-left: 1.25rem; font-size: 0.95rem; line-height: 1.65; }
.entry-examples.tl-detail li.tl-detail { margin-bottom: 0.25rem; }
.entry-examples.tl-detail li.pivotal.tl-detail { list-style-type: "★ "; font-weight: 500; }
.entry-examples.tl-detail .example-date.tl-detail { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; font-size: 0.92em; color: var(--color-meta, #6b7280); }
.entry-examples.tl-detail .example-pivotal-badge.tl-detail { display: inline-block; margin-left: 0.45em; padding: 0 0.45em; font-size: 0.72em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #b45309; background-color: rgba(180, 83, 9, 0.12); border-radius: 999px; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .entry-examples.tl-detail .example-pivotal-badge.tl-detail { color: #fbbf24; background-color: rgba(217, 119, 6, 0.18); } */
/* National-security notice: prominent red banner. Two stacked lines —
     "⚠️ This is a national-security-related event." +
     "First published on this website on <date>." */
.national-security-notice.tl-detail { margin: 0 0 1.5rem 0; padding: 0.75rem 1rem; background-color: rgba(238, 0, 0, 0.08); border-left: 4px solid #EE0000; border-radius: 0 0.25rem 0.25rem 0; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .national-security-notice.tl-detail { background-color: rgba(238, 0, 0, 0.15); } */
.national-security-notice.tl-detail .ns-line.tl-detail { margin: 0.15rem 0; color: #C40000; font-weight: 700; font-size: 0.95rem; line-height: 1.5; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .national-security-notice.tl-detail .ns-line.tl-detail { color: #FF6B6B; } */
.event-content.tl-detail { line-height: 1.7; }
.event-tags.tl-detail { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-nav-border); display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tag.tl-detail { display: inline-block; padding: 0.25rem 0.75rem; background: var(--color-bg); border: 1px solid var(--color-nav-border); border-radius: 9999px; font-size: 0.8rem; color: var(--color-text); text-decoration: none; opacity: 0.8; transition: background-color 0.15s; }
.tag.tl-detail:hover { background: var(--color-nav-border); text-decoration: none; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-detail .tag.tl-detail { background: #1e293b; } */

/* ===== tl-footer  <-  ui-kit/components/TimelineFooter.astro ===== */
/* DEAD-AS-AUTHORED: .timeline-footer.tl-footer { margin: 2em 0 1em; padding: 1em 1.25em; border-left: 3px solid var(--accent, #888); background: rgba(128, 128, 128, 0.06); font-size: 0.95em; } */
/* DEAD-AS-AUTHORED: .timeline-footer.tl-footer p.tl-footer { margin: 0.3em 0; } */
/* DEAD-AS-AUTHORED: .timeline-footer.tl-footer a.tl-footer { font-weight: 600; } */

/* ===== tl-list  <-  ui-kit/components/TimelineList.astro ===== */
.page-container.tl-list { /* Match Hugo's outer card layout: ~56rem content area, white card on gray page bg, rounded corners, px-6 py-8 internal padding, lg:pt-12 spacing. */ max-width: 56rem; margin: 3rem auto; padding: 2rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
.page-container.tl-list h1.tl-list { margin-bottom: 0.8889em; font-size: 2.25rem; font-weight: 800; line-height: 1.1111; }
.timeline-disclaimer.tl-list { /* Visible but not alarming. Border-left + accent bg for "note" semantic. */ margin: 0 0 1.5rem 0; padding: 0.75rem 1rem; background-color: var(--color-bg); border-left: 4px solid var(--color-accent); border-radius: 0 0.25rem 0.25rem 0; color: var(--color-text); line-height: 1.5; }
.timeline-disclaimer.tl-list p.tl-list { margin: 0; font-size: 0.95rem; }
.timeline-crosslink.tl-list { margin: 0 0 1.5rem 0; font-size: 0.95rem; }
.timeline-crosslink.tl-list a.tl-list { color: var(--color-link); }
/* Step-0481 — prominent two-timelines callout for the curated-timeline
     index page. Visually heavier than .timeline-crosslink so the reader
     notices that a sibling timeline view exists. */
.timeline-callout.tl-list { margin: 0 0 1.5rem 0; padding: 1rem 1.25rem; background: var(--color-callout-bg, rgba(128, 128, 128, 0.08)); border-left: 4px solid var(--color-link); border-radius: 0.25rem; }
.timeline-callout-title.tl-list { margin: 0 0 0.4rem 0; font-weight: 700; font-size: 1.05rem; }
.timeline-callout-body.tl-list { margin: 0 0 0.6rem 0; font-size: 0.95rem; line-height: 1.5; }
.timeline-callout-link.tl-list { margin: 0; font-size: 0.98rem; }
.timeline-callout-link.tl-list a.tl-list { color: var(--color-link); font-weight: 600; }
.timeline-entries.tl-list { border-top: 1px solid var(--color-nav-border); }
.timeline-card.tl-list { padding: 1.5rem 0; border-bottom: 1px solid var(--color-nav-border); }
/* Span entries: solid left rail in accent color (continuous-duration cue). */
.timeline-card.is-span.tl-list { border-left: 4px solid var(--color-accent); padding-left: 0.875rem; }
/* Pattern entries: striped left rail (recurring-incidents cue). The repeating
     stripes mirror the "many discrete incidents" semantic. */
.timeline-card.is-pattern.tl-list { padding-left: 0.875rem; border-left: 4px solid transparent; background-image: repeating-linear-gradient( 135deg, var(--color-accent) 0px, var(--color-accent) 6px, transparent 6px, transparent 12px ); background-size: 4px 100%; background-repeat: no-repeat; background-position: left top; }
/* Inline badge that prefixes the title for non-event entries. */
.entry-type-badge.tl-list { display: inline-block; margin-right: 0.5em; padding: 0.1em 0.55em; font-size: 0.72em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border-radius: 999px; color: #fff; vertical-align: 0.15em; }
.entry-type-badge.entry-type-span.tl-list { background-color: var(--color-accent); }
.entry-type-badge.entry-type-pattern.tl-list { background-color: #b45309; /* amber-700 */ }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-list .entry-type-badge.entry-type-pattern.tl-list { background-color: #d97706; } */
/* Occurrence-count chip (pattern entries). Same row as date + read-time. */
.card-occurrence-count.tl-list { display: flex; align-items: center; gap: 0.35rem; }
.card-content.tl-list { display: flex; flex-direction: column-reverse; }
.card-content[data-has-image].tl-list { flex-direction: row; gap: 2rem; }
.card-text.tl-list { flex: 1; }
.card-title-link.tl-list { text-decoration: none; color: var(--color-text); }
.card-title-link.tl-list:hover { color: var(--color-link-hover); text-decoration: none; }
.card-title-link.tl-list h3.tl-list { margin: 0 0 0.5rem 0; font-size: 1.25rem; font-weight: 700; line-height: 1.4; }
.card-description.tl-list { margin: 0 0 0.5rem 0; line-height: 1.7; color: var(--color-text); }
.card-read-more.tl-list { margin: 0 0 0.75rem 0; }
.card-read-more.tl-list a.tl-list { color: var(--color-link); }
.card-meta.tl-list { display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: 0.875rem; color: #6b7280; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-list .card-meta.tl-list { color: #9ca3af; } */
.card-date.tl-list, .card-reading-time.tl-list { display: flex; align-items: center; gap: 0.35rem; }
/* National-security banner on the list card. Same red palette as
     TimelineDetail's .national-security-notice, slightly more compact. */
.card-national-security.tl-list { margin: 0.75rem 0 0 0; padding: 0.5rem 0.75rem; background-color: rgba(238, 0, 0, 0.08); border-left: 4px solid #EE0000; border-radius: 0 0.25rem 0.25rem 0; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-list .card-national-security.tl-list { background-color: rgba(238, 0, 0, 0.15); } */
.card-national-security.tl-list .ns-line.tl-list { margin: 0.1rem 0; color: #C40000; font-weight: 700; font-size: 0.9rem; line-height: 1.4; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].tl-list .card-national-security.tl-list .ns-line.tl-list { color: #FF6B6B; } */
.card-image.tl-list { flex-shrink: 0; width: 33.333%; }
.card-image.tl-list img.tl-list { width: 100%; height: auto; border-radius: 4px; display: block; }
@media (max-width: 768px) {
  .card-content[data-has-image].tl-list { flex-direction: column-reverse; }
  .card-image.tl-list { width: 100%; margin-bottom: 1rem; }
}

/* ===== pg-home  <-  engine/src/pages/index.astro ===== */
.home-container.pg-home { /* Match Hugo's outer card layout: ~56rem content area, white card on gray page bg, rounded corners, px-6 py-8 internal padding, lg:pt-12 spacing. */ max-width: 56rem; margin: 3rem auto; padding: 2rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
/* About header */
.about-header.pg-home { display: flex; align-items: flex-start; gap: 2rem; margin-bottom: 2rem; }
.about-avatar.pg-home { flex-shrink: 0; width: 180px; }
.avatar-img.pg-home { width: 100%; border-radius: 50%; display: block; }
.about-info.pg-home { flex: 1; }
.about-info.pg-home h1.pg-home { font-size: 1.8rem; margin-bottom: 0.75rem; line-height: 1.3; }
.about-divider.pg-home { width: 25%; border-bottom: 1px solid var(--color-nav-border); margin-bottom: 1rem; }
.about-role.pg-home { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 1.5rem; font-size: 0.95rem; }
.about-bio.pg-home { font-size: 1.05rem; line-height: 1.7; }
/* Executive Summary */
.exec-summary.pg-home { margin-top: 1rem; }
/* Portrait */
.portrait-section.pg-home { text-align: center; margin: 1.5rem 0; }
.portrait-img.pg-home { width: 128px; height: auto; border-radius: 50%; display: inline-block; }
.contact-links.pg-home { text-align: center; margin-bottom: 2rem; line-height: 1.8; }
/* Banner section above footer */
.banner-section.pg-home { width: 100%; }
.banner-bg.pg-home { width: 100%; height: 120px; background-size: contain; background-repeat: repeat-x; background-position: center; }
/* Mobile */
@media.pg-home (max-width: 768px).pg-home { .about-header { flex-direction: column; align-items: center; text-align: center; } .about-avatar { width: 140px; } .about-role { justify-content: center; } .about-divider { margin-left: auto; margin-right: auto; } }

/* ===== pg-404  <-  engine/src/pages/404.astro ===== */
.page-container.pg-404 { /* Match Hugo card layout: ~56rem content area, white card on gray page bg. */ max-width: 56rem; margin: 3rem auto; padding: 4rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
.page-container.pg-404 h1.pg-404 { font-size: 2.25rem; font-weight: 800; margin-bottom: 1rem; }
.page-container.pg-404 p.pg-404 { margin-bottom: 1rem; line-height: 1.7; }

/* ===== pg-extra  <-  engine/src/pages/[...extra].astro ===== */
/* `.page-container` has NO rule anywhere in the fleet CSS -- measured
     2026-08-08 on the LIVE www.vincentlecorre.org/contact-me/, where the text
     therefore starts at x=0, hard against the browser edge, with no measure
     limit. That is a pre-existing defect of this route (it predates the
     cia-in-china About / Other-websites pages, which merely surfaced it).

     Fixed HERE rather than in ui-kit/styles/global.css on purpose: a
     `.page-container` rule in the shared sheet would restyle that class
     wherever else it appears across the fleet, while an Astro-scoped style in
     this route file reaches ONLY the pages this file generates -- today the
     vincentlecorre contact page and the cia-in-china sections. Both gain the
     padding at their next build; nothing else moves a pixel.

     `65ch` is a reading measure, not a design token: it keeps body text near
     the 45-75 characters-per-line band rather than running the full width of a
     desktop window. */
.page-container.pg-extra { max-width: 65ch; margin: 0 auto; padding: 2.5rem 1.5rem 4rem; }

/* ===== pg-path  <-  engine/src/pages/[...path].astro ===== */
.page-container.pg-path { /* Match Hugo's outer card layout: ~56rem content area, white card on gray page bg, rounded corners, px-6 py-8 internal padding, lg:pt-12 spacing. */ max-width: 56rem; margin: 3rem auto; padding: 2rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
.page-container.pg-path h1.pg-path { margin-bottom: 0.8889em; font-size: 2.25rem; font-weight: 800; line-height: 1.1111; }
.intro-content.pg-path { margin-bottom: 2rem; line-height: 1.7; }
.count-note.pg-path { margin-bottom: 1.5rem; font-size: 0.9rem; opacity: 0.6; }
/* Cases list */
.cases-list.pg-path { border-top: 1px solid var(--color-nav-border); }
.case-card.pg-path { padding: 1.5rem 0; border-bottom: 1px solid var(--color-nav-border); }
.case-title-link.pg-path { text-decoration: none; color: var(--color-text); }
.case-title-link.pg-path:hover { color: var(--color-link-hover); }
.case-title-link.pg-path h3.pg-path { margin: 0 0 0.5rem 0; font-size: 1.25rem; font-weight: 700; }
.case-desc.pg-path { margin: 0 0 0.5rem 0; line-height: 1.7; }
.case-read-more.pg-path { margin: 0 0 0.75rem 0; }
.case-read-more.pg-path a.pg-path { color: var(--color-link); }
.case-meta.pg-path { display: flex; gap: 1.25rem; font-size: 0.875rem; color: #6b7280; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].pg-path .case-meta.pg-path { color: #9ca3af; } */
.meta-item.pg-path { display: flex; align-items: center; gap: 0.35rem; }
.case-content.pg-path { line-height: 1.7; }
/* Evidence list */
.evidence-list.pg-path { border-top: 1px solid var(--color-nav-border); }
.evidence-card.pg-path { padding: 1.5rem 0; border-bottom: 1px solid var(--color-nav-border); }
.evidence-title-link.pg-path { text-decoration: none; color: var(--color-text); }
.evidence-title-link.pg-path:hover { color: var(--color-link-hover); }
.evidence-title-link.pg-path h3.pg-path { margin: 0 0 0.5rem 0; font-size: 1.25rem; font-weight: 700; }
.evidence-desc.pg-path { margin: 0 0 0.5rem 0; line-height: 1.7; }
.evidence-read-more.pg-path { margin: 0 0 0.5rem 0; }
.evidence-read-more.pg-path a.pg-path { color: var(--color-link); }
.evidence-meta.pg-path { font-size: 0.875rem; opacity: 0.6; }
.evidence-content.pg-path { line-height: 1.7; }
/* Laws list */
.laws-list.pg-path { border-top: 1px solid var(--color-nav-border); }
.law-card.pg-path { padding: 1.5rem 0; border-bottom: 1px solid var(--color-nav-border); }
.law-title-link.pg-path { text-decoration: none; color: var(--color-text); }
.law-title-link.pg-path:hover { color: var(--color-link-hover); }
.law-title-link.pg-path h3.pg-path { margin: 0 0 0.5rem 0; font-size: 1.25rem; font-weight: 700; }
.law-desc.pg-path { margin: 0 0 0.5rem 0; line-height: 1.7; }
.law-read-more.pg-path { margin: 0; }
.law-read-more.pg-path a.pg-path { color: var(--color-link); }
.law-content.pg-path { line-height: 1.7; }
/* Static pages */
.content.pg-path { line-height: 1.7; }
/* Parties pages (step-0510, schema v1.7) */
.parties-lead.pg-path { margin-bottom: 1.5rem; color: var(--color-text-muted, #555); line-height: 1.7; }
.parties-lead.pg-path a.pg-path { color: var(--color-link); }
.parties-list.pg-path { list-style: none; padding: 0; margin: 0; }
.parties-item.pg-path { padding: 0.5rem 0; border-bottom: 1px solid var(--color-nav-border, #eee); }
.parties-item.pg-path a.pg-path { font-weight: 600; }
.parties-item.pg-path .role.pg-path { color: var(--color-text-muted, #555); font-size: 0.95rem; }
.parties-count.pg-path { color: var(--color-text-muted, #888); font-weight: 400; font-size: 0.9em; }
.parties-footnote.pg-path { margin-top: 1.5rem; color: var(--color-text-muted, #888); font-size: 0.9rem; }
.page-container.pg-path h2.pg-path { margin: 2rem 0 0.5rem; font-size: 1.5rem; font-weight: 700; }
/* Step-0517: /people/ Hugo-style two-column display (FAMILY_NAME | given_name Family_name) */
.parties-list-two-col.pg-path .parties-item-two-col.pg-path { display: grid; grid-template-columns: 12rem auto 1fr; grid-template-areas: "family sep name" ". role role"; gap: 0 0.5rem; align-items: baseline; padding: 0.4rem 0.5rem; }
.parties-list-two-col.pg-path .parties-item-two-col.pg-path:nth-child(odd) { background-color: var(--color-zebra-row, rgba(0,0,0,0.025)); }
.parties-family-upper.pg-path { grid-area: family; font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 600; letter-spacing: 0.02em; color: var(--color-text); }
.parties-sep.pg-path { grid-area: sep; color: var(--color-text-muted, #aaa); font-weight: 300; }
.parties-list-two-col.pg-path .parties-item-two-col.pg-path > a.pg-path { grid-area: name; }
.parties-list-two-col.pg-path .parties-item-two-col.pg-path > .role.pg-path { grid-area: role; color: var(--color-text-muted, #555); font-size: 0.95rem; }
/* Step-0517 + step-0518: /parties/ combined mingled view */
.parties-legend.pg-path { display: flex; gap: 1.25rem; flex-wrap: wrap; margin: 0 0 1rem; font-size: 0.95rem; color: var(--color-text-muted, #555); }
.parties-legend-item.pg-path { display: inline-flex; align-items: center; gap: 0.4rem; }
.parties-legend-swatch.pg-path { display: inline-block; width: 1rem; height: 1rem; border: 1px solid var(--color-nav-border, #ccc); border-radius: 0.15rem; }
.parties-list-mingled.pg-path .parties-item.pg-path { padding: 0.5rem 0.5rem; border-bottom: 1px solid var(--color-nav-border, #eee); }
/* Light green for natural persons (clearly distinct from light purple legal entities) */
.parties-row-person.pg-path { background-color: var(--color-row-person, rgba(124, 197, 118, 0.20)); }
.parties-row-legal.pg-path { background-color: var(--color-row-legal, rgba(180, 110, 180, 0.13)); }
/* DEAD-AS-AUTHORED: [data-theme="dark"].pg-path .parties-row-person.pg-path { background-color: rgba(124, 197, 118, 0.20); } */
/* DEAD-AS-AUTHORED: [data-theme="dark"].pg-path .parties-row-legal.pg-path { background-color: rgba(180, 110, 180, 0.22); } */
/* Party-detail page */
.parties-detail.pg-path .party-role.pg-path { margin: 0.25em 0 0.5em; color: var(--color-text-muted, #555); font-size: 1.05rem; }
.parties-detail.pg-path .party-url.pg-path { margin: 0 0 1.5em; font-size: 0.95rem; }
.parties-detail.pg-path .party-url.pg-path a.pg-path { word-break: break-all; }
.parties-detail.pg-path .party-body.pg-path { margin-bottom: 2rem; line-height: 1.7; }
.party-cross-links.pg-path { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--color-nav-border, #eee); font-size: 0.95rem; }
.party-cross-links.pg-path p.pg-path { margin: 0.3rem 0; }
.party-emails.pg-path { margin: 1.5rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--color-nav-border, #eee); }
.party-emails.pg-path h2.pg-path { font-size: 1.1rem; font-weight: 600; margin: 0 0 0.5em; }
.party-emails-list.pg-path { list-style: none; padding: 0; margin: 0; }
.party-emails-item.pg-path { padding: 0.4rem 0; border-bottom: 1px solid var(--color-nav-border, #f0f0f0); }
.party-emails-item.pg-path code.pg-path { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.95em; }
.party-emails-label.pg-path { color: var(--color-text-muted, #666); font-size: 0.9rem; }
.party-emails-context.pg-path { color: var(--color-text-muted, #888); font-size: 0.85rem; font-style: italic; margin: 0.2rem 0 0; }
/* Step-0531 — errata hub list + detail */
.errata-list.pg-path { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--color-nav-border, #eee); }
.errata-list-item.pg-path { padding: 1rem 0; border-bottom: 1px solid var(--color-nav-border, #eee); }
.errata-list-date.pg-path { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.95rem; color: var(--color-text-muted, #666); }
.errata-list-sep.pg-path { color: var(--color-text-muted, #aaa); }
.errata-list-link.pg-path { font-weight: 600; }
.errata-list-summary.pg-path { margin: 0.4rem 0 0; color: var(--color-text-muted, #555); font-size: 0.95rem; line-height: 1.6; }
.errata-detail-back.pg-path { font-size: 0.9rem; margin: 0 0 0.5rem; }
.errata-detail-back.pg-path a.pg-path { color: var(--color-link); }
.errata-detail-date.pg-path { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.95rem; color: var(--color-text-muted, #666); margin: 0 0 0.25rem; }
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path { margin: 1.5rem auto; max-width: 425px; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path a.image-zoom-link.pg-path { display: block; cursor: zoom-in; text-decoration: none; border: none; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path a.image-zoom-link.pg-path:hover img.pg-path, .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path a.image-zoom-link.pg-path:hover picture.pg-path img.pg-path { box-shadow: 0 4px 16px rgba(0,0,0,0.16); transition: box-shadow 0.15s; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path img.pg-path, .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path picture.pg-path img.pg-path { max-width: 425px; margin: 0 auto; display: block; box-shadow: 0 2px 8px rgba(0,0,0,0.08); border-radius: 4px; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path figcaption.pg-path { margin: 0; padding: 0; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path figcaption.pg-path a.pg-path { display: block; text-align: center; margin-top: 0.2rem; font-size: 0.85rem; color: var(--color-text-muted, #666); font-style: italic; text-decoration: none; cursor: zoom-in; } */
/* DEAD-AS-AUTHORED: .errata-detail.pg-path .prose.pg-path figure.errata-figure.pg-path figcaption.pg-path a.pg-path:hover { color: var(--color-link, #2563eb); text-decoration: underline; } */
.empty-note.pg-path { padding: 1rem; background-color: rgba(0,0,0,0.03); border-left: 3px solid var(--color-link, #2563eb); margin: 1.5rem 0; color: var(--color-text-muted, #555); }

/* ===== pg-tags  <-  engine/src/pages/tags/[...tagsIndex].astro ===== */
.page-container.pg-tags { /* Match Hugo card layout: ~56rem content area, white card on gray page bg. */ max-width: 56rem; margin: 3rem auto; padding: 2rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
.page-container.pg-tags h1.pg-tags { margin-bottom: 0.8889em; font-size: 2.25rem; font-weight: 800; line-height: 1.1111; }
.tag-cloud.pg-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tag-pill.pg-tags { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.3rem 0.75rem; background: var(--color-bg); border: 1px solid var(--color-nav-border); border-radius: 9999px; font-size: 0.85rem; color: var(--color-text); text-decoration: none; transition: background-color 0.15s, border-color 0.15s; }
.tag-pill.pg-tags:hover { background: var(--color-nav-border); text-decoration: none; }
.tag-count.pg-tags { font-size: 0.75rem; opacity: 0.6; }
/* DEAD-AS-AUTHORED: [data-theme="dark"].pg-tags .tag-pill.pg-tags { background: #1c1c1e; } */
/* DEAD-AS-AUTHORED: [data-theme="dark"].pg-tags .tag-pill.pg-tags:hover { background: #333; } */

/* ===== pg-tag  <-  engine/src/pages/tags/[tag].astro ===== */
.page-container.pg-tag { /* Match Hugo card layout: ~56rem content area, white card on gray page bg. */ max-width: 56rem; margin: 3rem auto; padding: 2rem 1.5rem; background-color: var(--color-content-bg); border-radius: 0.25rem; }
.page-container.pg-tag h1.pg-tag { margin-bottom: 0.8889em; font-size: 2.25rem; font-weight: 800; line-height: 1.1111; }
.tag-count.pg-tag { margin-bottom: 1.5rem; font-size: 0.9rem; opacity: 0.6; }
.tag-entries.pg-tag { border-top: 1px solid var(--color-nav-border); }
.entry-card.pg-tag { padding: 1.5rem 0; border-bottom: 1px solid var(--color-nav-border); }
.card-inner.pg-tag { display: flex; flex-direction: column-reverse; }
.card-inner[data-has-image].pg-tag { flex-direction: row; gap: 2rem; }
.card-text.pg-tag { flex: 1; }
.card-title-link.pg-tag { text-decoration: none; color: var(--color-text); }
.card-title-link.pg-tag:hover { color: var(--color-link-hover); text-decoration: none; }
.card-title-link.pg-tag h3.pg-tag { margin: 0 0 0.5rem 0; font-size: 1.25rem; font-weight: 700; line-height: 1.4; }
.card-desc.pg-tag { margin: 0 0 0.5rem 0; line-height: 1.75; }
.card-read-more.pg-tag { margin: 0 0 0.75rem 0; }
.card-meta.pg-tag { display: flex; gap: 1.25rem; font-size: 0.875rem; opacity: 0.6; }
.card-image.pg-tag { flex-shrink: 0; width: 33.333%; }
.card-image.pg-tag img.pg-tag { width: 100%; height: auto; border-radius: 4px; display: block; }
@media (max-width: 768px) {
  .card-inner[data-has-image].pg-tag { flex-direction: column-reverse; }
  .card-image.pg-tag { width: 100%; margin-bottom: 1rem; }
}


/* ===== original-text  <-  ui-kit/components/OriginalText.astro ===== */
/* Decision #182 (Vincent Le Corre, 2026-09-13): the original-language passage
   published as a COLLAPSED block -- folded by default, one click to unfold,
   "so that I can quickly see the French version if necessary". Authored
   de-scoped from the start (lane S convention: one namespace class, stamped in
   the template on exactly the elements a scoped block would have carried),
   so it needs no [data-astro-cid-HASH] -> .namespace translation later. Only
   the tokens the rest of this file already uses; no new colour is invented. */
details.original-text { margin: 1rem 0; border-left: 2px solid var(--color-nav-border); padding-left: 0.75rem; }
summary.original-text { cursor: pointer; font-size: 0.875rem; opacity: 0.6; list-style-position: outside; }
summary.original-text:hover { opacity: 0.9; }
details.original-text[open] summary.original-text { margin-bottom: 0.5rem; }
p.original-text { margin: 0; font-size: 0.9375rem; line-height: 1.75; opacity: 0.85; }

/* ===== display-note  <-  decision #183 (Vincent Le Corre, 2026-09-13) ===== */
/* The generated note at the bottom of an article body, disclosing the
   typographic substitutions the renderer made: « evidence shouldn't be
   modified ... if we have to display the evidence and it makes no difference
   whether it's straight quote or curly quote, it's better to use curly quote
   and we write a note at the bottom of the page of what was
   touched/modified/adjusted ». Emitted IDENTICALLY by both engines, so the
   markup is fixed -- an <aside class="display-note"> holding one <p> with no
   class of its own -- and the paragraph is reached as a descendant. Quiet by
   design: it is a disclosure, not a warning, and must not compete with the
   record above it. Only tokens this file already uses; no new colour. */
aside.display-note { margin: 2.5rem 0 0 0; padding-top: 0.75rem; border-top: 1px solid var(--color-nav-border); }
aside.display-note p { margin: 0; font-size: 0.8125rem; line-height: 1.7; opacity: 0.55; }
