/* ---- Roboto (self-hosted, same face as rhino3d.com) ---------------------- */
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/roboto-400.woff2") format("woff2")}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/roboto-500.woff2") format("woff2")}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/roboto-700.woff2") format("woff2")}

/* ---- design tokens · official Grasshopper 2 palette (OpenColor) ----------- */
/* content colour-code, matching the in-app doc exporter:                      */
/*   glossary/terms = amber (Yellow9) · components/specs = cyan (Cyan8)         */
/*   topics = pink (Pink8) · code = Cyan9 · neutrals = Gray0–9                  */
:root{
  --bg:#ffffff; --bg-soft:#f8f9fa; --bg-sink:#f1f3f5;
  --fg:#212529; --fg-soft:#495057; --fg-faint:#868e96;
  --line:#dee2e6; --line-strong:#ced4da;
  --accent:#0c8599; --accent-soft:#e3fafc;
  --term:#e67700; --term-soft:#fff4e0;
  --topic:#c2255c; --topic-soft:#ffe8f0;
  --spec:#0c8599; --spec-soft:#e3fafc;
  --code-bg:#f1f3f5; --code-fg:#0b7285;
  --shadow:0 1px 2px rgba(20,30,40,.06),0 4px 16px rgba(20,30,40,.06);
  /* --measure: the content column (figures, tables, example screenshots may use it all);
     --prose: running text is held to ~60-65 characters, the comfortable reading measure. */
  --topbar-h:64px; --side-w:250px; --measure:46rem; --prose:62ch;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --sans:'Roboto',system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}
:root[data-theme="dark"], html[data-theme="dark"]{
  --bg:#16191d; --bg-soft:#1b2026; --bg-sink:#21262c;
  --fg:#e9ecef; --fg-soft:#adb5bd; --fg-faint:#727b84;
  --line:#2c333b; --line-strong:#3a424b;
  --accent:#22b8cf; --accent-soft:#0e2a30;
  --term:#fcc419; --term-soft:#33280a;
  --topic:#f06595; --topic-soft:#33101f;
  --spec:#22b8cf; --spec-soft:#0e2a30;
  --code-bg:#21262c; --code-fg:#3bc9db;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#16191d; --bg-soft:#1b2026; --bg-sink:#21262c;
    --fg:#e9ecef; --fg-soft:#adb5bd; --fg-faint:#727b84;
    --line:#2c333b; --line-strong:#3a424b;
    --accent:#22b8cf; --accent-soft:#0e2a30;
    --term:#fcc419; --term-soft:#33280a;
    --topic:#f06595; --topic-soft:#33101f;
    --spec:#22b8cf; --spec-soft:#0e2a30;
    --code-bg:#21262c; --code-fg:#3bc9db;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
  }
}

/* ---- base ---------------------------------------------------------------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.25;font-weight:650;margin:1.6em 0 .5em}
h1{font-size:1.9rem;margin-top:.2em}
h2{font-size:1.4rem}h3{font-size:1.15rem}h4{font-size:1rem}
p{margin:.7em 0}
hr{border:0;border-top:1px dashed var(--line-strong);margin:2em 0}
code{font-family:var(--mono);font-size:.88em;background:var(--code-bg);
  color:var(--code-fg);padding:.1em .35em;border-radius:5px}
sub{line-height:0;font-size:.78em;vertical-align:-.2em}
sup{line-height:0;font-size:.78em;vertical-align:.3em}
/* MathML: browsers shrink script levels to ~71%; a slightly larger base keeps
   subscripts and superscripts in formulas legible. */
math{font-size:1.12em}

/* ---- topbar -------------------------------------------------------------- */
.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;
  align-items:center;gap:12px;padding:0 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.hamburger{display:none;border:0;background:none;color:var(--fg);font-size:1.3rem;
  cursor:pointer;padding:4px 8px;border-radius:8px}
