/* =============================================================================
   The orange cursor (trial, branch feature/beak-cursor)
   -----------------------------------------------------------------------------
   A normal arrow, and a normal pointing hand over anything clickable, both in
   the site's orange with a dark outline (core/img/cursor/). Text fields keep
   the I-beam, and every cursor a page asks for on purpose (grab, zoom-in,
   not-allowed, help) stays.

   Many components ask for `cursor: pointer` (or `default`) in their own
   stylesheets; core/js/cursor.js reads the computed cursor of whatever the
   pointer enters and marks those with data-pe-cursor, which the last two
   rules turn into the orange arrow / hand. Linked by partials/_cursor.html.

   The images are inlined as data URIs (the same drawings as core/img/cursor/*.svg):
   a cursor image fetched over the network is not ready when a new page first
   paints, so the system arrow showed until the pointer moved.
   ============================================================================= */
html {
    cursor: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2214%22%20height=%2220%22%20viewBox=%220%200%2014%2020%22%3E%3Cpath%20d=%22M1%201V16.2L4.6%2012.9%207%2018.6%209.4%2017.6%207.1%2012.1H12Z%22%20fill=%22%23EE6C1E%22%20stroke=%22%23161B24%22%20stroke-width=%221%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E") 1 1, auto;
}

:where(a[href], button:not(:disabled), summary, label[for], select,
       [role="button"], [role="tab"], [role="option"], [role="link"],
       input:is([type="checkbox"], [type="radio"], [type="range"], [type="submit"],
                [type="button"], [type="reset"], [type="file"], [type="color"])) {
    cursor: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2222%22%20height=%2222%22%20viewBox=%220%200%2032%2032%22%3E%3Cpath%20d=%22M10%203.5Q12%201.5%2014%203.5V12Q16%2010.5%2018%2011.5Q20.5%2010.5%2022%2012.5Q24.5%2012%2025.5%2014.5V22Q25.5%2027.5%2021%2028.5H14Q11%2028.5%209%2025.5L4.5%2017.5Q4%2016%205.5%2015.5Q7%2015%208.5%2017L10%2019Z%22%20fill=%22%23EE6C1E%22%20stroke=%22%23161B24%22%20stroke-width=%221.5%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E") 8 2, pointer;
}

:where(textarea, [contenteditable=""], [contenteditable="true"],
       input:not([type]),
       input:is([type="text"], [type="search"], [type="email"], [type="url"],
                [type="number"], [type="password"], [type="tel"])) {
    cursor: text;
}

[data-pe-cursor="arrow"] { cursor: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2214%22%20height=%2220%22%20viewBox=%220%200%2014%2020%22%3E%3Cpath%20d=%22M1%201V16.2L4.6%2012.9%207%2018.6%209.4%2017.6%207.1%2012.1H12Z%22%20fill=%22%23EE6C1E%22%20stroke=%22%23161B24%22%20stroke-width=%221%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E") 1 1, auto !important; }
[data-pe-cursor="hand"] { cursor: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2222%22%20height=%2222%22%20viewBox=%220%200%2032%2032%22%3E%3Cpath%20d=%22M10%203.5Q12%201.5%2014%203.5V12Q16%2010.5%2018%2011.5Q20.5%2010.5%2022%2012.5Q24.5%2012%2025.5%2014.5V22Q25.5%2027.5%2021%2028.5H14Q11%2028.5%209%2025.5L4.5%2017.5Q4%2016%205.5%2015.5Q7%2015%208.5%2017L10%2019Z%22%20fill=%22%23EE6C1E%22%20stroke=%22%23161B24%22%20stroke-width=%221.5%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E") 8 2, pointer !important; }
