/* docs.dils.co.il — one stylesheet for the reference, the entry page and the
   status pages. Every value is a token copied from dils-connect-flow-ddda9ccb
   public/assets/tekuna-tokens.css (spec: docs/TEKUNA-DESIGN-SYSTEM.md). Do not
   invent values here; add a token upstream first.
   Canon rules applied (design system §3, §6, §10, §11):
   - ink ground, the same sky as dils.co.il, nothing painted between sky and text;
   - one metal (gilt) heading per page, section headings solid;
   - rows and code sit on gold hairlines, no cards, no framed text blocks;
   - buttons are type (no fill, no frame), underlined on hover, as on the site;
   - elevation only on interactive elements; logical properties only. */

@font-face{font-family:'Frank Ruhl Libre';font-weight:700;font-display:swap;src:url('/fonts/FrankRuhlLibre-Bold-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:'Frank Ruhl Libre';font-weight:900;font-display:swap;src:url('/fonts/FrankRuhlLibre-Black-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:'Frank Ruhl Libre';font-weight:700;font-display:swap;src:url('/fonts/FrankRuhlLibre-Bold-hebrew.woff2') format('woff2');unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:'Frank Ruhl Libre';font-weight:900;font-display:swap;src:url('/fonts/FrankRuhlLibre-Black-hebrew.woff2') format('woff2');unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:'Assistant';font-weight:400;font-display:swap;src:url('/fonts/Assistant-Regular-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:'Assistant';font-weight:600;font-display:swap;src:url('/fonts/Assistant-SemiBold-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:'Assistant';font-weight:700;font-display:swap;src:url('/fonts/Assistant-Bold-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:'Assistant';font-weight:400;font-display:swap;src:url('/fonts/Assistant-Regular-hebrew.woff2') format('woff2');unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:'Assistant';font-weight:600;font-display:swap;src:url('/fonts/Assistant-SemiBold-hebrew.woff2') format('woff2');unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:'Assistant';font-weight:700;font-display:swap;src:url('/fonts/Assistant-Bold-hebrew.woff2') format('woff2');unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:'JetBrains Mono';font-weight:400;font-display:swap;src:url('/fonts/JetBrainsMono-Regular.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-weight:500;font-display:swap;src:url('/fonts/JetBrainsMono-Medium.woff2') format('woff2')}

:root{
  --tk-ink-950:oklch(0.13 0.016 258);
  --tk-ink-900:oklch(0.17 0.019 258);
  --tk-ink-800:oklch(0.22 0.021 258);
  --tk-ink-700:oklch(0.28 0.022 258);
  --tk-brass-300:oklch(0.845 0.072 76);
  --tk-brass-500:oklch(0.700 0.106 71);
  --tk-gilt-900:oklch(0.575 0.070 79);
  --tk-gilt-700:oklch(0.677 0.081 83);
  --tk-gilt-300:oklch(0.865 0.087 93);
  --tk-gilt-100:oklch(0.927 0.080 98);
  --tk-gilt-rule:oklch(0.805 0.053 87);
  --tk-metal-glow:oklch(0.700 0.110 74 / 0.3);
  --tk-gilt-gradient:linear-gradient(115deg,var(--tk-gilt-900) 0%,var(--tk-gilt-300) 22%,var(--tk-gilt-100) 38%,var(--tk-gilt-300) 52%,var(--tk-gilt-700) 76%,var(--tk-gilt-900) 100%);
  --tk-metal-sheen-size:230% 100%;
  --tk-metal-sheen-duration:7s;
  --tk-nebula-teal-deep:oklch(0.429 0.052 205);
  --tk-nebula-rose-deep:oklch(0.340 0.079 344);
  --tk-verdigris-200:oklch(0.880 0.045 176);
  --tk-warn:oklch(0.760 0.130 68);
  --tk-danger-300:oklch(0.640 0.130 27);
  --tk-text-on-ink:oklch(0.965 0.004 92);
  --tk-text-on-ink-muted:oklch(0.760 0.010 258);
  --tk-font-display:'Frank Ruhl Libre',Georgia,'Times New Roman',serif;
  --tk-font-body:'Assistant',system-ui,-apple-system,sans-serif;
  --tk-font-data:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  --tk-text-xs:clamp(0.75rem,0.72rem + 0.15vw,0.8125rem);
  --tk-text-sm:clamp(0.875rem,0.85rem + 0.15vw,0.9375rem);
  --tk-text-base:clamp(1rem,0.96rem + 0.2vw,1.0625rem);
  --tk-text-lg:clamp(1.25rem,1.15rem + 0.5vw,1.5rem);
  --tk-text-xl:clamp(1.75rem,1.5rem + 1.2vw,2.5rem);
  --tk-text-2xl:clamp(2.25rem,1.8rem + 2.2vw,4rem);
  --tk-leading-body:1.65;
  --tk-measure:68ch;
  --tk-elev-2:0 1px 0 0 oklch(1 0 0 / .055) inset,0 4px 12px -2px oklch(0 0 0 / .50);
  --tk-radius-sm:3px;
  --tk-radius-md:6px;
  --tk-ease:cubic-bezier(.2,.7,.3,1);
  --tk-dur-fast:120ms;
  --tk-dur-base:220ms;
  --tk-dur-slow:640ms;
  --tk-stagger:60ms;
  /* a gold hairline: the wordmark's own rule, dimmed so rows read as a ledger */
  --rule:color-mix(in oklch,var(--tk-gilt-rule) 28%,transparent);
  --rule-strong:color-mix(in oklch,var(--tk-gilt-rule) 55%,transparent);
  --leading-display:1.35;
}
:root:lang(en){--leading-display:1.2}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;
  color:var(--tk-text-on-ink);font-family:var(--tk-font-body);font-size:var(--tk-text-base);
  line-height:var(--tk-leading-body);
  /* the sky of dils.co.il without the 3D scene: ink ground, two nebula veils
     at the far edges (atmosphere only, never behind a line of text) */
  background:
    radial-gradient(60vmax 40vmax at 100% -10%,color-mix(in oklch,var(--tk-nebula-teal-deep) 30%,transparent),transparent 70%),
    radial-gradient(50vmax 36vmax at 0% 110%,color-mix(in oklch,var(--tk-nebula-rose-deep) 26%,transparent),transparent 70%),
    var(--tk-ink-950);
  background-attachment:fixed;
  text-shadow:0 1px 3px oklch(0 0 0 / .6);
}
html[data-lang="he"] .only-en,html[data-lang="en"] .only-he{display:none!important}

a{color:var(--tk-brass-300);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--tk-gilt-100)}
:focus-visible{outline:2px solid var(--tk-brass-500);outline-offset:2px;border-radius:var(--tk-radius-sm)}
.skip{position:absolute;inset-inline-start:-9999px;top:8px}
.skip:focus{inset-inline-start:12px;z-index:60;background:var(--tk-ink-900);padding:10px 14px}

/* ── header: the site's nav, not a new one ──────────────────────────────── */
.site-nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;
  padding:10px clamp(16px,4vw,48px);
  background:linear-gradient(to bottom,color-mix(in oklch,var(--tk-ink-950) 92%,transparent),color-mix(in oklch,var(--tk-ink-950) 70%,transparent));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--tk-text-on-ink);min-height:44px}