.hamburger:hover{background:var(--bg-sink)}
.brand{display:flex;align-items:center;gap:11px;color:var(--fg);font-weight:700}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-block;width:46px;height:27px;background:var(--fg);flex:0 0 auto;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%2058.2%22%20role%3D%22img%22%20aria-label%3D%22Grasshopper%202%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M14.9%200.0%20L15.0%200.1%20L15.0%200.3%20L15.2%200.2%20L15.3%200.5%20L15.5%200.4%20L15.6%200.5%20L15.6%200.6%20L15.9%200.7%20L16.5%201.1%20L16.4%201.2%20L16.6%201.2%20L16.6%201.3%20L16.7%201.4%20L16.8%201.6%20L16.9%201.6%20L16.9%201.4%20L16.9%200.9%20L17.7%201.5%20L18.0%201.6%20L18.2%201.6%20L18.5%202.2%20L18.7%202.3%20L19.3%203.0%20L19.8%203.3%20L19.8%203.4%20L20.0%203.5%20L20.0%203.6%20L20.1%203.5%20L20.1%203.7%20L20.3%203.8%20L20.4%203.9%20L20.7%204.0%20L20.7%204.2%20L21.0%204.3%20L21.0%204.4%20L21.2%204.5%20L21.3%204.6%20L21.6%204.8%20L22.1%205.2%20L22.5%205.5%20L22.5%205.6%20L22.7%205.7%20L23.0%205.9%20L23.0%206.0%20L23.2%206.1%20L23.5%206.4%20L23.6%206.4%20L23.6%206.5%20L23.8%206.6%20L23.9%206.7%20L24.1%206.8%20L24.2%206.9%20L24.2%207.0%20L24.4%207.1%20L24.6%207.3%20L25.1%207.7%20L25.3%207.9%20L25.6%208.1%20L26.0%208.5%20L26.4%208.8%20L26.6%209.0%20L27.1%209.4%20L27.3%209.6%20L27.5%209.7%20L27.5%209.8%20L27.7%209.9%20L28.1%2010.2%20L28.1%2010.3%20L28.2%2010.3%20L28.3%2010.5%20L28.7%2010.8%20L28.9%2011.0%20L29.3%2011.3%20L29.3%2011.5%20L29.5%2011.5%20L29.6%2011.6%20L29.7%2011.7%20L29.7%2011.8%20L29.9%2011.8%20L30.0%2012.1%20L30.2%2012.2%20L30.9%2012.8%20L31.3%2013.1%20L31.3%2013.3%20L31.5%2013.3%20L31.5%2013.4%20L31.7%2013.5%20L31.7%2013.6%20L31.8%2013.7%20L32.0%2013.8%20L32.0%2013.9%20L32.2%2014.0%20L32.3%2014.1%20L32.3%2014.2%20L32.6%2014.4%20L32.9%2014.7%20L32.9%2014.8%20L33.0%2014.8%20L33.0%2014.9%20L33.2%2014.7%20L34.0%2014.5%20L34.3%2014.4%20L34.7%2014.3%20L35.0%2014.2%20L35.2%2014.2%20L35.2%2014.1%20L35.6%2014.1%20L35.8%2014.1%20L36.2%2014.0%20L37.0%2013.8%20L37.3%2013.8%20L37.6%2013.8%20L37.9%2013.8%20L38.8%2013.6%20L39.1%2013.7%20L39.1%2013.6%20L39.1%2013.7%20L39.2%2013.7%20L39.2%2013.6%20L39.6%2013.6%20L39.9%2013.5%20L40.3%2013.5%20L41.0%2013.3%20L41.5%2013.3%20L41.7%2013.3%20L42.5%2013.4%20L43.3%2013.3%20L43.3%2013.2%20L44.0%2013.4%20L44.6%2013.5%20L44.9%2013.5%20L44.9%2013.6%20L45.2%2013.7%20L45.3%2013.8%20L45.7%2013.8%20L46.6%2014.1%20L47.4%2014.3%20L47.4%2014.1%20L49.4%2014.7%20L49.4%2014.8%20L49.6%2014.9%20L49.2%2014.8%20L48.1%2014.6%20L48.6%2014.7%20L49.7%2015.1%20L50.1%2015.2%20L51.6%2015.9%20L52.1%2016.0%20L52.8%2016.4%20L53.0%2016.5%20L53.2%2016.7%20L53.4%2016.8%20L53.4%2017.0%20L53.9%2017.1%20L54.3%2017.4%20L54.3%2017.5%20L54.4%2017.5%20L54.4%2017.7%20L54.9%2017.8%20L55.0%2018.1%20L57.2%2019.5%20L57.5%2019.7%20L57.5%2019.8%20L58.0%2019.9%20L58.0%2019.8%20L58.3%2019.7%20L58.3%2019.6%20L58.9%2019.9%20L59.2%2019.9%20L59.2%2019.7%20L60.5%2018.9%20L60.7%2019.0%20L61.4%2018.7%20L62.2%2018.4%20L63.0%2018.1%20L63.2%2018.0%20L63.6%2017.8%20L65.4%2017.1%20L65.5%2017.2%20L66.0%2017.1%20L67.3%2016.7%20L67.7%2016.5%20L68.6%2016.4%20L68.6%2016.3%20L69.4%2016.0%20L69.8%2015.8%20L70.6%2015.7%20L70.6%2015.6%20L71.2%2015.4%20L71.6%2015.2%20L72.0%2015.1%20L72.9%2014.7%20L73.3%2014.6%20L73.5%2014.4%20L75.0%2014.0%20L75.6%2013.7%20L76.1%2013.5%20L76.6%2013.3%20L77.1%2013.2%20L78.3%2012.7%20L79.3%2012.4%20L79.7%2012.2%20L80.0%2012.1%20L80.6%2011.8%20L81.3%2011.5%20L81.7%2011.4%20L81.7%2011.3%20L82.5%2011.0%20L82.7%2011.1%20L82.7%2010.9%20L82.9%2011.0%20L83.0%2010.8%20L83.2%2010.8%20L84.2%2010.3%20L85.3%209.9%20L85.6%209.8%20L86.0%209.7%20L86.0%209.6%20L86.3%209.5%20L86.6%209.3%20L86.9%209.2%20L87.3%209.0%20L88.0%208.7%20L88.0%208.6%20L88.8%208.3%20L89.2%208.0%20L89.6%207.9%20L90.1%207.6%20L91.1%207.1%20L91.1%207.0%20L91.7%206.8%20L92.7%206.2%20L92.9%206.1%20L93.0%205.9%20L96.2%204.1%20L96.6%203.9%20L97.9%204.0%20L98.1%204.2%20L98.3%204.1%20L98.5%204.3%20L98.6%204.3%20L98.7%204.5%20L99.0%204.7%20L99.1%205.0%20L99.3%205.0%20L99.4%205.4%20L99.5%205.4%20L99.5%205.5%20L99.8%205.8%20L100.0%206.7%20L99.9%206.7%20L99.8%207.2%20L99.5%207.7%20L99.7%207.8%20L99.8%208.1%20L99.5%208.2%20L99.5%208.1%20L99.2%208.2%20L99.4%208.4%20L99.4%209.0%20L99.5%208.7%20L99.6%208.7%20L99.5%2010.1%20L99.4%2010.1%20L99.4%2010.3%20L99.3%2010.3%20L99.3%2010.6%20L98.7%2010.9%20L98.4%2011.1%20L97.3%2011.7%20L97.2%2011.6%20L97.8%2011.3%20L97.1%2011.6%20L96.6%2011.9%20L96.3%2012.1%20L96.1%2012.1%20L96.0%2011.9%20L95.8%2011.8%20L95.8%2011.7%20L95.6%2011.9%20L95.0%2012.2%20L95.0%2012.4%20L94.5%2012.7%20L93.6%2013.2%20L93.2%2013.3%20L93.2%2013.4%20L92.9%2013.6%20L92.2%2014.1%20L91.9%2014.3%20L91.4%2014.6%20L91.1%2014.9%20L91.0%2015.0%20L90.8%2015.0%20L90.7%2015.3%20L90.9%2015.2%20L91.7%2014.8%20L91.8%2014.7%20L91.8%2014.8%20L91.5%2014.9%20L91.4%2015.1%20L91.0%2015.3%20L91.0%2015.4%20L90.6%2015.6%20L90.6%2015.7%20L90.4%2015.7%20L90.3%2015.9%20L90.0%2016.0%20L89.8%2016.2%20L89.5%2016.3%20L89.4%2016.5%20L88.8%2016.8%20L88.1%2017.4%20L88.3%2017.4%20L88.2%2017.4%20L88.1%2017.7%20L88.0%2017.7%20L88.0%2017.9%20L87.7%2017.9%20L87.5%2018.0%20L87.5%2018.1%20L87.1%2018.3%20L87.0%2018.2%20L87.1%2018.0%20L87.0%2018.1%20L86.7%2018.1%20L86.6%2018.3%20L85.7%2018.9%20L85.8%2019.0%20L86.2%2018.7%20L86.3%2018.8%20L86.1%2019.0%20L85.8%2019.3%20L85.7%2019.3%20L85.7%2019.4%20L85.5%2019.5%20L85.3%2019.7%20L84.7%2020.1%20L83.7%2020.9%20L83.0%2021.4%20L81.8%2022.3%20L81.5%2022.4%20L81.5%2022.5%20L81.2%2022.6%20L81.3%2022.2%20L81.4%2022.2%20L81.4%2022.1%20L81.6%2022.1%20L81.7%2021.8%20L80.6%2022.6%20L80.3%2022.8%20L80.3%2022.9%20L80.5%2022.7%20L81.0%2022.8%20L80.9%2022.9%20L80.8%2022.9%20L80.9%2023.1%20L80.0%2023.7%20L80.0%2023.8%20L79.8%2024.0%20L79.5%2024.2%20L78.9%2024.7%20L78.9%2024.8%20L78.3%2025.2%20L78.1%2025.4%20L77.8%2025.6%20L77.8%2025.7%20L77.7%2025.7%20L78.3%2025.1%20L78.5%2024.9%20L78.7%2024.7%20L79.0%2024.5%20L79.2%2024.3%20L79.2%2024.2%20L79.8%2023.8%20L79.9%2023.7%20L79.5%2024.0%20L79.3%2024.0%20L79.3%2024.1%20L78.8%2024.4%20L78.5%2024.7%20L77.3%2025.7%20L77.0%2025.9%20L76.4%2026.4%20L76.3%2026.5%20L76.2%2026.5%20L76.1%2026.7%20L75.6%2027.0%20L75.5%2027.2%20L75.1%2027.5%20L75.1%2027.5%20L75.4%2027.6%20L75.4%2027.7%20L74.8%2027.7%20L75.0%2027.9%20L74.8%2027.9%20L74.9%2028.0%20L75.4%2028.1%20L76.6%2028.2%20L79.3%2028.5%20L79.6%2028.5%20L80.8%2028.5%20L81.2%2028.5%20L81.7%2028.5%20L85.0%2028.6%20L89.8%2028.4%20L90.6%2028.4%20L91.7%2028.2%20L91.9%2028.2%20L91.9%2028.1%20L92.3%2028.0%20L92.5%2027.9%20L92.0%2027.9%20L92.7%2027.6%20L93.2%2027.2%20L93.7%2027.2%20L94.2%2027.1%20L94.3%2027.2%20L94.4%2027.1%20L94.5%2027.0%20L94.6%2027.0%20L94.7%2027.1%20L95.4%2027.1%20L95.7%2027.2%20L95.7%2027.2%20L95.4%2027.3%20L95.9%2027.3%20L96.2%2027.5%20L96.7%2027.5%20L97.4%2027.8%20L97.4%2027.7%20L98.1%2027.8%20L98.1%2027.7%20L98.4%2027.9%20L98.7%2028.1%20L97.7%2027.8%20L98.2%2028.0%20L99.0%2028.3%20L99.2%2028.3%20L99.3%2028.3%20L99.3%2028.2%20L99.4%2028.2%20L99.6%2028.6%20L99.7%2028.6%20L99.7%2029.3%20L99.8%2029.3%20L99.7%2029.5%20L99.8%2029.5%20L99.6%2029.9%20L99.9%2030.1%20L99.9%2030.6%20L100.0%2031.1%20L100.0%2031.3%20L99.9%2031.7%20L99.8%2031.7%20L99.8%2031.8%20L99.9%2031.9%20L100.0%2032.4%20L100.0%2032.5%20L100.0%2032.7%20L99.9%2032.6%20L99.7%2032.6%20L99.7%2032.2%20L99.6%2032.2%20L99.4%2032.8%20L99.1%2033.3%20L99.0%2033.4%20L99.2%2033.5%20L99.2%2034.4%20L99.3%2034.5%20L99.4%2035.1%20L99.3%2035.4%20L99.3%2035.7%20L98.9%2035.8%20L98.3%2037.0%20L98.2%2037.1%20L97.9%2037.6%20L97.0%2039.6%20L96.6%2040.4%20L96.0%2041.6%20L95.7%2042.6%20L95.4%2042.6%20L95.2%2043.3%20L94.9%2044.0%20L94.7%2044.3%20L94.6%2044.6%20L94.6%2044.9%20L94.6%2045.3%20L94.4%2045.1%20L93.9%2045.8%20L93.8%2046.1%20L93.5%2046.8%20L93.6%2046.9%20L93.5%2047.2%20L93.5%2047.8%20L93.5%2048.2%20L93.3%2048.1%20L93.3%2048.0%20L93.2%2047.9%20L93.2%2047.7%20L93.1%2047.7%20L92.9%2048.0%20L92.8%2048.3%20L92.6%2048.6%20L92.4%2048.8%20L92.3%2049.2%20L92.2%2049.2%20L92.6%2050.5%20L92.6%2050.7%20L92.6%2050.9%20L92.4%2050.7%20L92.1%2050.6%20L91.9%2050.3%20L91.5%2050.9%20L91.3%2051.3%20L91.4%2051.5%20L91.2%2051.4%20L91.0%2051.8%20L90.8%2052.3%20L91.2%2053.0%20L91.2%2053.1%20L91.0%2053.1%20L91.0%2053.3%20L90.8%2053.3%20L90.5%2053.1%20L90.4%2053.1%20L90.2%2053.5%20L90.1%2053.6%20L90.0%2053.7%20L89.9%2053.8%20L89.8%2054.3%20L89.6%2054.6%20L89.9%2055.5%20L90.0%2055.5%20L90.0%2055.9%20L90.2%2056.1%20L90.2%2056.2%20L89.9%2056.1%20L89.7%2056.1%20L89.1%2055.5%20L89.0%2056.4%20L88.6%2056.4%20L88.3%2057.2%20L88.8%2056.8%20L89.0%2056.8%20L88.7%2057.3%20L88.6%2057.3%20L88.5%2057.5%20L88.2%2057.8%20L67.2%2058.2%20L66.8%2057.5%20L66.7%2057.4%20L66.5%2057.1%20L66.4%2057.3%20L66.6%2057.5%20L66.5%2057.6%20L66.2%2057.3%20L66.2%2057.2%20L65.8%2056.7%20L65.8%2056.8%20L65.5%2056.4%20L65.4%2056.3%20L65.3%2056.0%20L65.1%2055.9%20L65.0%2055.7%20L65.0%2055.6%20L65.0%2055.4%20L64.9%2055.4%20L64.6%2054.9%20L64.8%2054.9%20L64.4%2054.5%20L64.5%2054.4%20L64.5%2054.3%20L64.4%2054.3%20L64.2%2053.9%20L63.7%2053.2%20L63.6%2052.9%20L63.2%2052.4%20L62.1%2051.0%20L61.8%2050.6%20L61.7%2050.3%20L61.2%2049.9%20L60.9%2049.4%20L60.6%2049.7%20L60.1%2049.7%20L60.1%2049.9%20L60.0%2050.0%20L59.6%2049.8%20L59.6%2049.5%20L59.5%2049.4%20L59.4%2049.0%20L59.2%2048.3%20L59.2%2048.1%20L59.0%2048.0%20L59.0%2047.9%20L58.9%2047.9%20L58.8%2048.2%20L58.7%2048.2%20L58.5%2047.7%20L58.4%2047.6%20L58.3%2047.6%20L58.3%2047.3%20L58.1%2047.3%20L58.0%2047.0%20L57.9%2047.0%20L57.7%2046.6%20L57.3%2046.2%20L57.3%2046.0%20L57.1%2046.0%20L56.9%2045.8%20L56.7%2045.7%20L56.6%2045.5%20L56.3%2045.4%20L56.1%2045.0%20L55.9%2044.9%20L55.9%2044.8%20L55.8%2044.8%20L55.8%2044.7%20L55.5%2044.6%20L55.6%2044.5%20L55.8%2044.5%20L55.3%2044.2%20L55.2%2044.1%20L55.0%2044.0%20L53.9%2043.4%20L52.8%2043.0%20L53.0%2043.3%20L51.7%2043.0%20L51.0%2043.0%20L50.8%2043.0%20L50.8%2042.6%20L50.5%2042.5%20L50.3%2042.3%20L49.7%2042.4%20L49.4%2042.3%20L49.3%2041.8%20L49.2%2041.6%20L49.1%2041.3%20L49.0%2041.1%20L48.7%2039.7%20L48.7%2039.4%20L48.7%2038.8%20L49.0%2039.6%20L48.8%2038.0%20L48.7%2037.6%20L48.4%2036.8%20L48.4%2036.5%20L48.3%2036.1%20L48.3%2035.8%20L48.1%2035.7%20L47.8%2035.0%20L47.5%2035.0%20L47.3%2034.5%20L47.1%2034.5%20L47.1%2034.6%20L46.9%2034.5%20L46.8%2034.3%20L46.7%2034.2%20L46.8%2034.0%20L46.7%2033.7%20L46.5%2033.5%20L46.4%2033.3%20L46.3%2033.3%20L46.2%2033.2%20L45.8%2033.2%20L45.7%2033.0%20L45.6%2033.2%20L45.3%2033.2%20L43.9%2033.6%20L43.3%2033.9%20L42.1%2034.5%20L41.8%2034.6%20L41.7%2034.8%20L41.4%2035.0%20L41.4%2034.9%20L40.6%2035.3%20L40.9%2035.3%20L41.0%2035.3%20L41.3%2035.3%20L41.3%2035.4%20L40.7%2035.5%20L40.3%2035.7%20L40.0%2035.8%20L39.8%2035.9%20L39.6%2036.2%20L39.0%2036.3%20L38.4%2036.6%20L37.4%2036.7%20L37.2%2036.4%20L37.1%2036.3%20L37.1%2036.0%20L37.0%2036.0%20L36.7%2035.5%20L36.6%2035.5%20L36.7%2034.8%20L36.6%2034.6%20L36.5%2034.7%20L36.5%2034.3%20L36.7%2034.2%20L36.8%2033.8%20L37.1%2033.6%20L37.1%2033.5%20L37.0%2033.5%20L37.7%2032.8%20L37.8%2032.6%20L38.1%2032.2%20L38.3%2031.9%20L38.9%2031.2%20L39.0%2031.0%20L39.1%2031.0%20L39.2%2030.8%20L39.6%2030.5%20L39.6%2030.3%20L40.0%2030.0%20L40.1%2029.8%20L39.9%2029.8%20L39.8%2029.5%20L40.3%2029.4%20L41.3%2028.9%20L41.3%2028.8%20L41.1%2028.8%20L41.1%2028.7%20L40.9%2028.7%20L40.9%2028.8%20L40.3%2029.1%20L39.4%2029.7%20L39.0%2029.8%20L38.9%2030.0%20L38.6%2030.2%20L38.6%2030.3%20L38.5%2030.3%20L38.4%2030.5%20L38.2%2030.6%20L38.0%2030.8%20L37.9%2030.8%20L37.8%2031.0%20L37.5%2031.4%20L37.4%2031.4%20L37.5%2031.1%20L37.4%2031.1%20L37.2%2031.7%20L37.1%2031.7%20L37.1%2032.0%20L36.6%2033.0%20L36.1%2032.9%20L36.1%2032.8%20L36.0%2032.8%20L36.2%2031.7%20L36.1%2031.6%20L36.5%2030.9%20L36.5%2030.7%20L36.3%2030.9%20L36.7%2030.3%20L36.8%2030.3%20L36.9%2030.1%20L37.2%2029.7%20L37.0%2030.1%20L37.6%2029.7%20L38.1%2029.3%20L38.1%2029.3%20L38.1%2029.1%20L38.6%2028.8%20L38.3%2028.5%20L38.6%2028.4%20L38.9%2028.7%20L39.3%2028.5%20L39.3%2028.5%20L38.3%2028.4%20L37.7%2028.2%20L36.9%2028.0%20L36.8%2027.8%20L36.7%2027.8%20L36.7%2028.0%20L36.7%2028.0%20L36.4%2027.3%20L36.3%2027.3%20L36.6%2028.0%20L36.6%2028.1%20L36.1%2027.2%20L36.1%2027.0%20L35.9%2026.9%20L35.6%2026.5%20L35.3%2026.1%20L35.3%2025.7%20L35.1%2025.5%20L35.0%2025.4%20L34.7%2025.1%20L34.5%2025.0%20L34.4%2025.1%20L34.3%2024.9%20L34.0%2024.6%20L33.9%2024.2%20L33.4%2024.0%20L33.4%2023.8%20L33.3%2023.8%20L33.3%2023.3%20L32.6%2022.0%20L32.2%2021.4%20L32.1%2021.7%20L31.7%2021.2%20L31.7%2021.1%20L31.1%2021.5%20L30.9%2021.6%20L30.5%2021.8%20L30.2%2021.8%20L29.6%2022.2%20L29.3%2022.3%20L28.8%2022.7%20L28.2%2023.0%20L27.0%2023.9%20L26.1%2024.5%20L25.7%2024.8%20L25.0%2025.3%20L24.6%2025.7%20L24.2%2026.0%20L24.0%2026.2%20L23.7%2026.4%20L23.7%2026.5%20L23.3%2026.7%20L23.3%2026.9%20L23.0%2027.0%20L22.9%2027.2%20L22.8%2027.2%20L22.6%2027.5%20L21.9%2028.1%20L21.7%2028.3%20L21.4%2028.5%20L21.3%2028.7%20L20.8%2029.2%20L20.6%2029.4%20L20.2%2029.7%20L20.1%2029.9%20L19.8%2030.0%20L19.7%2030.1%20L19.6%2030.1%20L19.6%2030.3%20L19.5%2030.3%20L19.5%2030.5%20L19.0%2030.9%20L18.9%2030.9%20L18.9%2031.1%20L18.7%2031.2%20L18.4%2031.4%20L18.3%2031.6%20L17.8%2032.1%20L17.5%2032.3%20L17.3%2032.6%20L17.1%2032.8%20L16.5%2033.4%20L16.3%2033.7%20L16.0%2033.7%20L15.4%2034.3%20L14.9%2034.7%20L14.4%2035.0%20L14.3%2035.0%20L14.3%2035.1%20L13.6%2035.7%20L13.3%2035.9%20L12.8%2036.3%20L12.8%2036.4%20L12.6%2036.5%20L11.0%2037.5%20L10.8%2037.7%20L9.6%2038.6%20L9.2%2038.9%20L8.9%2039.2%20L8.7%2039.3%20L8.6%2039.3%20L8.8%2039.0%20L8.9%2039.0%20L9.0%2038.8%20L9.4%2038.4%20L8.7%2038.9%20L8.4%2038.9%20L7.7%2039.2%20L6.9%2039.5%20L6.8%2039.8%20L6.7%2039.7%20L6.8%2039.6%20L6.4%2039.7%20L5.8%2039.8%20L6.8%2040.7%20L5.8%2040.0%20L5.6%2039.9%20L5.2%2039.9%20L4.0%2039.9%20L3.8%2039.6%20L3.3%2039.5%20L2.4%2039.4%20L2.4%2039.3%20L3.1%2039.3%20L3.4%2039.4%20L3.7%2039.4%20L3.5%2039.3%20L3.4%2039.2%20L3.7%2039.2%20L4.0%2038.9%20L5.1%2038.7%20L5.0%2038.8%20L4.8%2038.8%20L4.8%2038.9%20L6.2%2038.5%20L7.2%2038.3%20L7.2%2038.1%20L7.8%2037.9%20L8.5%2037.5%20L9.6%2036.8%20L11.6%2035.6%20L12.3%2035.1%20L12.9%2034.7%20L13.7%2034.2%20L13.8%2034.1%20L13.9%2034.1%20L14.0%2033.9%20L14.2%2033.8%20L14.5%2033.5%20L15.0%2033.2%20L15.3%2032.9%20L15.7%2032.7%20L15.8%2032.5%20L16.2%2032.1%20L16.1%2032.1%20L16.4%2031.7%20L16.6%2031.5%20L17.3%2030.9%20L17.4%2030.7%20L17.5%2030.7%20L17.6%2030.5%20L18.0%2030.1%20L18.1%2030.1%20L18.2%2030.0%20L18.3%2030.0%20L18.3%2029.8%20L18.5%2029.6%20L18.9%2029.2%20L19.3%2028.9%20L19.4%2028.7%20L19.8%2028.4%20L20.0%2028.2%20L20.6%2027.6%20L21.2%2027.0%20L22.7%2025.9%20L22.7%2025.8%20L22.8%2025.8%20L22.9%2025.6%20L23.3%2025.2%20L23.4%2025.1%20L23.5%2025.1%20L23.5%2025.0%20L24.1%2024.6%20L24.9%2023.9%20L26.4%2022.9%20L27.1%2022.3%20L28.0%2021.8%20L28.2%2021.7%20L28.6%2021.5%20L29.0%2021.2%20L30.4%2020.5%20L30.7%2020.1%20L30.8%2020.2%20L30.7%2020.3%20L31.1%2020.2%20L31.1%2019.7%20L31.3%2019.8%20L31.3%2019.6%20L31.3%2019.4%20L31.2%2019.0%20L31.3%2018.4%20L31.3%2018.3%20L31.3%2018.2%20L31.2%2018.2%20L31.2%2018.0%20L31.0%2017.9%20L31.2%2017.9%20L31.2%2017.8%20L30.7%2017.7%20L29.0%2017.3%20L24.8%2017.2%20L24.4%2017.1%20L24.4%2017.0%20L14.8%2019.0%20L13.9%2019.2%20L13.1%2019.5%20L12.3%2019.7%20L11.9%2019.8%20L11.4%2020.0%20L10.5%2020.2%20L9.5%2020.3%20L9.6%2020.3%20L8.5%2020.4%20L8.2%2020.4%20L6.5%2020.7%20L4.9%2020.9%20L5.8%2020.7%20L6.2%2020.6%20L6.6%2020.5%20L6.2%2020.5%20L2.9%2020.4%20L2.5%2020.4%20L2.0%2020.2%20L2.0%2020.1%20L1.5%2020.0%20L1.4%2020.0%20L1.4%2019.9%20L0.7%2019.8%20L0.6%2019.8%20L0.6%2019.6%20L0.4%2019.5%20L0.2%2019.4%20L0.1%2019.6%20L0.0%2019.6%20L0.0%2019.1%20L0.0%2019.1%20L0.2%2018.4%20L0.2%2018.0%20L0.2%2017.7%20L0.3%2017.8%20L0.3%2018.3%20L0.3%2018.5%20L0.2%2018.7%20L0.3%2018.7%20L2.6%2018.8%20L5.3%2019.0%20L5.7%2019.0%20L8.2%2018.9%20L8.5%2018.9%20L9.1%2018.8%20L9.5%2018.8%20L13.5%2017.9%20L13.9%2017.8%20L13.5%2017.8%20L14.7%2017.4%20L15.9%2017.1%20L16.0%2017.1%20L16.1%2017.0%20L16.3%2017.0%20L16.3%2016.9%20L17.3%2016.7%20L17.6%2016.6%20L21.1%2016.0%20L21.8%2015.9%20L22.2%2015.9%20L22.7%2015.8%20L22.9%2015.8%20L22.9%2015.7%20L23.8%2015.6%20L24.6%2015.5%20L26.1%2015.6%20L26.4%2015.6%20L26.8%2015.7%20L26.8%2015.7%20L27.2%2015.7%20L28.5%2015.9%20L29.4%2016.0%20L31.0%2016.2%20L31.2%2016.2%20L31.7%2016.3%20L31.9%2016.3%20L32.0%2016.0%20L31.9%2016.0%20L31.8%2015.8%20L31.3%2015.3%20L31.0%2015.0%20L30.4%2014.4%20L30.0%2014.0%20L29.6%2013.6%20L29.3%2013.4%20L28.7%2012.9%20L28.4%2012.6%20L27.8%2012.0%20L26.7%2011.0%20L26.4%2010.8%20L25.8%2010.2%20L24.8%209.4%20L24.8%209.3%20L24.6%209.2%20L24.4%209.0%20L23.9%208.8%20L23.6%208.4%20L22.8%207.9%20L21.3%206.7%20L21.0%206.5%20L20.0%205.7%20L19.5%205.2%20L19.1%205.0%20L19.1%204.9%20L18.9%204.8%20L18.9%204.6%20L18.7%204.5%20L18.6%204.4%20L18.6%204.2%20L18.3%204.1%20L18.0%203.8%20L18.0%203.7%20L17.8%203.6%20L17.4%203.2%20L17.3%203.2%20L17.2%203.0%20L17.1%202.9%20L17.0%202.2%20L16.8%202.3%20L16.6%202.2%20L16.4%202.1%20L16.4%202.0%20L16.1%202.0%20L15.6%201.6%20L15.5%201.5%20L15.5%201.4%20L15.2%201.3%20L15.1%201.2%20L15.3%200.9%20L15.2%200.7%20L15.1%200.7%20L15.1%200.6%20L15.0%200.6%20L15.0%200.7%20L15.0%200.4%20L14.8%200.3%20L14.8%200.2%20L14.9%200.0%20Z%22%2F%3E%3C%2Fsvg%3E%0D%0A") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%2058.2%22%20role%3D%22img%22%20aria-label%3D%22Grasshopper%202%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M14.9%200.0%20L15.0%200.1%20L15.0%200.3%20L15.2%200.2%20L15.3%200.5%20L15.5%200.4%20L15.6%200.5%20L15.6%200.6%20L15.9%200.7%20L16.5%201.1%20L16.4%201.2%20L16.6%201.2%20L16.6%201.3%20L16.7%201.4%20L16.8%201.6%20L16.9%201.6%20L16.9%201.4%20L16.9%200.9%20L17.7%201.5%20L18.0%201.6%20L18.2%201.6%20L18.5%202.2%20L18.7%202.3%20L19.3%203.0%20L19.8%203.3%20L19.8%203.4%20L20.0%203.5%20L20.0%203.6%20L20.1%203.5%20L20.1%203.7%20L20.3%203.8%20L20.4%203.9%20L20.7%204.0%20L20.7%204.2%20L21.0%204.3%20L21.0%204.4%20L21.2%204.5%20L21.3%204.6%20L21.6%204.8%20L22.1%205.2%20L22.5%205.5%20L22.5%205.6%20L22.7%205.7%20L23.0%205.9%20L23.0%206.0%20L23.2%206.1%20L23.5%206.4%20L23.6%206.4%20L23.6%206.5%20L23.8%206.6%20L23.9%206.7%20L24.1%206.8%20L24.2%206.9%20L24.2%207.0%20L24.4%207.1%20L24.6%207.3%20L25.1%207.7%20L25.3%207.9%20L25.6%208.1%20L26.0%208.5%20L26.4%208.8%20L26.6%209.0%20L27.1%209.4%20L27.3%209.6%20L27.5%209.7%20L27.5%209.8%20L27.7%209.9%20L28.1%2010.2%20L28.1%2010.3%20L28.2%2010.3%20L28.3%2010.5%20L28.7%2010.8%20L28.9%2011.0%20L29.3%2011.3%20L29.3%2011.5%20L29.5%2011.5%20L29.6%2011.6%20L29.7%2011.7%20L29.7%2011.8%20L29.9%2011.8%20L30.0%2012.1%20L30.2%2012.2%20L30.9%2012.8%20L31.3%2013.1%20L31.3%2013.3%20L31.5%2013.3%20L31.5%2013.4%20L31.7%2013.5%20L31.7%2013.6%20L31.8%2013.7%20L32.0%2013.8%20L32.0%2013.9%20L32.2%2014.0%20L32.3%2014.1%20L32.3%2014.2%20L32.6%2014.4%20L32.9%2014.7%20L32.9%2014.8%20L33.0%2014.8%20L33.0%2014.9%20L33.2%2014.7%20L34.0%2014.5%20L34.3%2014.4%20L34.7%2014.3%20L35.0%2014.2%20L35.2%2014.2%20L35.2%2014.1%20L35.6%2014.1%20L35.8%2014.1%20L36.2%2014.0%20L37.0%2013.8%20L37.3%2013.8%20L37.6%2013.8%20L37.9%2013.8%20L38.8%2013.6%20L39.1%2013.7%20L39.1%2013.6%20L39.1%2013.7%20L39.2%2013.7%20L39.2%2013.6%20L39.6%2013.6%20L39.9%2013.5%20L40.3%2013.5%20L41.0%2013.3%20L41.5%2013.3%20L41.7%2013.3%20L42.5%2013.4%20L43.3%2013.3%20L43.3%2013.2%20L44.0%2013.4%20L44.6%2013.5%20L44.9%2013.5%20L44.9%2013.6%20L45.2%2013.7%20L45.3%2013.8%20L45.7%2013.8%20L46.6%2014.1%20L47.4%2014.3%20L47.4%2014.1%20L49.4%2014.7%20L49.4%2014.8%20L49.6%2014.9%20L49.2%2014.8%20L48.1%2014.6%20L48.6%2014.7%20L49.7%2015.1%20L50.1%2015.2%20L51.6%2015.9%20L52.1%2016.0%20L52.8%2016.4%20L53.0%2016.5%20L53.2%2016.7%20L53.4%2016.8%20L53.4%2017.0%20L53.9%2017.1%20L54.3%2017.4%20L54.3%2017.5%20L54.4%2017.5%20L54.4%2017.7%20L54.9%2017.8%20L55.0%2018.1%20L57.2%2019.5%20L57.5%2019.7%20L57.5%2019.8%20L58.0%2019.9%20L58.0%2019.8%20L58.3%2019.7%20L58.3%2019.6%20L58.9%2019.9%20L59.2%2019.9%20L59.2%2019.7%20L60.5%2018.9%20L60.7%2019.0%20L61.4%2018.7%20L62.2%2018.4%20L63.0%2018.1%20L63.2%2018.0%20L63.6%2017.8%20L65.4%2017.1%20L65.5%2017.2%20L66.0%2017.1%20L67.3%2016.7%20L67.7%2016.5%20L68.6%2016.4%20L68.6%2016.3%20L69.4%2016.0%20L69.8%2015.8%20L70.6%2015.7%20L70.6%2015.6%20L71.2%2015.4%20L71.6%2015.2%20L72.0%2015.1%20L72.9%2014.7%20L73.3%2014.6%20L73.5%2014.4%20L75.0%2014.0%20L75.6%2013.7%20L76.1%2013.5%20L76.6%2013.3%20L77.1%2013.2%20L78.3%2012.7%20L79.3%2012.4%20L79.7%2012.2%20L80.0%2012.1%20L80.6%2011.8%20L81.3%2011.5%20L81.7%2011.4%20L81.7%2011.3%20L82.5%2011.0%20L82.7%2011.1%20L82.7%2010.9%20L82.9%2011.0%20L83.0%2010.8%20L83.2%2010.8%20L84.2%2010.3%20L85.3%209.9%20L85.6%209.8%20L86.0%209.7%20L86.0%209.6%20L86.3%209.5%20L86.6%209.3%20L86.9%209.2%20L87.3%209.0%20L88.0%208.7%20L88.0%208.6%20L88.8%208.3%20L89.2%208.0%20L89.6%207.9%20L90.1%207.6%20L91.1%207.1%20L91.1%207.0%20L91.7%206.8%20L92.7%206.2%20L92.9%206.1%20L93.0%205.9%20L96.2%204.1%20L96.6%203.9%20L97.9%204.0%20L98.1%204.2%20L98.3%204.1%20L98.5%204.3%20L98.6%204.3%20L98.7%204.5%20L99.0%204.7%20L99.1%205.0%20L99.3%205.0%20L99.4%205.4%20L99.5%205.4%20L99.5%205.5%20L99.8%205.8%20L100.0%206.7%20L99.9%206.7%20L99.8%207.2%20L99.5%207.7%20L99.7%207.8%20L99.8%208.1%20L99.5%208.2%20L99.5%208.1%20L99.2%208.2%20L99.4%208.4%20L99.4%209.0%20L99.5%208.7%20L99.6%208.7%20L99.5%2010.1%20L99.4%2010.1%20L99.4%2010.3%20L99.3%2010.3%20L99.3%2010.6%20L98.7%2010.9%20L98.4%2011.1%20L97.3%2011.7%20L97.2%2011.6%20L97.8%2011.3%20L97.1%2011.6%20L96.6%2011.9%20L96.3%2012.1%20L96.1%2012.1%20L96.0%2011.9%20L95.8%2011.8%20L95.8%2011.7%20L95.6%2011.9%20L95.0%2012.2%20L95.0%2012.4%20L94.5%2012.7%20L93.6%2013.2%20L93.2%2013.3%20L93.2%2013.4%20L92.9%2013.6%20L92.2%2014.1%20L91.9%2014.3%20L91.4%2014.6%20L91.1%2014.9%20L91.0%2015.0%20L90.8%2015.0%20L90.7%2015.3%20L90.9%2015.2%20L91.7%2014.8%20L91.8%2014.7%20L91.8%2014.8%20L91.5%2014.9%20L91.4%2015.1%20L91.0%2015.3%20L91.0%2015.4%20L90.6%2015.6%20L90.6%2015.7%20L90.4%2015.7%20L90.3%2015.9%20L90.0%2016.0%20L89.8%2016.2%20L89.5%2016.3%20L89.4%2016.5%20L88.8%2016.8%20L88.1%2017.4%20L88.3%2017.4%20L88.2%2017.4%20L88.1%2017.7%20L88.0%2017.7%20L88.0%2017.9%20L87.7%2017.9%20L87.5%2018.0%20L87.5%2018.1%20L87.1%2018.3%20L87.0%2018.2%20L87.1%2018.0%20L87.0%2018.1%20L86.7%2018.1%20L86.6%2018.3%20L85.7%2018.9%20L85.8%2019.0%20L86.2%2018.7%20L86.3%2018.8%20L86.1%2019.0%20L85.8%2019.3%20L85.7%2019.3%20L85.7%2019.4%20L85.5%2019.5%20L85.3%2019.7%20L84.7%2020.1%20L83.7%2020.9%20L83.0%2021.4%20L81.8%2022.3%20L81.5%2022.4%20L81.5%2022.5%20L81.2%2022.6%20L81.3%2022.2%20L81.4%2022.2%20L81.4%2022.1%20L81.6%2022.1%20L81.7%2021.8%20L80.6%2022.6%20L80.3%2022.8%20L80.3%2022.9%20L80.5%2022.7%20L81.0%2022.8%20L80.9%2022.9%20L80.8%2022.9%20L80.9%2023.1%20L80.0%2023.7%20L80.0%2023.8%20L79.8%2024.0%20L79.5%2024.2%20L78.9%2024.7%20L78.9%2024.8%20L78.3%2025.2%20L78.1%2025.4%20L77.8%2025.6%20L77.8%2025.7%20L77.7%2025.7%20L78.3%2025.1%20L78.5%2024.9%20L78.7%2024.7%20L79.0%2024.5%20L79.2%2024.3%20L79.2%2024.2%20L79.8%2023.8%20L79.9%2023.7%20L79.5%2024.0%20L79.3%2024.0%20L79.3%2024.1%20L78.8%2024.4%20L78.5%2024.7%20L77.3%2025.7%20L77.0%2025.9%20L76.4%2026.4%20L76.3%2026.5%20L76.2%2026.5%20L76.1%2026.7%20L75.6%2027.0%20L75.5%2027.2%20L75.1%2027.5%20L75.1%2027.5%20L75.4%2027.6%20L75.4%2027.7%20L74.8%2027.7%20L75.0%2027.9%20L74.8%2027.9%20L74.9%2028.0%20L75.4%2028.1%20L76.6%2028.2%20L79.3%2028.5%20L79.6%2028.5%20L80.8%2028.5%20L81.2%2028.5%20L81.7%2028.5%20L85.0%2028.6%20L89.8%2028.4%20L90.6%2028.4%20L91.7%2028.2%20L91.9%2028.2%20L91.9%2028.1%20L92.3%2028.0%20L92.5%2027.9%20L92.0%2027.9%20L92.7%2027.6%20L93.2%2027.2%20L93.7%2027.2%20L94.2%2027.1%20L94.3%2027.2%20L94.4%2027.1%20L94.5%2027.0%20L94.6%2027.0%20L94.7%2027.1%20L95.4%2027.1%20L95.7%2027.2%20L95.7%2027.2%20L95.4%2027.3%20L95.9%2027.3%20L96.2%2027.5%20L96.7%2027.5%20L97.4%2027.8%20L97.4%2027.7%20L98.1%2027.8%20L98.1%2027.7%20L98.4%2027.9%20L98.7%2028.1%20L97.7%2027.8%20L98.2%2028.0%20L99.0%2028.3%20L99.2%2028.3%20L99.3%2028.3%20L99.3%2028.2%20L99.4%2028.2%20L99.6%2028.6%20L99.7%2028.6%20L99.7%2029.3%20L99.8%2029.3%20L99.7%2029.5%20L99.8%2029.5%20L99.6%2029.9%20L99.9%2030.1%20L99.9%2030.6%20L100.0%2031.1%20L100.0%2031.3%20L99.9%2031.7%20L99.8%2031.7%20L99.8%2031.8%20L99.9%2031.9%20L100.0%2032.4%20L100.0%2032.5%20L100.0%2032.7%20L99.9%2032.6%20L99.7%2032.6%20L99.7%2032.2%20L99.6%2032.2%20L99.4%2032.8%20L99.1%2033.3%20L99.0%2033.4%20L99.2%2033.5%20L99.2%2034.4%20L99.3%2034.5%20L99.4%2035.1%20L99.3%2035.4%20L99.3%2035.7%20L98.9%2035.8%20L98.3%2037.0%20L98.2%2037.1%20L97.9%2037.6%20L97.0%2039.6%20L96.6%2040.4%20L96.0%2041.6%20L95.7%2042.6%20L95.4%2042.6%20L95.2%2043.3%20L94.9%2044.0%20L94.7%2044.3%20L94.6%2044.6%20L94.6%2044.9%20L94.6%2045.3%20L94.4%2045.1%20L93.9%2045.8%20L93.8%2046.1%20L93.5%2046.8%20L93.6%2046.9%20L93.5%2047.2%20L93.5%2047.8%20L93.5%2048.2%20L93.3%2048.1%20L93.3%2048.0%20L93.2%2047.9%20L93.2%2047.7%20L93.1%2047.7%20L92.9%2048.0%20L92.8%2048.3%20L92.6%2048.6%20L92.4%2048.8%20L92.3%2049.2%20L92.2%2049.2%20L92.6%2050.5%20L92.6%2050.7%20L92.6%2050.9%20L92.4%2050.7%20L92.1%2050.6%20L91.9%2050.3%20L91.5%2050.9%20L91.3%2051.3%20L91.4%2051.5%20L91.2%2051.4%20L91.0%2051.8%20L90.8%2052.3%20L91.2%2053.0%20L91.2%2053.1%20L91.0%2053.1%20L91.0%2053.3%20L90.8%2053.3%20L90.5%2053.1%20L90.4%2053.1%20L90.2%2053.5%20L90.1%2053.6%20L90.0%2053.7%20L89.9%2053.8%20L89.8%2054.3%20L89.6%2054.6%20L89.9%2055.5%20L90.0%2055.5%20L90.0%2055.9%20L90.2%2056.1%20L90.2%2056.2%20L89.9%2056.1%20L89.7%2056.1%20L89.1%2055.5%20L89.0%2056.4%20L88.6%2056.4%20L88.3%2057.2%20L88.8%2056.8%20L89.0%2056.8%20L88.7%2057.3%20L88.6%2057.3%20L88.5%2057.5%20L88.2%2057.8%20L67.2%2058.2%20L66.8%2057.5%20L66.7%2057.4%20L66.5%2057.1%20L66.4%2057.3%20L66.6%2057.5%20L66.5%2057.6%20L66.2%2057.3%20L66.2%2057.2%20L65.8%2056.7%20L65.8%2056.8%20L65.5%2056.4%20L65.4%2056.3%20L65.3%2056.0%20L65.1%2055.9%20L65.0%2055.7%20L65.0%2055.6%20L65.0%2055.4%20L64.9%2055.4%20L64.6%2054.9%20L64.8%2054.9%20L64.4%2054.5%20L64.5%2054.4%20L64.5%2054.3%20L64.4%2054.3%20L64.2%2053.9%20L63.7%2053.2%20L63.6%2052.9%20L63.2%2052.4%20L62.1%2051.0%20L61.8%2050.6%20L61.7%2050.3%20L61.2%2049.9%20L60.9%2049.4%20L60.6%2049.7%20L60.1%2049.7%20L60.1%2049.9%20L60.0%2050.0%20L59.6%2049.8%20L59.6%2049.5%20L59.5%2049.4%20L59.4%2049.0%20L59.2%2048.3%20L59.2%2048.1%20L59.0%2048.0%20L59.0%2047.9%20L58.9%2047.9%20L58.8%2048.2%20L58.7%2048.2%20L58.5%2047.7%20L58.4%2047.6%20L58.3%2047.6%20L58.3%2047.3%20L58.1%2047.3%20L58.0%2047.0%20L57.9%2047.0%20L57.7%2046.6%20L57.3%2046.2%20L57.3%2046.0%20L57.1%2046.0%20L56.9%2045.8%20L56.7%2045.7%20L56.6%2045.5%20L56.3%2045.4%20L56.1%2045.0%20L55.9%2044.9%20L55.9%2044.8%20L55.8%2044.8%20L55.8%2044.7%20L55.5%2044.6%20L55.6%2044.5%20L55.8%2044.5%20L55.3%2044.2%20L55.2%2044.1%20L55.0%2044.0%20L53.9%2043.4%20L52.8%2043.0%20L53.0%2043.3%20L51.7%2043.0%20L51.0%2043.0%20L50.8%2043.0%20L50.8%2042.6%20L50.5%2042.5%20L50.3%2042.3%20L49.7%2042.4%20L49.4%2042.3%20L49.3%2041.8%20L49.2%2041.6%20L49.1%2041.3%20L49.0%2041.1%20L48.7%2039.7%20L48.7%2039.4%20L48.7%2038.8%20L49.0%2039.6%20L48.8%2038.0%20L48.7%2037.6%20L48.4%2036.8%20L48.4%2036.5%20L48.3%2036.1%20L48.3%2035.8%20L48.1%2035.7%20L47.8%2035.0%20L47.5%2035.0%20L47.3%2034.5%20L47.1%2034.5%20L47.1%2034.6%20L46.9%2034.5%20L46.8%2034.3%20L46.7%2034.2%20L46.8%2034.0%20L46.7%2033.7%20L46.5%2033.5%20L46.4%2033.3%20L46.3%2033.3%20L46.2%2033.2%20L45.8%2033.2%20L45.7%2033.0%20L45.6%2033.2%20L45.3%2033.2%20L43.9%2033.6%20L43.3%2033.9%20L42.1%2034.5%20L41.8%2034.6%20L41.7%2034.8%20L41.4%2035.0%20L41.4%2034.9%20L40.6%2035.3%20L40.9%2035.3%20L41.0%2035.3%20L41.3%2035.3%20L41.3%2035.4%20L40.7%2035.5%20L40.3%2035.7%20L40.0%2035.8%20L39.8%2035.9%20L39.6%2036.2%20L39.0%2036.3%20L38.4%2036.6%20L37.4%2036.7%20L37.2%2036.4%20L37.1%2036.3%20L37.1%2036.0%20L37.0%2036.0%20L36.7%2035.5%20L36.6%2035.5%20L36.7%2034.8%20L36.6%2034.6%20L36.5%2034.7%20L36.5%2034.3%20L36.7%2034.2%20L36.8%2033.8%20L37.1%2033.6%20L37.1%2033.5%20L37.0%2033.5%20L37.7%2032.8%20L37.8%2032.6%20L38.1%2032.2%20L38.3%2031.9%20L38.9%2031.2%20L39.0%2031.0%20L39.1%2031.0%20L39.2%2030.8%20L39.6%2030.5%20L39.6%2030.3%20L40.0%2030.0%20L40.1%2029.8%20L39.9%2029.8%20L39.8%2029.5%20L40.3%2029.4%20L41.3%2028.9%20L41.3%2028.8%20L41.1%2028.8%20L41.1%2028.7%20L40.9%2028.7%20L40.9%2028.8%20L40.3%2029.1%20L39.4%2029.7%20L39.0%2029.8%20L38.9%2030.0%20L38.6%2030.2%20L38.6%2030.3%20L38.5%2030.3%20L38.4%2030.5%20L38.2%2030.6%20L38.0%2030.8%20L37.9%2030.8%20L37.8%2031.0%20L37.5%2031.4%20L37.4%2031.4%20L37.5%2031.1%20L37.4%2031.1%20L37.2%2031.7%20L37.1%2031.7%20L37.1%2032.0%20L36.6%2033.0%20L36.1%2032.9%20L36.1%2032.8%20L36.0%2032.8%20L36.2%2031.7%20L36.1%2031.6%20L36.5%2030.9%20L36.5%2030.7%20L36.3%2030.9%20L36.7%2030.3%20L36.8%2030.3%20L36.9%2030.1%20L37.2%2029.7%20L37.0%2030.1%20L37.6%2029.7%20L38.1%2029.3%20L38.1%2029.3%20L38.1%2029.1%20L38.6%2028.8%20L38.3%2028.5%20L38.6%2028.4%20L38.9%2028.7%20L39.3%2028.5%20L39.3%2028.5%20L38.3%2028.4%20L37.7%2028.2%20L36.9%2028.0%20L36.8%2027.8%20L36.7%2027.8%20L36.7%2028.0%20L36.7%2028.0%20L36.4%2027.3%20L36.3%2027.3%20L36.6%2028.0%20L36.6%2028.1%20L36.1%2027.2%20L36.1%2027.0%20L35.9%2026.9%20L35.6%2026.5%20L35.3%2026.1%20L35.3%2025.7%20L35.1%2025.5%20L35.0%2025.4%20L34.7%2025.1%20L34.5%2025.0%20L34.4%2025.1%20L34.3%2024.9%20L34.0%2024.6%20L33.9%2024.2%20L33.4%2024.0%20L33.4%2023.8%20L33.3%2023.8%20L33.3%2023.3%20L32.6%2022.0%20L32.2%2021.4%20L32.1%2021.7%20L31.7%2021.2%20L31.7%2021.1%20L31.1%2021.5%20L30.9%2021.6%20L30.5%2021.8%20L30.2%2021.8%20L29.6%2022.2%20L29.3%2022.3%20L28.8%2022.7%20L28.2%2023.0%20L27.0%2023.9%20L26.1%2024.5%20L25.7%2024.8%20L25.0%2025.3%20L24.6%2025.7%20L24.2%2026.0%20L24.0%2026.2%20L23.7%2026.4%20L23.7%2026.5%20L23.3%2026.7%20L23.3%2026.9%20L23.0%2027.0%20L22.9%2027.2%20L22.8%2027.2%20L22.6%2027.5%20L21.9%2028.1%20L21.7%2028.3%20L21.4%2028.5%20L21.3%2028.7%20L20.8%2029.2%20L20.6%2029.4%20L20.2%2029.7%20L20.1%2029.9%20L19.8%2030.0%20L19.7%2030.1%20L19.6%2030.1%20L19.6%2030.3%20L19.5%2030.3%20L19.5%2030.5%20L19.0%2030.9%20L18.9%2030.9%20L18.9%2031.1%20L18.7%2031.2%20L18.4%2031.4%20L18.3%2031.6%20L17.8%2032.1%20L17.5%2032.3%20L17.3%2032.6%20L17.1%2032.8%20L16.5%2033.4%20L16.3%2033.7%20L16.0%2033.7%20L15.4%2034.3%20L14.9%2034.7%20L14.4%2035.0%20L14.3%2035.0%20L14.3%2035.1%20L13.6%2035.7%20L13.3%2035.9%20L12.8%2036.3%20L12.8%2036.4%20L12.6%2036.5%20L11.0%2037.5%20L10.8%2037.7%20L9.6%2038.6%20L9.2%2038.9%20L8.9%2039.2%20L8.7%2039.3%20L8.6%2039.3%20L8.8%2039.0%20L8.9%2039.0%20L9.0%2038.8%20L9.4%2038.4%20L8.7%2038.9%20L8.4%2038.9%20L7.7%2039.2%20L6.9%2039.5%20L6.8%2039.8%20L6.7%2039.7%20L6.8%2039.6%20L6.4%2039.7%20L5.8%2039.8%20L6.8%2040.7%20L5.8%2040.0%20L5.6%2039.9%20L5.2%2039.9%20L4.0%2039.9%20L3.8%2039.6%20L3.3%2039.5%20L2.4%2039.4%20L2.4%2039.3%20L3.1%2039.3%20L3.4%2039.4%20L3.7%2039.4%20L3.5%2039.3%20L3.4%2039.2%20L3.7%2039.2%20L4.0%2038.9%20L5.1%2038.7%20L5.0%2038.8%20L4.8%2038.8%20L4.8%2038.9%20L6.2%2038.5%20L7.2%2038.3%20L7.2%2038.1%20L7.8%2037.9%20L8.5%2037.5%20L9.6%2036.8%20L11.6%2035.6%20L12.3%2035.1%20L12.9%2034.7%20L13.7%2034.2%20L13.8%2034.1%20L13.9%2034.1%20L14.0%2033.9%20L14.2%2033.8%20L14.5%2033.5%20L15.0%2033.2%20L15.3%2032.9%20L15.7%2032.7%20L15.8%2032.5%20L16.2%2032.1%20L16.1%2032.1%20L16.4%2031.7%20L16.6%2031.5%20L17.3%2030.9%20L17.4%2030.7%20L17.5%2030.7%20L17.6%2030.5%20L18.0%2030.1%20L18.1%2030.1%20L18.2%2030.0%20L18.3%2030.0%20L18.3%2029.8%20L18.5%2029.6%20L18.9%2029.2%20L19.3%2028.9%20L19.4%2028.7%20L19.8%2028.4%20L20.0%2028.2%20L20.6%2027.6%20L21.2%2027.0%20L22.7%2025.9%20L22.7%2025.8%20L22.8%2025.8%20L22.9%2025.6%20L23.3%2025.2%20L23.4%2025.1%20L23.5%2025.1%20L23.5%2025.0%20L24.1%2024.6%20L24.9%2023.9%20L26.4%2022.9%20L27.1%2022.3%20L28.0%2021.8%20L28.2%2021.7%20L28.6%2021.5%20L29.0%2021.2%20L30.4%2020.5%20L30.7%2020.1%20L30.8%2020.2%20L30.7%2020.3%20L31.1%2020.2%20L31.1%2019.7%20L31.3%2019.8%20L31.3%2019.6%20L31.3%2019.4%20L31.2%2019.0%20L31.3%2018.4%20L31.3%2018.3%20L31.3%2018.2%20L31.2%2018.2%20L31.2%2018.0%20L31.0%2017.9%20L31.2%2017.9%20L31.2%2017.8%20L30.7%2017.7%20L29.0%2017.3%20L24.8%2017.2%20L24.4%2017.1%20L24.4%2017.0%20L14.8%2019.0%20L13.9%2019.2%20L13.1%2019.5%20L12.3%2019.7%20L11.9%2019.8%20L11.4%2020.0%20L10.5%2020.2%20L9.5%2020.3%20L9.6%2020.3%20L8.5%2020.4%20L8.2%2020.4%20L6.5%2020.7%20L4.9%2020.9%20L5.8%2020.7%20L6.2%2020.6%20L6.6%2020.5%20L6.2%2020.5%20L2.9%2020.4%20L2.5%2020.4%20L2.0%2020.2%20L2.0%2020.1%20L1.5%2020.0%20L1.4%2020.0%20L1.4%2019.9%20L0.7%2019.8%20L0.6%2019.8%20L0.6%2019.6%20L0.4%2019.5%20L0.2%2019.4%20L0.1%2019.6%20L0.0%2019.6%20L0.0%2019.1%20L0.0%2019.1%20L0.2%2018.4%20L0.2%2018.0%20L0.2%2017.7%20L0.3%2017.8%20L0.3%2018.3%20L0.3%2018.5%20L0.2%2018.7%20L0.3%2018.7%20L2.6%2018.8%20L5.3%2019.0%20L5.7%2019.0%20L8.2%2018.9%20L8.5%2018.9%20L9.1%2018.8%20L9.5%2018.8%20L13.5%2017.9%20L13.9%2017.8%20L13.5%2017.8%20L14.7%2017.4%20L15.9%2017.1%20L16.0%2017.1%20L16.1%2017.0%20L16.3%2017.0%20L16.3%2016.9%20L17.3%2016.7%20L17.6%2016.6%20L21.1%2016.0%20L21.8%2015.9%20L22.2%2015.9%20L22.7%2015.8%20L22.9%2015.8%20L22.9%2015.7%20L23.8%2015.6%20L24.6%2015.5%20L26.1%2015.6%20L26.4%2015.6%20L26.8%2015.7%20L26.8%2015.7%20L27.2%2015.7%20L28.5%2015.9%20L29.4%2016.0%20L31.0%2016.2%20L31.2%2016.2%20L31.7%2016.3%20L31.9%2016.3%20L32.0%2016.0%20L31.9%2016.0%20L31.8%2015.8%20L31.3%2015.3%20L31.0%2015.0%20L30.4%2014.4%20L30.0%2014.0%20L29.6%2013.6%20L29.3%2013.4%20L28.7%2012.9%20L28.4%2012.6%20L27.8%2012.0%20L26.7%2011.0%20L26.4%2010.8%20L25.8%2010.2%20L24.8%209.4%20L24.8%209.3%20L24.6%209.2%20L24.4%209.0%20L23.9%208.8%20L23.6%208.4%20L22.8%207.9%20L21.3%206.7%20L21.0%206.5%20L20.0%205.7%20L19.5%205.2%20L19.1%205.0%20L19.1%204.9%20L18.9%204.8%20L18.9%204.6%20L18.7%204.5%20L18.6%204.4%20L18.6%204.2%20L18.3%204.1%20L18.0%203.8%20L18.0%203.7%20L17.8%203.6%20L17.4%203.2%20L17.3%203.2%20L17.2%203.0%20L17.1%202.9%20L17.0%202.2%20L16.8%202.3%20L16.6%202.2%20L16.4%202.1%20L16.4%202.0%20L16.1%202.0%20L15.6%201.6%20L15.5%201.5%20L15.5%201.4%20L15.2%201.3%20L15.1%201.2%20L15.3%200.9%20L15.2%200.7%20L15.1%200.7%20L15.1%200.6%20L15.0%200.6%20L15.0%200.7%20L15.0%200.4%20L14.8%200.3%20L14.8%200.2%20L14.9%200.0%20Z%22%2F%3E%3C%2Fsvg%3E%0D%0A") center/contain no-repeat}
.wordmark{font-size:1.18rem;font-weight:700;letter-spacing:-.02em;line-height:1}
.wordmark i{font-style:normal}
.wordmark .y{color:var(--term)}.wordmark .c{color:var(--accent)}.wordmark .p{color:var(--topic)}
.wordmark sub{color:var(--fg-faint);font-size:.6em;font-weight:700;vertical-align:sub;margin-left:1px}
@media(max-width:560px){.wordmark{font-size:1.02rem}}
.search{position:relative;flex:1;max-width:560px;margin:0 auto}
#search-input{width:100%;height:38px;padding:0 14px;border-radius:10px;
  border:1px solid var(--line-strong);background:var(--bg-soft);color:var(--fg);
  font-size:.95rem;outline:none}
