/* Shared by the home and the content pages: fonts, colour tokens (light and dark), header and footer. */
@font-face{font-family:Archivo;src:url(/fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#f1f0eb;--bg-alt:#dde6e3;--ink:#0f2629;--muted:#43595c;--faint:rgba(15,38,41,.36);--line:rgba(15,38,41,.14);--line-2:rgba(15,38,41,.32);
  --orange:#ec6f1f;--orange-ink:#ad4c0e;--logo-t:#286269;--logo-o:#ec6f1f;
  --gut:clamp(16px,5vw,72px);--safe:0px;--mono:"Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a1c1f;--bg-alt:#020b0c;--ink:#e3ebe9;--muted:#a3b8b7;--faint:rgba(227,235,233,.32);--line:rgba(227,235,233,.12);--line-2:rgba(227,235,233,.3);
  --orange-ink:#f2873f;--logo-t:#7db9be;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a1c1f;--bg-alt:#020b0c;--ink:#e3ebe9;--muted:#a3b8b7;--faint:rgba(227,235,233,.32);--line:rgba(227,235,233,.12);--line-2:rgba(227,235,233,.3);
  --orange-ink:#f2873f;--logo-t:#7db9be;color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.125rem/1.55 Archivo,system-ui,sans-serif;font-stretch:100%;overflow-x:hidden}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--orange)}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}
h1,h2,h3{margin:0;font-weight:560;letter-spacing:-.02em}
p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px var(--gut)}
.brand{display:block;line-height:0}
.brand svg{height:32px;width:auto}
.brand svg,.piece svg{fill-rule:evenodd}
.brand .t,.piece .t{fill:var(--logo-t)}
.brand .o,.piece .o{fill:var(--logo-o)}
.top nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,36px);font-size:1.05rem}
.top nav a{text-decoration:none}
.top nav a:hover{text-decoration:underline;text-decoration-color:var(--orange)}
.top nav a.cta{padding:8px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:540}
.top nav a.cta:hover{text-decoration:none;background:color-mix(in oklab,var(--ink) 85%,var(--orange))}
.top nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--orange)}
.lang{font:500 .95rem var(--mono);padding:5px 10px;border:1px solid var(--line-2);border-radius:999px}
.top nav a.lang:hover{text-decoration:none;border-color:var(--orange)}
.theme{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line-2);border-radius:50%;background:none;color:var(--ink);cursor:pointer}
.theme svg{width:18px;height:18px}

.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding:26px var(--gut) 34px;border-top:1px solid var(--line);font:400 .95rem var(--mono);color:var(--muted)}
.foot nav{display:flex;flex-wrap:wrap;gap:10px 22px}
@media (max-width:600px){.top nav{gap:10px}.top nav a:not(.cta):not(.lang){display:none}}
@media (max-width:860px){:root{--safe:calc(64px + env(safe-area-inset-bottom))}}

/* Content pages (documentation, privacy, terms, legal notice): same identity as the home, no 3D, no script beyond the theme switch. */
.page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 5vw;align-items:center;padding:clamp(40px,8vh,104px) var(--gut) clamp(36px,6vh,72px);border-bottom:1px solid var(--line)}
.label{font:500 1rem var(--mono);color:var(--orange-ink);margin-bottom:1.1rem}
.page-head h1{font-size:clamp(2.3rem,1.1rem + 3.6vw,4.6rem);font-stretch:118%;line-height:1.02;max-width:18ch}
.page-head .lead{margin-top:1.4rem;max-width:42rem;color:var(--muted);font-size:clamp(1.15rem,1rem + .4vw,1.35rem)}
.page-head .links{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:1.6rem}
.page-head .links a{font:500 1rem var(--mono);text-decoration:none;padding:8px 14px;border:1px solid var(--line-2);border-radius:999px}
.page-head .links a:hover{border-color:var(--orange)}
/* the dial of the home, still: the mark inside a graduated ring cut twice */
.ornament{position:relative;width:clamp(200px,22vw,300px);aspect-ratio:1}
.ornament .ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ornament .ring line{stroke:var(--line-2);stroke-width:.25}
.ornament .ring line.major{stroke:var(--muted);stroke-width:.35}
.ornament .ring circle{fill:none;stroke:var(--orange);stroke-width:.5}
.ornament .mark{position:absolute;inset:24%;width:52%;height:52%}
.ornament .mark .t{fill:var(--logo-t)}
.ornament .mark .o{fill:var(--logo-o)}

.page-body{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,46rem);gap:3rem 5vw;padding:clamp(40px,7vh,80px) var(--gut) 96px}
.toc{position:sticky;top:28px;align-self:start;font:400 1rem/1.35 var(--mono)}
.toc p{color:var(--muted);font-size:.9rem;margin-bottom:.8rem}
.toc a{display:block;padding:7px 0 7px 14px;border-left:1px solid var(--line);color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--ink);border-left-color:var(--orange)}
.prose{min-width:0}
.prose > :first-child{margin-top:0;padding-top:0;border-top:0}
.prose h2{font-size:clamp(1.5rem,1.1rem + 1vw,2rem);font-stretch:116%;margin:3.2rem 0 1rem;padding-top:1.4rem;border-top:1px solid var(--line);scroll-margin-top:24px}
.prose h3{font-size:1.25rem;font-stretch:108%;margin:2rem 0 .5rem;letter-spacing:-.01em}
.prose p,.prose ul,.prose ol{margin:0 0 1rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose li{margin:.45rem 0;padding-left:.2rem}
.prose ul li::marker{color:var(--orange)}
.prose ol li::marker{font:500 1rem var(--mono);color:var(--orange-ink)}
.prose code{font:.9em var(--mono);background:color-mix(in oklab,var(--ink) 8%,transparent);padding:.1em .35em;border-radius:4px}
.prose strong{font-weight:600}
.table{overflow-x:auto;margin:1rem 0 1.6rem}
.prose table{width:100%;border-collapse:collapse;font-size:1.02rem}
.prose th{font:500 .95rem var(--mono);text-align:left;color:var(--muted);border-bottom:1px solid var(--ink);padding:8px 16px 8px 0}
.prose td{border-bottom:1px solid var(--line);padding:12px 16px 12px 0;vertical-align:top}
.card{border:1px solid var(--line-2);border-radius:12px;padding:18px 20px;background:color-mix(in oklab,var(--bg) 94%,var(--ink))}
.prose section[lang]{margin-top:4rem}

@media (max-width:860px){
  .page-head{grid-template-columns:minmax(0,1fr)}
  .ornament{display:none}
  .page-body{grid-template-columns:minmax(0,1fr)}
  .toc{display:none}
}