.brand img{width:40px;height:40px;border-radius:50%;display:block;transition:box-shadow var(--tk-dur-base) var(--tk-ease)}
.brand:hover img,.brand:focus-visible img{box-shadow:0 0 18px -2px color-mix(in oklch,var(--tk-brass-500) 55%,transparent)}
.brand-word{font-family:var(--tk-font-display);font-weight:700;font-size:1.12rem;letter-spacing:.02em}
.brand-sub{font-family:var(--tk-font-data);font-size:var(--tk-text-xs);color:var(--tk-text-on-ink-muted);letter-spacing:.08em;text-transform:uppercase}
.site-nav .sp{flex:1}
@media (max-width:640px){.brand-sub{display:none}.site-nav{gap:8px}}

/* type buttons — the site's own: no fill, no frame, underline grows on hover */
.btn{font-family:var(--tk-font-body);font-weight:700;font-size:1.02rem;min-height:44px;padding:10px 8px;
  display:inline-flex;align-items:center;gap:7px;position:relative;text-decoration:none;border:0;background:transparent;
  cursor:pointer;transition:color var(--tk-dur-base) var(--tk-ease);white-space:nowrap}
.btn::after{content:'';position:absolute;inset-inline:8px;bottom:6px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform 260ms var(--tk-ease)}
html[dir="ltr"] .btn::after{transform-origin:left}
.btn:hover::after,.btn:focus-visible::after{transform:scaleX(1)}
.btn-brass{color:var(--tk-brass-300)}
.btn-brass:hover{color:var(--tk-gilt-100)}
.btn-line{color:var(--tk-text-on-ink)}
.btn-line:hover{color:var(--tk-brass-300)}
.lang{font-family:var(--tk-font-data);font-size:.82rem;letter-spacing:.06em;font-weight:500}
.arrow{display:inline-block}
html[dir="ltr"] .arrow{transform:scaleX(-1)}