#search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.theme-toggle{border:0;background:none;color:var(--fg-soft);font-size:1.2rem;cursor:pointer;
  padding:6px 8px;border-radius:8px}
.theme-toggle:hover{background:var(--bg-sink);color:var(--fg)}
/* Rhino logo + link to rhino3d.com, right-aligned. Shown only when it fits:
   full (logo + wordmark) on wide viewports, logo-only on medium, hidden on
   narrow ones where the search box needs the room. */
.rhino-link{display:flex;align-items:center;gap:9px;flex:0 0 auto;padding:5px 10px;border-radius:10px;
  color:var(--fg-soft);font-weight:600;font-size:.88rem;white-space:nowrap}
.rhino-link:hover{background:var(--bg-sink);color:var(--fg);text-decoration:none}
.rhino-link img{height:28px;width:auto;display:block}
@media(max-width:980px){.rhino-link span{display:none}.rhino-link{padding:5px 6px}}
@media(max-width:640px){.rhino-link{display:none}}

.search-results{position:absolute;top:46px;left:0;right:0;background:var(--bg);
  border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);
  overflow:hidden;max-height:70vh;overflow-y:auto}
.search-results a{display:flex;align-items:baseline;gap:10px;padding:9px 14px;color:var(--fg)}
.search-results a:hover,.search-results a.sel{background:var(--bg-soft);text-decoration:none}
.search-results .r-title{font-weight:550}
.search-results .r-snip{color:var(--fg-faint);font-size:.82rem;margin-left:auto;
  max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-empty{padding:14px;color:var(--fg-faint);font-size:.9rem}

/* ---- layout -------------------------------------------------------------- */
.layout{display:flex;align-items:flex-start}
.sidebar{position:sticky;top:var(--topbar-h);align-self:flex-start;flex:0 0 var(--side-w);
  width:var(--side-w);height:calc(100vh - var(--topbar-h));padding:22px 14px;
  border-right:1px solid var(--line);display:flex;flex-direction:column;gap:20px;overflow-y:auto}
.sidebar nav{display:flex;flex-direction:column;gap:2px}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;
  color:var(--fg-soft);font-weight:500}
