/* Dönüştür.net KİNETİK tokens (SYNTHESIS §4.2, KARAR_R2 §5). Radii 0/2 px, 1 px hairlines, hard ink shadows. Loads first. */

/* fonts: TR-first core + Latin-1/Ext-A file fetched only for its code points */
@font-face {
  font-family: "Mona Sans";
  src: url("../fonts/mona-core.woff2") format("woff2");
  font-weight: 300 900; font-stretch: 100% 125%; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Mona Sans";
  src: url("../fonts/mona-ext.woff2") format("woff2");
  font-weight: 300 900; font-stretch: 100% 125%; font-style: normal; font-display: swap;
  unicode-range: U+00A1-00A8, U+00AA, U+00AC-00AF, U+00B1-00B6, U+00B8-00BA, U+00BC-00C1, U+00C3-00C6, U+00C8-00CD, U+00CF-00D5, U+00D8-00DA, U+00DD-00E1, U+00E3-00E6, U+00E8, U+00EA-00ED, U+00EF-00F0, U+00F2-00F5, U+00F7-00FA, U+00FD-011D, U+0120-012F, U+0132-015D, U+0160-017F, U+0218-021B, U+1E9E, U+201A, U+201E, U+2039-203A, U+20AC;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/jbmono-core.woff2") format("woff2");
  font-weight: 400 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/jbmono-ext.woff2") format("woff2");
  font-weight: 400 600; font-style: normal; font-display: swap;
  unicode-range: U+00A1-00A8, U+00AA, U+00AC-00AF, U+00B1-00B6, U+00B8-00BA, U+00BC-00C1, U+00C3-00C6, U+00C8-00CD, U+00CF-00D5, U+00D8-00DA, U+00DD-00E1, U+00E3-00E6, U+00E8, U+00EA-00ED, U+00EF-00F0, U+00F2-00F5, U+00F7-00FA, U+00FD-011D, U+0120-012F, U+0132-015D, U+0160-017F, U+0218-021B, U+1E9E, U+201A, U+201E, U+2039-203A, U+20AC;
}
@font-face {
  font-family: "Noto Sans Arabic";
  src: url("../fonts/noto-sans-arabic-var.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: optional;   /* 2026-09-26: was swap — a late swap reflowed the first-frame consent banner (CLS 0.19 on /ar); preloaded, so fast connections still get Noto */
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
/* metric-matched fallbacks (c1 _build/subset_fonts.py): no shift on swap */
@font-face {
  font-family: "Mona Fallback";
  src: local("Arial"), local("ArialMT");
  size-adjust: 103.5%; ascent-override: 105.3%; descent-override: 30.9%; line-gap-override: 0%;
}
@font-face {
  font-family: "Mona Wide Fallback";
  src: local("Arial Black"), local("Arial-Black");
  size-adjust: 104.7%; ascent-override: 104.1%; descent-override: 30.6%; line-gap-override: 0%;
}

:root {
  color-scheme: light;
  --paper: #F2F0EA;
  --paper-2: #E8E5DC;
  --paper-3: #DCD8CD;
  --ink: #0F0F0E;
  --ink-2: #56534C;      /* 6.73 paper, 5.39 paper-3 */
  --ink-3: #5F5C55;      /* 5.85 paper, 4.68 paper-3: smallest text colour */
  --on-ink-2: #A8A59C;   /* 7.79 on ink */
  --rule: rgba(15, 15, 14, .16);
  --rule-2: rgba(15, 15, 14, .07);
  --rule-inv: rgba(242, 240, 234, .18);
  --shadow: 4px 4px 0 var(--ink);
  --shadow-sm: 2px 2px 0 var(--ink);

  /* signal */
  --signal: #E53A24;         /* graphic + large text 3.71 */
  --signal-strong: #D42F18;  /* button fill, white 4.98 */
  --signal-ink: #C4290F;     /* small text 5.02 */
  --signal-lt: #FF5A3D;      /* on ink 6.19 */

  /* status only, never a family */
  --ok: #0B7A4E;             /* 4.72 */
  --ok-lt: #3FCB8E;

  /* families: fill / -ink text on paper / -lt on ink / -d display (≥3:1). Image = amber (1.93 on paper → marks carry --key) */
  --pdf: #E53A24; --pdf-ink: #C4290F; --pdf-lt: #FF5A3D; --pdf-d: #E53A24;
  --doc: #2B50E8; --doc-ink: #2343C8; --doc-lt: #6F8BFF; --doc-d: #2B50E8;
  --img: #E8A10A; --img-ink: #7F5300; --img-lt: #FFC24A; --img-d: #C47500;
  --aud: #7446F2; --aud-ink: #5F33D6; --aud-lt: #A688FF; --aud-d: #7446F2;
  --vid: #D6207A; --vid-ink: #B0145E; --vid-lt: #FF6BB0; --vid-d: #D6207A;
  --cad: #8C897F; --cad-ink: #5E5B53; --cad-lt: #B3B0A6; --cad-d: #5E5B53;

  --f-sans: "Mona Sans", "Mona Fallback", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --f-wide: "Mona Sans", "Mona Wide Fallback", "Mona Fallback", "Arial Black", sans-serif;
  --f-code: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --f-mono: var(--f-code);
  --t-hero: calc(100cqi / 4.93);
  --t-h1-tool: clamp(48px, 7.4vw, 118px);
  --t-d1: clamp(40px, 6.2vw, 104px);
  --t-h2: clamp(34px, 4.6vw, 72px);
  --t-h3: clamp(21px, 1.8vw, 26px);
  --t-row: clamp(22px, 2.3vw, 34px);
  --t-lead: clamp(17px, 1.39vw, 20px);
  --t-body: 17px;
  --t-sm: 15px;
  --t-meta: 14px;            /* facts, hints: never caps */
  --t-label: 12.5px;         /* mono caps: indices, legends */
  --t-mono: 12px;

  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px;
  --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px; --s-11: 192px;
  --g: clamp(16px, 2.78vw, 40px);
  --cg: clamp(12px, 1.39vw, 20px);
  --max: 1440px;
  --hh: 64px;

  --r-0: 0;
  --r-1: 2px;

  --e-out: cubic-bezier(.16, 1, .3, 1);
  --e-io: cubic-bezier(.76, 0, .24, 1);
  --e-snap: cubic-bezier(.7, 0, .2, 1);
  --e-spring: cubic-bezier(.34, 1.56, .64, 1);
  --d-1: 140ms; --d-2: 240ms; --d-3: 420ms; --d-4: 700ms;
}
@media (max-width: 1023.98px) { :root { --hh: 58px; } }
@media (max-height: 480px) { :root { --hh: 50px; } }   /* landscape phone / 200 % zoom: header + consent ≈ 40 % */
@media (max-width: 719.98px) { :root { --t-body: 16px; } }

/* ar: Noto Sans Arabic; mono = Mona tabular. ja: system CJK, Mona for Latin runs */
html[lang="ar"] {
  --f-sans: "Noto Sans Arabic", "Mona Sans", "Mona Fallback", system-ui, sans-serif;
  --f-wide: "Noto Sans Arabic", "Mona Sans", "Mona Wide Fallback", sans-serif;
  --f-mono: "Mona Sans", "Noto Sans Arabic", system-ui, sans-serif;
}
/* 2026-09-26 ja display kana/kanji (--f-wide + the section titles, 22 px and up): the heaviest LOCAL Japanese face, never a
   download, so they sit closer to Mona's 760–820 "PDF". macOS / iOS: Hiragino Sans W8, Linux / Android: Noto Sans
   CJK / JP Black. Windows tops out at Yu Gothic UI Bold: declared as a 400 face, so the browser's synthetic bold adds
   one notch. Japanese ranges only: Latin stays Mona Sans. */
@font-face {
  font-family: "DN JP Display";
  src: local("HiraginoSans-W8"), local("Hiragino Sans W8"), local("NotoSansCJKjp-Black"), local("Noto Sans CJK JP Black"), local("NotoSansJP-Black"), local("Noto Sans JP Black");
  font-weight: 700 900; font-style: normal;
  unicode-range: U+3000-30FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
@font-face {
  font-family: "DN JP Display Win";
  src: local("YuGothicUI-Bold"), local("Yu Gothic UI Bold"), local("YuGothic-Bold"), local("Yu Gothic Bold");
  font-weight: 400; font-style: normal;
  unicode-range: U+3000-30FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
html[lang="ja"] {
  --f-sans: "Mona Sans", "Hiragino Sans", "Yu Gothic UI", "Meiryo", "Noto Sans JP", system-ui, sans-serif;
  --f-wide: "Mona Sans", "DN JP Display", "DN JP Display Win", "Hiragino Sans", "Yu Gothic UI", "Meiryo", "Noto Sans JP", sans-serif;
  --f-mono: "Mona Sans", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  line-break: strict;
}
html[lang="ja"] .sec-title { font-family: var(--f-wide); }   /* 2026-09-26: same Mona Latin, the heavier display kana above */

/* [data-fam] → --c fill, --c-ink text, --c-lt on ink, --c-d display, --on text on fill, --key keyline */
[data-fam="pdf"] { --c: var(--pdf); --c-ink: var(--pdf-ink); --c-lt: var(--pdf-lt); --c-d: var(--pdf-d); --on: var(--ink); --key: transparent; }
[data-fam="doc"] { --c: var(--doc); --c-ink: var(--doc-ink); --c-lt: var(--doc-lt); --c-d: var(--doc-d); --on: #fff; --key: transparent; }
[data-fam="img"] { --c: var(--img); --c-ink: var(--img-ink); --c-lt: var(--img-lt); --c-d: var(--img-d); --on: var(--ink); --key: rgba(15, 15, 14, .55); }
[data-fam="aud"] { --c: var(--aud); --c-ink: var(--aud-ink); --c-lt: var(--aud-lt); --c-d: var(--aud-d); --on: #fff; --key: transparent; }
[data-fam="vid"] { --c: var(--vid); --c-ink: var(--vid-ink); --c-lt: var(--vid-lt); --c-d: var(--vid-d); --on: #fff; --key: transparent; }
[data-fam="cad"] { --c: var(--cad); --c-ink: var(--cad-ink); --c-lt: var(--cad-lt); --c-d: var(--cad-d); --on: var(--ink); --key: transparent; }
[data-fam="net"] { --c: var(--signal); --c-ink: var(--signal-ink); --c-lt: var(--signal-lt); --c-d: var(--signal); --on: var(--ink); --key: transparent; }

[hidden] { display: none !important; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--signal-strong); outline-offset: 3px; }
.inv :focus-visible, .inv:focus-visible { outline-color: var(--signal-lt); }

/* reduced motion = the static composition (boot.js mirrors it as html.is-reduced) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important;
  }
}
.is-still *, .is-still *::before, .is-still *::after { transition-duration: 0s !important; animation-duration: 0s !important; animation-delay: 0s !important; }
.is-paused .amb, .is-paused .amb * { animation-play-state: paused !important; }