/* ── the one metal heading per page ─────────────────────────────────────── */
.metal{margin:0;font-family:var(--tk-font-display);font-weight:900;line-height:var(--leading-display);
  font-size:var(--tk-text-2xl);text-wrap:balance;
  background:var(--tk-gilt-gradient);background-size:var(--tk-metal-sheen-size);
  -webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;
  filter:drop-shadow(0 2px 1px oklch(0 0 0 / .7)) drop-shadow(0 0 24px var(--tk-metal-glow));
  animation:sheen var(--tk-metal-sheen-duration) ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:0% 0}50%{background-position:100% 0}}

.eyebrow{margin:0;font-family:var(--tk-font-data);font-size:var(--tk-text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--tk-brass-300)}

/* ── entry / status pages ───────────────────────────────────────────────── */
.gate{min-height:calc(100vh - 64px);display:grid;align-content:center;padding:clamp(32px,8vh,96px) clamp(20px,6vw,64px)}
.gate-in{max-width:62ch;display:grid;gap:24px}
.gate .lede{margin:0;display:grid;gap:10px;padding:0;list-style:none;font-size:var(--tk-text-lg);line-height:1.5;color:var(--tk-text-on-ink)}
.gate .lede li{padding-block:12px;border-block-end:1px solid var(--rule)}
.gate .lede li:first-child{border-block-start:1px solid var(--rule)}
.gate-body{display:grid;gap:12px}
.gate p{margin:0;max-width:var(--tk-measure);color:var(--tk-text-on-ink-muted)}
.gate .actions{display:flex;flex-wrap:wrap;gap:4px 24px;margin-inline-start:-8px}
.gate .fine{font-size:var(--tk-text-sm)}
.gate .state{font-family:var(--tk-font-data);font-size:var(--tk-text-xs);letter-spacing:.08em;text-transform:uppercase}
.state-warn{color:var(--tk-warn)}
.reveal>*{opacity:0;transform:translateY(10px);animation:rise var(--tk-dur-slow) var(--tk-ease) forwards}
.reveal>*:nth-child(2){animation-delay:calc(var(--tk-stagger)*1)}
.reveal>*:nth-child(3){animation-delay:calc(var(--tk-stagger)*2)}
.reveal>*:nth-child(4){animation-delay:calc(var(--tk-stagger)*3)}
.reveal>*:nth-child(5){animation-delay:calc(var(--tk-stagger)*4)}
.reveal>*:nth-child(6){animation-delay:calc(var(--tk-stagger)*5)}
@keyframes rise{to{opacity:1;transform:none}}

/* ── reference layout ───────────────────────────────────────────────────── */
.ref{display:grid;gap:clamp(24px,4vw,56px);padding:clamp(20px,4vw,48px);padding-block-start:clamp(24px,5vh,56px);max-width:1280px;margin-inline:auto}
@media (min-width:1100px){.ref{grid-template-columns:240px minmax(0,1fr)}}
.toc{font-size:var(--tk-text-sm)}
.toc ol{list-style:none;margin:0;padding:0;display:grid}
.toc li a{display:block;padding:8px 0;min-height:44px;color:var(--tk-text-on-ink-muted);text-decoration:none;border-block-end:1px solid var(--rule)}
.toc li a:hover{color:var(--tk-brass-300)}
.toc .grp{margin:18px 0 4px;font-family:var(--tk-font-data);font-size:var(--tk-text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--tk-brass-300)}
.toc details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--tk-text-on-ink);border-block:1px solid var(--rule)}
@media (min-width:1100px){
  .toc>details{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}
  .toc details[open] summary{display:none}
}
.doc{min-width:0;max-width:84ch}
.doc>header{display:grid;gap:18px;padding-block-end:32px}
.doc>header p{margin:0;max-width:var(--tk-measure);color:var(--tk-text-on-ink-muted);font-size:var(--tk-text-lg);line-height:1.5}
.doc section{padding-block:40px 8px;border-block-start:1px solid var(--rule-strong);scroll-margin-top:80px}
.doc h2{margin:0 0 16px;font-family:var(--tk-font-display);font-weight:700;font-size:var(--tk-text-xl);line-height:var(--leading-display);color:var(--tk-text-on-ink)}
.doc h3{margin:28px 0 10px;font-size:var(--tk-text-lg);font-weight:600;line-height:1.35}
.doc p,.doc li{max-width:var(--tk-measure)}
.doc p{margin:0 0 14px}
.doc ul,.doc ol{margin:0 0 14px;padding-inline-start:1.2em}
.doc li{margin-block:4px}
.muted{color:var(--tk-text-on-ink-muted)}