.sidebar nav a:hover{background:var(--bg-soft);color:var(--fg);text-decoration:none}
.sidebar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.nav-ico{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;
  background:var(--bg-sink);font-size:.8rem;font-weight:700}
.sidebar nav a.active .nav-ico{background:var(--accent);color:#fff}
.scrim{display:none}

.main{flex:1;min-width:0;padding:26px clamp(16px,4vw,56px) 96px;width:100%}
.content,.index-page,.hero,.cards,.note{max-width:var(--measure);margin-inline:auto}

/* ---- breadcrumb / badges ------------------------------------------------- */
.crumbs{max-width:var(--measure);margin:0 auto 14px;display:flex;align-items:center;gap:10px}
.kind-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:3px 9px;border-radius:999px;background:var(--bg-sink);color:var(--fg-soft)}
.kind-glossary{background:var(--term-soft);color:var(--term)}
.kind-topics{background:var(--topic-soft);color:var(--topic)}
.kind-components{background:var(--spec-soft);color:var(--spec)}
.kind-auto{background:var(--bg-sink);color:var(--fg-faint);cursor:help}
.crumb-sub{color:var(--fg-faint);font-size:.85rem}

/* pages synthesised from the component registry (no authored article yet) */
.auto-note{margin:.2em 0 1.4em;padding:10px 14px;border-left:3px solid var(--line-strong);
  border-radius:6px;background:var(--bg-soft);color:var(--fg-soft);font-size:.92rem}

