/* Taluma shared base (WD1-8, abgenommen 04.10.2026; LXF 05.10.2026): tokens, fonts and motion for the
   web app (/app/). The four Latin WOFF2 files stay the landing-page files. Further faces are unicode-range
   slices (SIL OFL, licences in /app/fonts/) and load only when the page uses those characters. */
/* LXF-FACES-START */
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0148, U+014A-017F, U+02C6, U+02DA, U+02DC, U+2007-200B, U+2010, U+2012-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2024-2026, U+2030, U+2032-2033, U+2039-203A, U+2044, U+2052, U+20AC, U+2190-2193; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-latn-b.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01B7, U+01C4-01DC, U+01E4-01EB, U+01EE-01EF, U+01FA-021B, U+021E-021F, U+022A-022D, U+0230-0233, U+0237; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-latn-vi.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+1E08-1E09, U+1E0C-1E0F, U+1E14-1E17, U+1E1C-1E1D, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2B, U+1E2E-1E2F, U+1E36-1E37, U+1E3A-1E3B, U+1E42-1E49, U+1E4C-1E53, U+1E5A-1E5B, U+1E5E-1E69, U+1E6C-1E6F, U+1E78-1E7B, U+1E80-1E85, U+1E8E-1E8F, U+1E92-1E93, U+1E97, U+1E9E, U+1EA0-1EF9; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-greek.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0374-0375, U+037A, U+037E, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03CF, U+03D1, U+03D5-03D7, U+03F0, U+1F00-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-cyrl.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-049D, U+04A0-04A5, U+04AA-04AB, U+04AE-04B3, U+04B6-04BB, U+04C0-04C2, U+04C9-04CC, U+04CF-04D9, U+04DC-04DF, U+04E2-04E9, U+04EE-04F9, U+051A-051D, U+0524-0525, U+2116; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya_italic.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0148, U+014A-017F, U+02C6, U+02DA, U+02DC, U+2007-200B, U+2010, U+2012-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2024-2026, U+2030, U+2032-2033, U+2039-203A, U+2044, U+2052, U+20AC, U+2190-2193; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-italic-latn-b.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01B7, U+01C4-01DC, U+01E4-01EB, U+01EE-01EF, U+01FA-021B, U+021E-021F, U+022A-022D, U+0230-0233, U+0237; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-italic-latn-vi.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+1E08-1E09, U+1E0C-1E0F, U+1E14-1E17, U+1E1C-1E1D, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2B, U+1E2E-1E2F, U+1E36-1E37, U+1E3A-1E3B, U+1E42-1E49, U+1E4C-1E53, U+1E5A-1E5B, U+1E5E-1E69, U+1E6C-1E6F, U+1E78-1E7B, U+1E80-1E85, U+1E8E-1E8F, U+1E92-1E93, U+1E97, U+1E9E, U+1EA0-1EF9; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-italic-greek.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0374-0375, U+037A, U+037E, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03CF, U+03D1, U+03D5-03D7, U+03F0, U+1F00-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-italic-cyrl.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-049D, U+04A0-04A5, U+04AA-04AB, U+04AE-04B3, U+04B6-04BB, U+04C0-04C2, U+04C9-04CC, U+04CF-04D9, U+04DC-04DF, U+04E2-04E9, U+04EE-04F9, U+051A-051D, U+0524-0525, U+2116; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya_sans_regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+000D, U+0020-007E, U+00A0-0148, U+014A-017E, U+02C6, U+02DA, U+02DC, U+2007-200B, U+2010, U+2012-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2024-2026, U+2030, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2190-2193; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-latn-b.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01C4-01DC, U+01E6-01E7, U+01EA-01EB, U+01FA-021B, U+022A-022D, U+0230-0233, U+0237; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-latn-vi.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+1E08-1E09, U+1E0C-1E0F, U+1E14-1E17, U+1E1C-1E1D, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2B, U+1E2E-1E2F, U+1E36-1E37, U+1E3A-1E3B, U+1E42-1E49, U+1E4C-1E53, U+1E5A-1E5B, U+1E5E-1E69, U+1E6C-1E6F, U+1E78-1E7B, U+1E80-1E85, U+1E8E-1E8F, U+1E92-1E93, U+1E97, U+1E9E, U+1EA0-1EF9; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-greek.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+0374-0375, U+037A, U+037E, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03CF, U+03D1, U+03D5-03D7, U+03F0, U+1F00-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-cyrl.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-049D, U+04A0-04A5, U+04AA-04AB, U+04AE-04B3, U+04B6-04BB, U+04C0-04C2, U+04CB-04CC, U+04CF-04D9, U+04DC-04DF, U+04E2-04E9, U+04EE-04F9, U+051A-051D, U+0524-0525, U+2116; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya_sans_medium.woff2") format("woff2"); font-style: normal; font-weight: 500 700; font-display: swap; unicode-range: U+000D, U+0020-007E, U+00A0-0148, U+014A-017E, U+02C6, U+02DA, U+02DC, U+2007-200B, U+2010, U+2012-2015, U+2018-201A, U+201C-201E, U+2020-2022, U+2024-2026, U+2030, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2190-2193; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-medium-latn-b.woff2") format("woff2"); font-style: normal; font-weight: 500 700; font-display: swap; unicode-range: U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01C4-01DC, U+01E6-01E7, U+01EA-01EB, U+01FA-021B, U+022A-022D, U+0230-0233, U+0237; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-medium-latn-vi.woff2") format("woff2"); font-style: normal; font-weight: 500 700; font-display: swap; unicode-range: U+1E08-1E09, U+1E0C-1E0F, U+1E14-1E17, U+1E1C-1E1D, U+1E20-1E21, U+1E24-1E25, U+1E2A-1E2B, U+1E2E-1E2F, U+1E36-1E37, U+1E3A-1E3B, U+1E42-1E49, U+1E4C-1E53, U+1E5A-1E5B, U+1E5E-1E69, U+1E6C-1E6F, U+1E78-1E7B, U+1E80-1E85, U+1E8E-1E8F, U+1E92-1E93, U+1E97, U+1E9E, U+1EA0-1EF9; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-medium-greek.woff2") format("woff2"); font-style: normal; font-weight: 500 700; font-display: swap; unicode-range: U+0374-0375, U+037A, U+037E, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03CF, U+03D1, U+03D5-03D7, U+03F0, U+1F00-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE; }
@font-face { font-family: "Alegreya Sans"; src: url("fonts/alegreya-sans-medium-cyrl.woff2") format("woff2"); font-style: normal; font-weight: 500 700; font-display: swap; unicode-range: U+0400-045F, U+0462-0463, U+046A-046B, U+0472-0475, U+0490-049D, U+04A0-04A5, U+04AA-04AB, U+04AE-04B3, U+04B6-04BB, U+04C0-04C2, U+04CB-04CC, U+04CF-04D9, U+04DC-04DF, U+04E2-04E9, U+04EE-04F9, U+051A-051D, U+0524-0525, U+2116; }
@font-face { font-family: "Noto Serif Devanagari"; src: url("fonts/noto-serif-devanagari.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0900-097F, U+200C-200D, U+25CC, U+A8E0-A8FF; }
@font-face { font-family: "Noto Serif Devanagari"; src: url("fonts/noto-serif-devanagari.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0900-097F, U+200C-200D, U+25CC, U+A8E0-A8FF; }
@font-face { font-family: "Noto Serif Thai"; src: url("fonts/noto-serif-thai.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0E01-0E3A, U+0E3F-0E5B, U+200C-200D; }
@font-face { font-family: "Noto Serif Thai"; src: url("fonts/noto-serif-thai.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0E01-0E3A, U+0E3F-0E5B, U+200C-200D; }
@font-face { font-family: "Noto Naskh Arabic"; src: url("fonts/noto-naskh-arabic.woff2") format("woff2"); font-style: normal; font-weight: 400 800; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08FF, U+200C-200F; }
@font-face { font-family: "Noto Naskh Arabic"; src: url("fonts/noto-naskh-arabic.woff2") format("woff2"); font-style: italic; font-weight: 400 800; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08FF, U+200C-200F; }
@font-face { font-family: "Noto Sans KR"; src: url("fonts/noto-sans-kr-hangul.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+1100-11FF, U+302E-302F, U+3130-318F, U+A960-A97F, U+AC00-D7FF; }
/* LXF-FACES-END */

:root {
  --tl-ink: #06050b; --tl-ink-2: #0d0b18; --tl-ink-3: #17142a; --tl-ink-4: #221c3e;
  --tl-pearl: #f4f0fb; --tl-mist: #cdc6e0; --tl-dim: #b8b1cf;
  --tl-aqua: #8ae8dc; --tl-violet: #b39bff; --tl-rose: #f5b3cd; --tl-amber: #f7d9a0;
  --tl-glass: rgba(255, 255, 255, 0.055); --tl-glass-2: rgba(255, 255, 255, 0.08);
  --tl-glass-edge: rgba(255, 255, 255, 0.14); --tl-glass-hi: rgba(255, 255, 255, 0.26);
  --tl-prism: linear-gradient(115deg, #8ae8dc 0%, #b39bff 38%, #f5b3cd 70%, #f7d9a0 100%);
  --tl-serif: "Alegreya", "Noto Serif Devanagari", "Noto Serif Thai", "Noto Naskh Arabic", "Noto Sans KR", Georgia, serif;
  --tl-sans: "Alegreya Sans", "Noto Serif Devanagari", "Noto Serif Thai", "Noto Naskh Arabic", "Noto Sans KR", system-ui, sans-serif;
  --tl-ease: cubic-bezier(0.22, 0.8, 0.3, 1);
  --tl-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  /* Pointer depth (-1 … 1), written by script on fine pointers only; stays 0 with reduced motion. */
  --px: 0; --py: 0;
}

/* Overline in aqua capitals (landing page .eyebrow, web app .eyebrow). */
.eyebrow { display: block; margin: 0 0 0.55rem; font: 500 0.8rem/1.2 var(--tl-sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--tl-aqua); }

/* Word-by-word heading reveal and scroll reveal: hidden only while script marks them, never without it. */
.split .w { display: inline-block; opacity: 0; translate: 0 0.35em; transition: opacity 0.7s var(--tl-ease), translate 0.7s var(--tl-ease); transition-delay: calc(var(--i, 0) * 70ms); }
.split.in .w { opacity: 1; translate: 0 0; }
.reveal { opacity: 0; translate: 0 22px; transition: opacity 0.9s var(--tl-ease), translate 0.9s var(--tl-ease); transition-delay: var(--d, 0ms); }
.reveal.in { opacity: 1; translate: 0 0; }

/* Soft cross-fade + rise between screens (View Transitions; browsers without support switch instantly). */
::view-transition-old(root) { animation: tl-vt-out 0.3s var(--tl-ease-soft) both; }
::view-transition-new(root) { animation: tl-vt-in 0.5s var(--tl-ease) both; }
@keyframes tl-vt-out { to { opacity: 0; } }
@keyframes tl-vt-in { from { opacity: 0; transform: translateY(12px); } }

/* Reduced motion: system setting (no script yet) or html[data-motion="reduced"] (system OR switch in Ich). */
@media (prefers-reduced-motion: reduce) {
  .split .w, .reveal { opacity: 1; translate: none; transition: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
html[data-motion="reduced"] .split .w, html[data-motion="reduced"] .reveal { opacity: 1; translate: none; transition: none; }
html[data-motion="reduced"]::view-transition-old(root), html[data-motion="reduced"]::view-transition-new(root) { animation: none; }