/* endpoint block: method + path is the heading, rows under it */
.ep{margin-block:30px 10px;scroll-margin-top:80px}
.ep h3{margin:0 0 8px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;direction:ltr;unicode-bidi:isolate;
  justify-content:flex-end;font-family:var(--tk-font-data);font-size:var(--tk-text-base);font-weight:500}
html[dir="ltr"] .ep h3{justify-content:flex-start}
.m{font-weight:500;letter-spacing:.06em;color:var(--tk-brass-300)}
.p{color:var(--tk-text-on-ink);word-break:break-all}
.ep .meta{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0 0 12px;font-size:var(--tk-text-sm);color:var(--tk-text-on-ink-muted)}
.ep .meta b{font-weight:600;color:var(--tk-text-on-ink)}

code,pre,kbd,.data{font-family:var(--tk-font-data);font-variant-numeric:tabular-nums}
:not(pre)>code{font-size:.9em;color:var(--tk-gilt-100);direction:ltr;unicode-bidi:isolate;overflow-wrap:anywhere}
pre{margin:0 0 16px;padding:14px 0;direction:ltr;text-align:left;overflow-x:auto;
  font-size:var(--tk-text-sm);line-height:1.6;color:var(--tk-text-on-ink);text-shadow:none;
  border-block:1px solid var(--rule);tab-size:2}
pre .lbl{display:block;margin-bottom:6px;font-size:var(--tk-text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--tk-brass-300)}
pre .c{color:var(--tk-text-on-ink-muted)}

/* tables: ledger rows on hairlines, numbers LTR */
.tw{overflow-x:auto;margin:0 0 18px}
table{width:100%;border-collapse:collapse;font-size:var(--tk-text-sm)}
th{text-align:start;font-family:var(--tk-font-data);font-weight:500;font-size:var(--tk-text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--tk-brass-300);padding:8px 10px 8px 0;border-block-end:1px solid var(--rule-strong)}
html[dir="rtl"] th{padding:8px 0 8px 10px}
td{padding:9px 10px 9px 0;border-block-end:1px solid var(--rule);vertical-align:top}
html[dir="rtl"] td{padding:9px 0 9px 10px}
td code{white-space:nowrap}
.req{font-family:var(--tk-font-data);font-size:var(--tk-text-xs);color:var(--tk-warn)}
.opt{font-family:var(--tk-font-data);font-size:var(--tk-text-xs);color:var(--tk-text-on-ink-muted)}

.note{margin:0 0 16px;padding-block:10px;border-block:1px solid var(--rule);max-width:var(--tk-measure)}
.note strong{color:var(--tk-brass-300);font-weight:600}

.site-foot{padding:32px clamp(20px,4vw,48px) 48px;border-block-start:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;font-size:var(--tk-text-sm);color:var(--tk-text-on-ink-muted)}
.site-foot a{color:var(--tk-text-on-ink-muted);min-height:44px;display:inline-flex;align-items:center}
.site-foot a:hover{color:var(--tk-brass-300)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .metal{animation:none}
  .reveal>*{animation:none;opacity:1;transform:none}
  .btn::after{transition:none}
}
@media print{
  body{background:#fff;color:#111;text-shadow:none}
  .site-nav,.toc,.site-foot{display:none}
  .metal{color:#111;background:none;filter:none}
}

/* Scrollbars on the dark ground: thin, in the ink/gilt tokens — the browser
   default (a bright white track) sat in the middle of the page next to the
   sticky contents list (Chrome check 30.09.2026). */
html, .toc>details, pre, .tw{scrollbar-width:thin;scrollbar-color:var(--tk-gilt-700) transparent}
.toc>details::-webkit-scrollbar, pre::-webkit-scrollbar, .tw::-webkit-scrollbar{width:6px;height:6px}
.toc>details::-webkit-scrollbar-track, pre::-webkit-scrollbar-track, .tw::-webkit-scrollbar-track{background:transparent}
.toc>details::-webkit-scrollbar-thumb, pre::-webkit-scrollbar-thumb, .tw::-webkit-scrollbar-thumb{background:var(--tk-gilt-700);border-radius:3px}