/* components index: toolbar tab → panel → components; authored ones marked */
.sub-head{font-size:.95rem;font-weight:600;color:var(--fg-soft);margin:1.2em 0 .2em;
  text-transform:uppercase;letter-spacing:.05em}
.link-list li.authored a{font-weight:600}
.authored-mark{color:var(--spec);font-size:.55rem;vertical-align:middle;margin-left:6px}

/* ---- content ------------------------------------------------------------- */
.content{font-size:1.02rem}
/* Running text is held to the reading measure (~60-65 characters) and centred
   in the column: every prose block gets the same width, so left edges stay
   aligned, while figures, tables, code blocks and example screenshots may use
   the full column and centre on the same vertical axis as the text. Index
   pages keep the full width for their multi-column link lists. */
.content:not(.index-page) p,.content:not(.index-page) ul,.content:not(.index-page) ol,
.content:not(.index-page) h1,.content:not(.index-page) h2,.content:not(.index-page) h3,.content:not(.index-page) h4,
.content:not(.index-page) dl,.content:not(.index-page) blockquote,
.content .word-meaning,.content .spec-title,.content .topic-title,.content .spec-id{
  width:min(var(--prose),100%);margin-inline:auto}
.content img{display:block;margin:1.2em auto;max-width:100%;height:auto;max-height:76vh;
  border-radius:10px}
.content p img,.content li img,.content td img{display:inline-block;margin:0;height:1.15em;
  width:auto;vertical-align:sub;border-radius:3px}
.image-caption{text-align:center;font-style:italic;color:var(--fg-soft);font-size:.9rem;
  margin:-.4em 0 1.6em;padding:0 1em}
.slab{border:1px solid var(--line-strong);border-radius:12px;background:var(--bg-soft);padding:2px}
.spacer{height:12px}

.missing-image{margin:1.2em auto;display:grid;place-items:center;min-height:120px;
  border:1px dashed var(--line-strong);border-radius:12px;background:var(--bg-soft)}
.missing-badge{color:var(--fg-faint);font-size:.85rem;font-style:italic;padding:1em;text-align:center}
.missing-icon{display:inline-block;width:1.05em;height:1.05em;vertical-align:sub;border-radius:3px;
  border:1px dashed var(--line-strong);background:var(--bg-sink)}
/* cross-references to components without an authored spec page: plain text
   rather than a dead anchor (Rewriter converts them); hotspot markers for such
   components stay informational (name tooltip) but are not links. */
.doc-dead{color:var(--fg-soft)}
.hotspot-item.hotspot-muted{cursor:default}

/* content cross-links */
.doc-link{color:var(--accent);border-radius:4px;padding:0 1px}
.term-link{color:var(--accent)}.term-link:hover{color:var(--term)}.topic-link{color:var(--topic)}.spec-link{color:var(--spec)}

/* tables */
table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.95rem}
th,td{padding:.5em .8em;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-weight:600;color:var(--fg-soft);background:var(--bg-soft);border-bottom:1px solid var(--line-strong)}
tr:nth-child(even) td{background:color-mix(in srgb,var(--bg-soft) 55%,transparent)}
.content table{display:block;overflow-x:auto}

/* internals / externals */
.internals,.externals{margin-top:1.4em;font-variant:small-caps;color:var(--fg-faint);font-size:.9rem}
.internals p,.externals p{display:inline;margin-right:12px}
.internals a,.externals a{color:var(--fg-soft)}

/* advanced frame */
.advanced-frame{margin:1.4em 0;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden}
.advanced-check{display:none}
.advanced-header{display:block;padding:10px 14px;background:var(--bg-soft);cursor:pointer;
  font-size:.88rem;font-weight:600;color:var(--fg-soft);text-align:center;user-select:none}
.advanced-header:hover{background:var(--bg-sink)}
.advanced-header::before{content:"▸ ";color:var(--fg-faint)}
.advanced-check:checked ~ .advanced-header::before{content:"▾ "}
.advanced-content{display:none;padding:6px 16px;background:color-mix(in srgb,var(--bg-soft) 50%,transparent)}
.advanced-check:checked ~ .advanced-content{display:block}

/* example previews (rarely present without Grasshopper) */
.hotspot-container{position:relative;display:inline-block;width:100%}
.example-image{width:100%;display:block}
.image-container{position:relative;border:1px solid var(--line-strong);border-radius:10px;
  overflow:hidden;text-align:center}
/* per-object hot spots: invisible markers that fade in a numbered, spec-linked
   badge on hover, mirroring the in-app GH2 docs webview. The platform emits each
   .hotspot-item with inline left/top/width/height percentages and an empty
   .hot-link <a> to the spec, so this needs no JavaScript. */
.hotspot-item{position:absolute;display:flex;justify-content:center;align-items:center;
  cursor:help;border:0;border-radius:5px;font-family:var(--sans);font-weight:800;
  font-size:1.2rem;color:var(--spec);background:var(--spec-soft);
  opacity:0;transition:opacity .25s ease}
.hotspot-item:hover{opacity:1}
.hot-link{position:absolute;inset:0;z-index:1}
/* Example files are interactive only inside Grasshopper 2 (drag onto the
   canvas). On the website they are inert pictures, so we overlay a badge that
   points readers to the richer in-app documentation. The wrapper adds no height
   so the hotspot overlay above stays aligned. */
.example-wrap{position:relative;display:block}
.example-badge{position:absolute;top:8px;right:8px;z-index:2;pointer-events:none;
  font-size:.72rem;font-weight:600;letter-spacing:.01em;padding:3px 9px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);
  box-shadow:var(--shadow);opacity:.94}
.example-missing{margin:1.2em auto;display:grid;place-items:center;min-height:120px;
  padding:1.1em 1.4em;text-align:center;font-style:italic;color:var(--fg-soft);
  border:1px dashed var(--accent);border-radius:12px;background:var(--accent-soft)}

/* component preview at the top of a spec page: displayed at its declared 3x
   density (see Rewriter), so it is small and sharp rather than full-pixel-size */
.shrink-preview img{margin:.6em auto 1.2em}

/* term page */
.word{font-weight:800;font-size:1.9rem;display:inline}
.word-pronunciation{color:var(--fg-faint);margin-left:12px;font-size:1rem}
.word-pronunciation:not(:empty)::before{content:"/"}
.word-pronunciation:not(:empty)::after{content:"/"}
.word-meaning{margin-top:1em;font-size:1.05rem}

/* spec / topic titles */
.spec-title,.topic-title{font-weight:750;font-size:1.9rem;margin-bottom:.1em}
.spec-id{color:var(--fg-faint);font-family:var(--mono);font-size:.78rem;margin-bottom:1.4em;
  word-break:break-all}
.content-advanced{margin-top:1em}

/* ---- landing + index pages ---------------------------------------------- */
.hero{padding:16px 0 8px}
.hero h1{font-size:2.4rem}
.lede{font-size:1.15rem;color:var(--fg-soft);max-width:var(--prose)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:8px auto 32px}
.card{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:14px;
  background:var(--bg-soft);color:var(--fg)}
.card:hover{text-decoration:none;border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}
.card{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.card-ico{flex:0 0 auto;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:var(--accent);color:#fff;font-size:1.2rem;font-weight:800}
.card-body h3{margin:.1em 0 .1em}
.card-meta{color:var(--fg-faint);font-size:.82rem;margin-bottom:.4em}
.card-body p{margin:0;color:var(--fg-soft);font-size:.92rem}
.note{margin-top:8px;padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft)}
.note h2{margin-top:0}
.note p{color:var(--fg-soft)}

.alpha-bar{display:flex;flex-wrap:wrap;gap:6px;margin:1.2em 0 1.8em;
  padding-bottom:1em;border-bottom:1px solid var(--line)}
.alpha-bar a{display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:8px;
  background:var(--bg-soft);color:var(--fg-soft);font-weight:600;font-size:.85rem}
.alpha-bar a:hover{background:var(--accent);color:#fff;text-decoration:none}
.alpha-head{border-bottom:1px solid var(--line);padding-bottom:.2em;color:var(--accent)}
.link-list{list-style:none;padding:0;margin:.6em 0 1.4em}
.link-list li{padding:2px 0}
.link-list.columns{columns:3 200px;column-gap:26px}
.link-list.columns li{break-inside:avoid}

/* ---- responsive ---------------------------------------------------------- */
@media(max-width:920px){
  :root{--side-w:240px}
  .sidebar{position:fixed;top:var(--topbar-h);left:0;z-index:35;background:var(--bg);
    transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}
  body.nav-open .sidebar{transform:translateX(0)}
  body.nav-open .scrim{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;z-index:30;
    background:rgba(0,0,0,.4)}
  .hamburger{display:block}
  .link-list.columns{columns:2 160px}
}
@media(max-width:600px){
  body{font-size:15px}
  .hero h1{font-size:1.9rem}
  .link-list.columns{columns:1}
}